【随時更新】読んだ技術書70冊全部メモる

自分が「何をどこまで学び、学んでないのか」を測る指標がほしいという目的で、今まで読んだ技術書全部メモることにしました。

新たに読んだら都度更新します。

書名が正確じゃないものが混じってます。あと無理やり思い出しただけなので「読んだけど忘れてた」は結構まだありそう

あと100%読んでないのに載せてる本・読んだけど100%じゃないから載せてない本・100%読んだのに載せてない本などありますが基準は適当です。

本ではないがAndroidドキュメント、Reactドキュメント、AWSドキュメントなどの公式ドキュメントには書籍以上に助けられましたが、そういうの入れるとキリがないし趣旨にも反するので省略。


基礎的な内容

コーディングを支える技術

随所で絶賛されてたが、当たり前の内容が大半を占めていた気がする。
(あくまで当時の自分の見解です)
すぐ読めるので図書館で読むのがいい

プログラムはこうして作られる

名著。プログラミングにおける思考方法が身につく。ゲームに限らず白紙の状態からコードを書いていくことができるようになる。自分が初めて読んだ文法以外の本だったと思う

リーダブルコード

名著。一日(4〜5時間程度)で読めて劇的にコードの質が上がる。プログラミング始めた人は早めに読むべき。

Code Complete 上巻

厚い割にサクサク読める。古い話も当たり前の内容も多かったが、読むとレベルが上がってたので間違いなく良書。

リファクタリング(第2版): 既存のコードを安全に改善する

大体知ってる気がしてあんま真剣に読まなかったけど、内容自体はリファクタリング方法論がかなり詳しいし良い本だと思う

言語自体の入門書

作りながら学ぶRuby入門

ゲームで学ぶJavaScript入門 HTML5&CSSも身に付く!

スッキリわかるJava入門 第3版

パーフェクトRuby

Ruby Goldのために読んだ。多分良書だが資格取るわけでないなら読む必要ないかも

メタプログラミングRuby

ほぼ同上だがこれはもうちょっと役立つかも

速習React

速習ECMAScript

速習TypeScript

速習Kotlin


実践Rust入門

全部は読んでなかったかと思うが、Rustの借用・ライフタイム・所有権が「そうなのか~」ぐらいには分かったので良い本だと思う

プログラミングHaskell 第2版

これは前半第一部だけ問題解いて読んだ。
後半未読なのでHaskellの特色には触れられてないが、わかりやすいし問題も適度に難しくて良かった気がする

アルゴリズム関係

プログラミングの基礎

名著。関数型プログラミングとアルゴリズムとデータ構造の基礎がわかりやすい説明、面白い題材、豊富でちょうどいい問題で身につく。3周した。
これやればSICPと殴り合えるようになるはず。

なにげに自分がプログラミングを職業にしようと決めた最大のきっかけだったりする。終盤の問題を自力で解いた時の気持ちよさがすごかったのを今もなんとなく覚えてる

オタクになったきっかけのアニメを「人生ブレイカー」と呼ぶ古い文化があるらしいが、それに沿うならこの本こそが自分の人生ブレイカーだったと思う

Scheme手習い

プログラミングの基礎に似てる。あまり好みではなかったがYコンビネータは面白かった

Scheme修行

説明不足なところが多い。読んで何が得られたのかはよくわからなかったが、難しすぎたので文字通りの修行にはなった。

SICP

名著だとされるし、実際良い本だとは思うが236時間読むのにかかった(当時の習慣で正確に計測してた)。
問題が大量にある。プログラミングの基礎を徹底的に扱っている。
問題演習含めて読みきればコードの読み書きに自信がつくが初心者には非情な試練である。
自分は初心者の時に読んで非常に苦しんだ。今や苦しみの記憶すら遠いのがなんだか物悲しい

データ構造とアルゴリズム(初版) (新・情報/通信システム工学)

100p程度で網羅的。書名で調べると大学院受験参考書としてよく使われてるらしい。
計算量の数学的導出が端折り過ぎてわかんなかったのでそこは飛ばした。
良い本ではあると思う
問題はアルゴリズムの動きをトレースさせるタイプのもの

特定の技術

スッキリわかるサーブレット&jsp入門

