Ateam Lifestyle Advent Calendar 2020 の10日目は株式会社エイチームライフスタイルの@msm_2 が担当します。
今回はプログラマーになってから読んだ本の整理をする中で、読んでいてよかったな思っている本を紹介します。
読んだ本の順番はランキングではないのでご注意ください。
1冊目: マスタリングTCP/IP―入門編―
内容
TCP/IPについて詳しく知りたいときに読むと良い本かと思います。
ネットワークやTCP/IPの歴史についても説明がされているため、内容が濃いように感じます。
この本を読むことで、これまで雑に理解していた部分を詳しく知ることができたので、復習の意味を込めて読んでみても良いかもしれないです。
こんな方におすすめ
- ネットワーク周りの知識をつけたい人
- ネットワークについてこれから学びたいと感じている人
2冊目: エッセンシャル思考 最少の時間で成果を最大にする
内容
「エッセンシャル思考」について説明する本です。
エッセンシャル思考とは何を大切にし、何を捨てるべきかについての考え方になります。この本の序文で説明されている「より少なくより良く」はいままで自分がやってきたことが、やらなくても良かったことかもしれないと気が付かせてくれる良い言葉だとおもいます。この言葉以外にも、シンプルでわかりやすく考え方について説明がされているため読みやすかったように感じます。
こんな方におすすめ
- やることが多いけど何を捨てるべきかわからない
- 本当にこれはやるべきなのだろうかと悩んでいる人
3冊目: 栢木先生のITパスポート教室
内容
ITパスポートの試験勉強におすすめの本になります。
この本はわかりやすくまとまっているので、IT業界に入ったばかりの人に読みやすと思います。
こんな方におすすめ
- IT業界に入ったばかりの人
- ITパスポートを受ける予定の人
4冊目: リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
内容
どういった構文や変数名の付け方が良いかを説明してくれている本になります。
実例を交えながら説明をしてくれるため、良いコード、良い変数名がどういったものかを学ぶことができます。
読みやすいコードとはなにかについて説明書されているので、初学者の方は読んで置くと良いと思います。
こんな方におすすめ
- コードを書き始めたばかりの人
5冊目: 新装版 リファクタリング 既存のコードを安全に改善する
内容
リファクタリングをしていくことの良さと、どうリファクタリングをしていくのかについて書かれている本です。
既存コードをどう安全にリファクタリングするかを手法と合わせて説明されています。
本の最終ページには、各章で説明がされていた手法ページへの参照と簡単な説明がされているため、索引として使えるので便利です。
Java, Ruby, JavaScriptそれぞれに対して本が出ているので自分がよく書く本を読んでみると良いと思います。
こんな方におすすめ
- リファクタリングの手法について学びたい人
6冊目: Clean Architecture 達人に学ぶソフトウェアの構造と設計
内容
著者がこれまでの経験から良い設計とは何であるかを説明している本になります。
この本の中で「アーキテクチャのルールどれも同じである」と作者は説明しています。
これまで作者が得た経験をもとに、どういったシステムを作りどう組み立てて来たかを説明しています。
ソフトウェアアーキテクトが果たすべき役割と、どうシステムを構築するかについて、考え方を学ぶ上で良い本だと思います。
こんな方におすすめ
- 設計について学びたいと感じている人
7冊目: 小さなチーム、大きな仕事 働き方の新しいスタンダード
内容
新卒入社半年目くらいに先輩におすすめされた本になります。
章ごとに短く説明書され、読みやすい本になります。
本の著者は16人のチームで大きな収益を上げています。そのチームの考え方と仕事の仕方について説明がされています。内容も冗長に説明がされているわけではなく短く簡潔にまとまっているため、サクサク読むことができます。
こんな方におすすめ
- 仕事のやり方に悩んでいる人
- 何に力をいれて仕事するべきか考えている人
8冊目: テスト駆動開発
内容
TDDの実践方法をTODO形式で説明してくれる本になります。
本の中ではTODOを記述し、落ちるテストを書き、テストを通すTDDのリズムを知り学ぶことができます。
また、PHPUnitやJUnitなどのxUnitフレームワークのについての説明もされています。
テストコードを書くためのいくつかのパターンも紹介されているため、テストコードの書き方を体系的に学ぶことができます。
この本の第一章を読むだけでもテストを書きたくなってきます。テストケースがレッドからグリーンになる快感を知ることができる良い本だと思います。
こんな方におすすめ
- テストコードを書きたいがどういった書き方をするべきかわからない人
- テストコードを書いていきたい人
9冊目: レガシーコード改善ガイド
内容
この本の序文には「テストコードのないコードはレガシーコード」だと定義をしています。ただ、本の内容はテストの書き方を説明する本ではなく、既存のシステムを理解、テスト、改修、機能追加するための手法について紹介している本になります。
各章がFAQの形をとっているので、自分が困っている事柄について答えを探すために読んでも良いと思います。
この本は読むたびに新しい発見があるので、時々読み返すようにしています。
こんな方におすすめ
- 普段書いているコードがレガシーに感じるが直し方がわからない人
- 巨大なコードと戦っている人
10冊目: プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
内容
プログラミングをするための指針となる「前提」「原則」「思想」「習慣」「視点」「手法」「法則」について説明がされています。
抽象度が高い事柄が多いため、初学者のうちに読むと内容を理解しきれず難しく感じ、中級者くらいの人をターゲットにしていると思います。
参考文献が充実しているので、興味を持った部分の参考文献を読むような、本を探すための本としても使えるかと思います。
知っている知識、知らない知識を洗い出し、知識の整理のためにいい本かと思います。
こんな方におすすめ
- タイトル通り3年目までの方
- 昔から言われているプログラミングの原理原則について知りたい方
- 技術が生まれてきた背景を知りたい方
最後に
最後まで読んでいただき、ありがとうございました。
本を読むことで今まで自分が知らなかった知識を知ることができ、新しい考え方を取り入れることができると思っています。
今回紹介した本は有名な本ばかりですが、興味を持って手にとっていただけたら嬉しいです。
明日は@poncoが「メンタル豆腐の3年目デザイナーが鉄筋メンタルを作るためにやったたった1つの習慣」を公開いたします。どうぞお楽しみに!