エンジニア3年目までに読んで良かった書籍
未経験からエンジニアになり3年が経ちました。
この3年間はベテランエンジニアとの差を埋めるべく、プライベートの時間の大半を学習に充ててきました。幸い少しずつ成長を感じられ、業務では難易度の高い仕事を任せてもらえるようになったと感じます。このキャッチアップのために100冊以上の技術関連書籍を読んだことでしょう。
ここ最近、知人やTwitter経由で知り合った方から、私が学習に使った書籍について質問を頂くことが多いです。そこで、今後参照していただきやすいように、これまで私が読んで良かった書籍を1つの記事にまとめようと思います。
- 前提:エンジニアとして経験した技術
- 書籍について
- 全エンジニア向け
- サーバーサイド開発
- オブジェクト指向、アーキテクチャ
- リーダブルコード(★)
- オブジェクト指向でなぜつくるのか(★)
- UMLモデリングレッスン(★)
- リファクタリング:Rubyエディション(★★)
- リファクタリング 既存のコードを安全に改善する 第2版(★★)
- 現場で役立つシステム設計の原則(★★)
- ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本(★★)
- オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方(★★)
- モノリスからマイクロサービスへ(★★)
- Rubyによるデザインパターン(★★★)
- ソフトウェアアーキテクチャの基礎(★★★)
- データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理(★★★)
- Ruby
- Go
- SQL / DB設計
- 関数型言語
- オブジェクト指向、アーキテクチャ
- フロントエンド開発
- インフラ
- 技術以外の学問、キャリア関連
- 参考
- まとめ
前提:エンジニアとして経験した技術
これまでソフトウェアエンジニアとして業務で経験した主な技術です。
- 1社目(受託開発): Ruby, Rails, JavaScript, Vue.js, AWS
- 2社目(自社開発): Go, GCP, Kubernetes, Microservice
担当領域はバックエンドがメインではありますが、フロントエンドやインフラも選り好みせずなんでもやるスタイルです。
書籍について
- 個人的な難易度を★(易)~★★★(難)でランク付けしています
- 2019年(エンジニア未経験独学時代)~2022年(エンジニア3年目)の間に読んだ書籍を載せていますので、初心者向けの書籍も含まれます
- 現在ではより適した書籍があるかもしれません
- 技術以外の内容(キャリアや業界研究等)の書籍もエンジニアのキャリア形成に役立ったので掲載しています
- 完読していない書籍も含まれます
以下、分野ごとに書籍を紹介します。
全エンジニア向け
Web / インターネット
イラスト図解式 この一冊で全部わかるWeb技術の基本 (★)
HTMLコーダー&ウェブ担当者のための Webページ高速化超入門 (★)
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ) (★★)
Web API: The Good Parts (★★)
Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術 (★★)
Webフロントエンド ハイパフォーマンス チューニング (★★★)
セキュリティ / 暗号技術
暗号技術入門 第3版 秘密の国のアリス (★★)
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版[固定版] 脆弱性が生まれる原理と対策の実践 (★★)
認証 / 認可
雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド (★)
OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本 (★)
OAuth徹底入門 セキュアな認可システムを適用するための原則と実践 (★★)
テスト
はじめて学ぶソフトウェアのテスト技法 (★)
ソフトウェアテスト技法練習帳 ~知識を経験に変える40問~ (★)
Everyday Rails - RSpecによるRailsテスト入門(★)
https://leanpub.com/everydayrailsrspec-jp
テスト駆動開発 (★★)
コンピューターサイエンス
プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識 (★)
なるほどUnixプロセス (★★)
Goならわかるシステムプログラミング 第2版 (★★)
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】 (★★)
ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道 (★★★)
コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 (★★★)
Git, Linux, 正規表現
【改訂新版】Gitポケットリファレンス (★)
新しいLinuxの教科書 (★★)
反復学習ソフト付き 正規表現書き方ドリル WEB+DB PRESS plus (★)
開発の進め方、エンジニアマインド
SCRUM BOOT CAMP THE BOOK【増補改訂版】(★)
アジャイルサムライ(★★)
モブプログラミング・ベストプラクティス(★)
小さなチーム、大きな仕事 働き方の新しいスタンダード(★)
エンジニアの知的生産術 ―効率的に学び、整理し、アウトプットする(★)
達人プログラマー ―熟達に向けたあなたの旅― 第2版(★★)
Googleのソフトウェアエンジニアリング(★★)
Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち(★★)
サーバーサイド開発
オブジェクト指向、アーキテクチャ
リーダブルコード(★)
オブジェクト指向でなぜつくるのか(★)
UMLモデリングレッスン(★)
リファクタリング:Rubyエディション(★★)
リファクタリング 既存のコードを安全に改善する 第2版(★★)
現場で役立つシステム設計の原則(★★)
ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本(★★)
オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方(★★)
モノリスからマイクロサービスへ(★★)
Rubyによるデザインパターン(★★★)
ソフトウェアアーキテクチャの基礎(★★★)
データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理(★★★)
Ruby
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで(★)
メタプログラミングRuby 第2版(★★)
Effective Ruby(★★)
現場で使える Ruby on Rails 5速習実践ガイド(★★)
独習Ruby on Rails(★★)
パーフェクト Ruby on Rails 【増補改訂版】(★★)
Go
初めてのGo言語(★★)
実用 Go言語(★★)
Goプログラミング実践入門(★★)
改訂2版 みんなのGo言語(★★)
SQL / DB設計
SQL 第2版 ゼロからはじめるデータベース操作(★)
SQL実践入門(★★)
達人に学ぶDB設計 徹底指南書(★★)
SQLアンチパターン(★★)
関数型言語
プログラミングの基礎(★★)
フロントエンド開発
JavaScript / TypeScript
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで(★)
JavaScript Primer 迷わないための入門書 (アスキードワンゴ)(★★)
プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで(★★)
Vue.js / Nuxt.js
Vue.js入門 基礎から実践アプリケーション開発まで(★★)
みんなのVue.js(★★)
Nuxt.jsとFirebaseを使って爆速で何か作る前に読む本(★★)
HTML / CSS
HTML&CSSとWebデザインが 1冊できちんと身につく本(★)
HTML5 & CSS3 デザインレシピ集(★)
CSS設計完全ガイド(★★)
デザイン UI/UX
Bootstrap 4 フロントエンド開発の教科書(★)
Atomic Design(★)
UI/UXデザインの原則(★)
インタフェースデザインのお約束(★)
インフラ
ネットワーク
図解まるわかり ネットワークのしくみ(★)
DNSがよくわかる教科書(★)
Linuxで動かしながら学ぶTCP/IPネットワーク入門 (★★)
マスタリングTCP/IP 入門編(第6版)(★★)
AWS / GCP
Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版 (★)
AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~ (★)
Amazon Web Servicesクラウドデザインパターン設計ガイド 改訂版 (★★)
実践Terraform AWSにおけるシステム設計とベストプラクティス (★★)
エンタープライズのためのGoogle Cloud クラウドを活用したシステムの構築と運用 (★)
CI / CD
CircleCI実践入門 (★)
GitHub Actions 実践入門 (★)
コンテナ
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 (★)
イラストでわかるDockerとKubernetes (★)
Kubernetes完全ガイド 第2版 (★★)
監視
入門 監視 (★★)
データエンジニアリング
Google Cloudではじめる実践データエンジニアリング入門 (★)
実践的データ基盤への処方箋〜 ビジネス価値創出のためのデータ・システム・ヒトのノウハウ (★★)
技術以外の学問、キャリア関連
英語、数学
プログラマの数学第2版 (★)
プログラミング英語教本 (★)
キャリア
CAREER SKILLS ソフトウェア開発者の完全キャリアガイド(★)
SOFT SKILLS ソフトウェア開発者の人生マニュアル(★)
エンジニアとして世界の最前線で働く選択肢(★)
ベンチャー / スタートアップ
僕は君の「熱」に投資しよう(★)
渋谷ではたらく社長の告白(★)
センスのいらない経営(★)
2025年を制覇する破壊的企業(★)
STARTUP 優れた起業家は何を考え、どう行動したか(★)
その他、いろいろ
コンサル一年目が学ぶこと(★)
技術者のためのテクニカルライティング入門講座(★)
個人開発をはじめよう!クリエイター25人の実践エピソード(★)
参考
学習ロードマップや技術書のおすすめ記事を読み、技術学習の指針を立て、適した書籍を選んでいます。
特におすすめなのはこちらのロードマップ。
さまざまなエンジニア向けに必要な技術が列挙されていて、今の自分に不足している技術を知るのに最適です。
まとめ
現役エンジニアの方やエンジニアを目指している方にとって、少しでもお役に立てたなら嬉しいです。