何にも分からなかった頃にとりあえず読んで、
やっぱり何もわからないなとなった記憶がある…。

Railsチュートリアル

2周した。長かったがわかり易かった気がする。

Everyday Rails - RSpecによるRailsテスト入門


はじめてのAndroidプログラミング 第5版

あまりよくわからなくてドキュメントの方が分かった気がする

Swift UI対応 たった2日でマスターできる iPhoneアプリ開発集中講座

わかりやすかった

りあクト!

Reactの常識を身につけるのにかなり役立った。
Reduxのあたりはチラ見しかしてないが、便利そうという印象。
最近改訂され続けてるのを知った

The Art of ChatGPT Prompting: A Guide to Crafting Clear and Effective Prompts

無料洋書。とりあえずこれを読めばわけのわからないプロンプトを書くことなくなるかと

Web関係

プロになるためのWeb技術入門

一日で読んだが、古いし浅いし読む必要なかったかなと思う

HTTPの教科書

まあまあわかりやすかったが、浅いような。浅すぎるということもないけど

Real World HTTP(初版/第2版両方)

HTTPの歴史から最近のHTTP/2.0まで扱ってる。中盤から面白くなる。ウェブって面白いんじゃね?と思うきっかけとなった本だが説明がところどころわかりづらいのでググりながら読むか適当に読むのがいい

Web API The Good Parts

Web API設計する上でこれを読まないのはやばいと思う。
RDBにおける「達人に学ぶDB設計」のような立ち位置

DB関係

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル

似たタイトルの本がほかにあるが猫が表紙のほう。良書。
ソフトがついててゲーム感覚でSQLが身につく。最後のほうは難しいが最後飛ばしても大丈夫。アマレビューで不親切とか書かれてたがちゃんと読んでないらしく的外れな批判だった

SQL ゼロからはじめるデータベース操作

さらっと一読。ドリルを済ませたあとに答え合わせ的に読むのがよかったかもしれないが、逆だったのは失敗だったか

達人に学ぶDB設計

もっと早く読んでおけばよかった。
難しそうなタイトルしてるが、初心者は黙ってまずこれを読めみたいな内容

SQLアンチパターン

3割くらい「知ってるな〜」と言う内容だったし、 
1割は「ちょっと古いな」という感じだったが総合的に見てかなり読んで良かった
(色々な人が必読書として挙げてるのでそれはそう)

全体的に
「このアンチパターンの目的と定義」
「なぜこうしたらいけないのか。こうしたら何が起きてしまうのか」
「例外的にそれが許容できるケースはあるか」
「その正しい対処法と、なぜそのやり方が良いのかについての完璧な説明」
「RDBMSごとの挙動の違いの詳細」
という感じでかなりガチで、とても勉強になる。
自分は逆立ちしてもこんな本書けそうにはない。

上の3冊プラステーブル設計含む多少の実務経験があると良いと思うが、
基礎知識の応用編みたいな話だし基礎知識の理解度セルフチェックにも使えるかもしれない。

設計関係

オブジェクト指向設計実践ガイド

名著。リーダブルコードの次のステップとして良い。ネットの変なオブジェクト指向の説明読むならとにかくこれを読むべき。リーダブルコードよりかはそこそこ難しいがコードの質が劇的に上がる。

増補改訂版Java言語で学ぶデザインパターン入門

こんなわかりやすくていいの?というわかりやすさだが下の本のが好き

Game Programming Patterns

名著。ゲーム開発で実際に遭遇する問題をデザインパターンで鮮やかに解決する本。パターンの限界やデメリットにも触れてありためになる。題材が全部ゲームなので面白い。ゲーム以外にも役立つ本だが遊び程度でもいいのでゲームプログラミング経験があると理解しやすいはず

Clean Architecture 達人に学ぶソフトウェアの構造と設計

読んだは読んだが、あまり差し込む意味のわからない歴史の話が多いのが気になった。
内容自体はもうちょっと整理して分かりやすく書くことが出来るような気がする。
あとこれをとっかかりに誰の指導もなしにクリーンアーキテクチャ習得するのは相当オブジェクト指向設計自体の実務経験が要りそうな気がする。
自分も取っ掛かりぐらいにしかならなかった

低レイヤー/Docker/OS

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

