はじめに
現代の人に名著以外の本を読むような時間はない
こんにちは、Watanabe Jin (@Sicut_study)です
みなさんは何か新しい技術を学ぶときにどんなコンテンツを利用するでしょうか?
最近ではUdemyなどの動画講座を利用する人が多いと思いますが、本を読んで学ぶという人もまだまだ多いのではないかと思います
今回は私がこれまで5年間読んできた150冊以上の中から厳選した30冊の本を紹介します。広く多くの人に役立つものから、特定の技術の書籍までどれを読んでもあなたの大切な一冊になるのでぜひ読んでみてください
現代人には時間がない
なぜ働いていると本が読めなくなるのかという本が話題になりました
現代人は本を読む時間がなくなっています。
仕事に追われてしまい、プライベートで本を読む暇などなくなっているのです。
しかし、エンジニアは「技術職」なのでプライベートの時間でも学習をしていくことはキャリアアップをしていく上でも大切になってきます
私たちにはイマイチな本で学習をするような時間はないのです
私はこれまでに150冊を超える技術書を読んできました。
その中には「今でも役に立っていること」から「何を書いてあったかすら思い出せない」ような俗に言うつまらない本も多くありました
この記事では私が読んできた本の中から厳選して紹介をしていきます。
もしあなたが書籍の内容を必要としているなら、役に立つ内容になるはずです。
書籍にはエンジニアとしてのレベルも理解に大きく関わるため、そのレベル感についても載せていきます。
アーキテクチャ
キレイにコードを書くことはチームで開発する上でも重要なことです
この力が身につくことがエンジニアとして高いレベルにいくための1つの要素になります
私がエンジニアとしてアーキテクチャのレベルがあがったと感じる書籍を紹介します
ドメイン駆動設計 モデリング/実装ガイド
レベル : ジュニア
ドメインとは?という状態で最初に学習した同人誌
一般流通している本ではないが、説明はものすごくわかりやすい
どうすればコードを綺麗にかけるようになるのか、ある程度プログラミングをやったことあるレベルであれば理解して読み切ることができます
良いコード/悪いコードで学ぶ設計入門
レベル : 駆け出し〜ジュニア
コードはなんとなくかけるようになった。というレベルの人におすすめの1冊
自分以外の人がコードをみて一瞬でコードの意図を理解できるようなキレイでわかりやすいコードを書くための考え方が全般的に学べます
ゲームを題材にした例題もステップアップになっており、オブジェクト指向をあまり詳しく理解していなくても書籍を十分読むことができます
輪読会で読み進めていましたが、とても充実したので思い出深い一冊です。
リーダブルコード
レベル : 駆け出し〜ジュニア
おそらくほとんどのエンジニアが読んでいるであろう知名度のある書籍
とりあえず読んだことないなら読んどいたほうがよい
変数の命名などコードに思いをのせて、誰が見てもその意図が伝わるようなコーディングができるようになります
ところどころに挿絵があるのですが、それもユーモアがあり面白いです
なっとく!関数型プログラミング
レベル : ジュニア〜ミドル
この書籍はものすごい良書だなと読んでいて常に思ってしまうほど、難しいとされるような箇所をわかりやすく説明しています
コードはScalaで書かれており、関数型プログラミングといいますがどちらもわからなくても読み進めることが可能です
代数型データ型などの説明もあり、TypeScriptなどの型のある言語をやっている場合は手元に置いておきたい一冊になります
アジャイル
私がアジャイルをやっているというところから、アジャイルに関する書籍を紹介します
ここでの内容はアジャイルに取り組んでいないチームでも部分的に取り組めるものが多くあります
アジャイルに関しては全エンジニアにぜひ読んでほしいと思うので気になるものから読み進めてみてください
SCRUM BOOT CAMP THE BOOK
レベル : 全エンジニア
アジャイルとは?スクラムとは?
と思った私が1番最初に読んだ名著
とあるプロジェクトがスクラムを導入することで、どんどん良い方向に向かっていく姿がマンガを通して紹介されています
スクラムにはいくつかのイベントと呼ばれる会議のようなものがありますが、その中でも「ふりかえり」などはアジャイルを取り入れていないチームでも役立ちます
ここはウォーターフォール市、アジャイル町
レベル : 全エンジニア
ウォーターフォールとアジャイルは比較されます
その比較を丁寧にしているのがこの書籍です
この書籍の魅力はなんといってもストーリーにあります
まさかの技術書で最後感動する日がくるなんて
読み物としてもものすごくおすすめです。
しっかり最後のエピローグまで読みましょう
XPエクストリーム・プログラミング入門
レベル : ジュニア〜ミドル
ケント・ベックのアジャイルの一種であるXPを網羅的に解説した書籍
「テスト駆動開発」「ペア・プログラミング」などXPに関わる情報がすべて丁寧にまとまっているので1冊ですべてを理解することができる
チームをより効率的にしたいと考えるのであれば読んでほしい
テスト駆動開発
レベル : ジュニア〜ミドル
ケント・ベックの1番有名なのでは?と思う一冊
私は2年目のときにこの1冊に出会って人生が変わりました
テスト駆動開発は本当に素晴らしく、テストを最後に書くときに「面倒」「書くメリットがよくわからない」と感じていた私の考えを壊してくれました
ぜひこの書籍を読んでほしいですが、気になる方はぜひとも以下の動画をみてほしいです
私がテスト駆動開発をまったく習慣がないチームに導入した際に、この動画をみてから本を読ませることでスムーズにテスト駆動開発を導入することができました
モブプログラミング・ベストプラクティス ソフトウェアの品質と生産性をチームで高める
チームでペア・プログラミングやモブプログラミングを取り入れるときにその考え方を学ぶのに役に立った本
ペアプロやモブプロを導入しようとすると
「開発効率が落ちる」
と言われます。しかし、まったくそんなことはありません。
そこでなぜモブプロをやると開発が早くなるのかという考え方を学ぶことができました
インフラ/クラウド
インフラ周りはとくに自分で学習をするのが難しいと思っています
その中でもなるべく手を動かして理解できるものを紹介していきます
AWSではじめるインフラ構築入門
レベル : 駆け出し〜ミドル
- AWSといものをできるようにしたい
- デプロイをやってみたい
このように考える人におすすめの1冊がこちらです
私は未だにこの本を手元においてAWSを触るときには参考にしています
ネットワークの設定からEC2、RDSなどWebエンジニアに必要なことを手を動かして学べます
書籍も丁寧に解説されているので問題なく進められるのもおすすめポイントです
最後まで読み終わった後に学習したことを活かして自分のアプリケーションを同じ構成でデプロイすることができればあなたの力に100%なっています
仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
レベル : 駆け出し〜ジュニア
Dockerとは?というレベルの人が最初に読むべき1冊
概念が難しいDockerを図解にしてわかりやすく解説している
手をつごかして実際に確かめながら学習できることは難しい技術にはありがたいこと
最後にKubernetesの説明もあるがこちらはかなり難しく、そもそもジュニアの人に求められるような技術ではないので飛ばして大丈夫です
AI (機械学習)
普段はReactの記事をあげていますが、実はデータサイエンティストを1年ほどやっておりました
全くデータサイエンスについて知らなかった私が、論文を読んで実装できるようになるまでに特に読んで良かったものを紹介します
AIに興味がありどのように動いているのかの仕組みを知りたい方におすすめです
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
レベル : ジュニア〜ミドル
現代のAIには必ずディープラーニングという仕組みが入っているので、機械学習を学ぶのであれば1冊目に読むべきはこの書籍だと思っています
すこし数学の知識は必要ですが、フルスクラッチで実装するので読み終わる頃にはディープラーニングの仕組みを説明できるようになっているはずです
ゼロから作るDeep Learning ❷ ―自然言語処理編
レベル : ジュニア〜ミドル
ChatGTPが登場して日常で触れるAIは自然言語処理が多くなっています
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装で学ぶのは画像認識になるため、自然言語処理ならではの知識を得ることができます
文章をどのように数値の世界に落とし込むのかを理解できると、プロンプトエンジニアリングにも役に立つと思います
BERTによる自然言語処理入門: Transformersを使った実践プログラミング
レベル : ジュニア〜ミドル
自然言語処理のモデルにはBertというTransformersの考え方が多くで使われています。その基本的な考え方について学ぶことで、より難しいモデルがあふれているなかでも使いこなせるような知識が身につきます
プログラミング言語
私が過去に使ってきた言語やフレームワークで特に学びになったものを紹介します
スッキリわかるJava入門
レベル : 駆け出し
はじめてJavaなどのオブジェクト指向言語を学ぶならこの本が最も最適だと思っています。
オブジェクト指向はインスタンスやクラスなど使い方がいまいちパッとしないことが多くあります。
この書籍ではゲームを使ったわかりやすい例えを多用しているので未経験でも読み進めることが可能です
Kotlin サーバーサイドプログラミング実践開発
レベル : ジュニア〜ミドル
Kotlinの文法から始まり、実際にSpringBoot/Ktorフレームワークを使ってDaoなども駆使しながらアプリケーションを作成することができます
一部書籍で難しい箇所もありますが調べながらやることで理解も深まります。
Webアプリ開発で学ぶ Rust言語入門
レベル : ジュニア〜ミドル
Rustを使って初めてアプリケーションを作りたいと考える人にはおすすめです
Rust特有の所有権などもしっかりと説明されており、axumを使ったWebアプリケーション、テストなどWebアプリを作成するのに必要なことをすべて学べます
りあクト! TypeScriptで始めるつらくないReact開発 全4巻
レベル : ジュニア〜ミドル
ReactをJavaScriptの歴史から細かい仕様を含めて理解したいときにおすすめ
ここまでJavaScriptの歴史について書いてある書籍はおそらくないです
輪読会で実際に読み進めましたが、JavaScriptに対する苦手意識は皆なくなったと思います
ストーリー仕立てなのに内容は本格的なので楽しみながら実力がつきます
実践Next.js —— App Routerで進化するWebアプリ開発
レベル ミドル〜
Next.jsの普段あまり使わないけど、使えるだけで一気に自分のレベルをあげられるような内容が紹介されています
- server actions
- useForm
など使えるようになるとよりユーザービリティあふれるサービスが作れるようになります
APIを作りながら進むGo中級者への道
レベル : ジュニア〜ミドル
Go言語を手を動かしながら実践的に学べます
Goの標準ライブラリだけで実装されており、アーキテクチャもしっかりと説明されているため内容を理解して自分でアプリを作れる力が身につきます
こちらも同人誌ではありますが、超良書なのでGoをやってみたいなら最初に読んでほしいです
その他
最後にジャンルがつけられなかったものをまとめて紹介します
そろそろ常識? マンガでわかる「正規表現」
レベル : 駆け出し〜ジュニア
正規表現を使うという機会が私には割とありました
そこで何度も確認したのがこの書籍でした
必要なことをしっかりとまとめて載せているので、キャラクター本で無駄が多そうに見えますが手元に置いておきたくなる良書でした
知識ゼロから学ぶソフトウェアテスト
レベル : 駆け出し〜ジュニア
テストを書くというのはものすごく大切になっているなかで、そもそも何をテストすればよいのか?というところにぶつかります
テストはやりすぎてもダメですし、網羅することも大切です
そこでどのようにすればテストが十分にできるのかを理解することが可能です
現場のプロから学ぶ SEO技術バイブル
レベル : ジュニア〜
自分でサービスをリリースして使ってもらうことを意識するまでSEOは自分とは違う世界でした
しかし、SEOがないとどんな良いサービスも世の中に知ってもらうことはできないと思い学習したのがこの1冊です。基本的なSEOの知識を学べます
Next.jsがでたことでSEOをよりできるようになったので、より特徴を活かすことが可能です
マンガでやさしくわかるコーチング
レベル : 全エンジニア
エンジニアをやっていると1on1が設けられていることも多いかと思います
1on1をただの雑談にするのではなく、クライアントのために有益な時間にしたいと思う人にぜひ読んでほしい1冊です
コーチングを勉強しないとコーチングをすることは難しいです
マンガでさくっと読むことができるのでおすすめです
なれるSE 全16巻
レベル : 全エンジニア
プログラミングの勉強をしている中で息抜きとして電車で読んでいました
エンジニアを題材にしているライトノベルですが、とにかくストーリーが面白いので後半はエンジニア要素が薄くはなっていますがおすすめです
全然ダメダメの主人公がブラックな会社で先輩と一緒に駆け上がる姿がやる気を引き起こしてくれました
おわりに
これまで150冊以上読んできている中で、ぜひ読んでほしいと思ってもらったものを厳選しました。
このような記事を書くと「ドメイン駆動設計」などを書きがちですが、あえて難読な書籍に関しては紹介しませんでした
この中の書籍があなたの大切な一冊になってくれたら嬉しいです
ここまで読んでいただけた方はいいねとストックよろしくお願いします。
@Sicut_study をフォローいただけるととてもうれしく思います。
また明日の記事でお会いしましょう!
JISOUのメンバー募集中!
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
実践的なカリキュラムで、あなたのエンジニアとしてのキャリアを最短で飛躍させましょう!
興味のある方は、ぜひホームページからお気軽にカウンセリングをお申し込みください!
▼▼▼