コマンドをたくさん打ち込ませるノリなのが好き
K8sは飛ばした

ふつうのLinuxプログラミング第2版

写経しながら読んだ。最後の章だけ力尽きた。
Linuxコマンドを自作したりコード書きながらLinuxの概念と馴染もうみたいな感じ。
ITエンジニアとしての常識レベルの話題が多くて普通に実務で役立った場面が多い。部分的にでもいいので早めに読むべき
あまりやらなかったが問題も豊富。

Think OS

無料洋書。
メモリ、CPUのキャッシュ、タスクスケジューリング、割り込み、プロセス、スレッド等、
そういう基礎の基礎の話題を短いページ数で説明し尽くしている。

英語の難易度はあんま高くないし単語ググれるので、初めての技術洋書におすすめ。

当たり前かもしれないがマルチスレッドプログラミングはOSのこういう話題を理解の前提としており、マルチスレッドの本を読む上での前提知識としてとても役に立った。

プログラミング言語処理系

コンピュータシステムの理論と実装

一冊で論理回路からCPUシミュレータ、アセンブラ、VM(コンパイラとアセンブラの中間言語処理系)、コンパイラ、OSみたいなものまで一気に作る本。
答えのコードは一行も載っておらずすべて読者に書かせる。代わりに予備知識とヒントとテスト環境が提供されてるので不親切ではない。
OS以外全部やったけど各章10時間とかは普通にかかった気がする。
やってて楽しかったが、字句解析と構文解析はとても大変だなあと感じた。とっても難しかった

Go言語でつくるインタプリタ

覚えたてのRustでRustに書き直しながら読んだ
わかりやすかったが、SICPや上のコンピュータシステムの理論と実装読んでたらほとんど内容は既知だと思う。

プログラミング言語の基礎概念

プログラム意味論と型システムの入門書。
調べた限りこれがこれ系で一番簡単らしい
数学理論があまりにも難しすぎて、数学理論を理解するのを放棄してインタプリタみたいなやつと型システムの実装だけやった。

問題演習アプリがWeb上にある。
ランキングシステムがあって、上位ガチ勢は数日で全問解いてた気がするが多分あれは強くてニューゲームだろうと思ってる

ネットワーク関係

1週間でCCNAの基礎が学べる本

読んだことすら忘れたぐらいの昔に読んだと思う。
生まれて初めて読んだネットワーク系の本。
わかりやすかったかどうかさえ定かではないが、
読んだ順序が
これ→「インターネットのカタチ」→他
という順序だったが「インターネットのカタチ」が結構読めていた記憶があるので、
0→1には良かったのかもしれない。

3分間ネットワーク基礎講座

人生で4周も読んだ技術書はあとにも先にもこれだけな気がする。
内容になんの新鮮味もなくなるまで繰り返し読んで、
AWSのVPCを触る上での自分の基本知識源になったと思う。
かなりわかりやすい割に浅すぎる説明では終わらず、ネットワークの最初の一歩として最適。

基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版

3分間ネットワークにはあまり書いてない内容が少しあるが、ほとんど似たような本だと思う。
どっちが好きかは人による。自分は3分間ネットワークのほうが好きだった。

Linuxで動かしながら学ぶTCP/IPネットワーク入門

これは内容はほぼ既知だったが、Linuxコマンドで仮想的なネットワークを作って通信させるというのが新鮮でめっちゃ面白かった

インターネットのカタチ

面白かった。インターネットがいろいろな意味で壊れた実在の事件を切り口にインターネットの本質に迫る本。ある程度ネットワーク知識があることが望ましい

DNSをはじめよう

自分のようなライト技術オタクにも読みやすい良い本。
内容もAWS Route53を扱う上で必要な知識は身につくと思う。
アマゾンレビューでも言われてたが、お名前.com勧めるのだけはやめてほしかった

AWS

Amazon Web Services基礎からのネットワーク&サーバー構築(改定版)

簡単で良い本。AWS知識ゼロならここからどうぞ

AWSではじめるインフラ構築入門 (初版) 安全で堅牢な本番環境のつくり方

上記より一段階踏み込んだ本。何周もリソース作りながら読んだ。自分のAWS基礎力となった1冊である

AWSコンテナ設計・構築[本格]入門

上記より更に1段階踏み込んだ本。前提知識と実務経験ぐらいは求めてくるけど、内容的にはこれ完璧に頭に入ってたら大抵の場合で十分な気はする。
自分は途中の章まで読んであとは拾い読み

並行処理

Go言語による並行処理

・Think OSか同じような内容のOSの本一冊
・他の言語でもいいので並行処理のプログラミング経験
の両方が前提になきゃ読むのは相当厳しいと思う。
アプリ開発者が知っておくべき並行処理の基本的な話が網羅されていて良い
2回読んだがあと2周は読むつもりでいる

詳解Kotlin Coroutines

Kotlinで並行処理するなら読んでおくべき。
あまりにも詳しすぎる内容に最初はびっくりするが、
大丈夫、ちゃんと並行処理するならほぼ全部使います。

数学・機械学習関係

プログラミングのための線形代数

分かりやすくて感動した記憶がある。内容は平易でありながら高度。
普通の数学書読んでもまず書いてないような話がたくさんある。

プログラミングのための確率統計

姉妹本。大体上の確率統計版。
平易でありながら高度…なのは途中までで、途中から難しくて理解できなかった。
到達点は相当高いと思う。

最近見たらページが消えてたが、都立大学の自然言語処理系研究室で、
・プログラミングのための線形代数
・プログラミングのための確率統計
・これならわかる応用数学教室
・これならわかる最適化数学

の4冊を数学のバックグラウンドがない修士課程志望者に勧めてるのを見たことがあるので、そういう立ち位置の本なんだろうなと思う

ディープラーニングの数学

ゼロから作るDeep Learning

高校数学でわかるディープラーニングのしくみ

上3冊どれも初学者向け入門書だが、
この中だと「高校数学でわかる~」が1番懇切丁寧だった

暗号技術入門 第3版

わかりやすい。
数学的詳細はブラックボックス的に考えて、
論理パズルみたいな理解の仕方で読むことが出来るので、
数学が分からなくてもあんまり心配は要らないかと。

プログラマの数学

内容あんま覚えてないが、同作者の数学ガール(本編無印)が読みこなせるなら新規に学ぶことは全く無いぐらいのレベル感だったと思う

心構え系

プリンシプル・オブ・プログラミング

良書ではあると思うが、コードによる説明がないので勘違いしないように先にリーダブルコードやオブジェクト指向設計実践ガイドを読んだほうがいい

プログラマが知るべき97のこと

ミニエッセイがたくさん載ってる。いくつか金言的なエッセイがある。拾い読みしかしてないが、それでも非常に役に立った。良書。

Web版があるが、Webは確か関数型プログラミングのエッセイが2行ぐらい違和感ない形で落丁してた

世界一流エンジニアの思考法

今更自分が宣伝するまでもないぐらいのベストセラー。
「基礎の理解を徹底する」という姿勢が自分の技術力と技術意識を大きく押し上げてくれた。
他にもためになる話が多々。
意識レベルの変化はエンジニアの在り方を大きく変えるので、嘘だと思ってもとりあえず読んでみてほしい

Team Geek

チームワークするビジネスマンとしての人間関係に気をつけようみたいな内容だったと思う。
ちゃんと覚えてないのであんま読んだ意味がないかもしれない。

エンジニアの知的生産術 ――効率的に学び,整理し,アウトプットする

間違いなく通読したはずだが何も覚えてない…

ハッカーと画家

時代的にしょうがないのかもしれないが、
「これからLispとPerlの時代だ!」みたいな事が大真面目に書かれていて、
今読んだら誰しもが「うわあ…」ってなってしまうかもしれない。
それ以外の部分についても自分は内容の評価はしづらいなと思った。

これから読みたい未読本

こうして列挙すると弱みが明らかだが、

DB関係、
言語自体の細かい仕様・機能、
マルチスレッド
あたりが弱いのかなと感じるのでまずはそのへんを補強していきたい

SQLアンチパターン(読了。上のリストに追加)
失敗から学ぶRDBの正しい歩き方
プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発
初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド
APIを作りながら進むGo中級者への道
The Little Book of Semaphores

この記事が気に入ったらサポートをしてみませんか?