はじめに
未経験新卒でエンジニアを始めてから一年以上がたち後輩が入ってきました。
よくおすすめの書籍を聞かれるので、この機会に自分が読んだおすすめの本をまとめてみました。
読んだ本を数えてみたら38冊も読んでいて正直自分でもびっくりです。
今回はその中から厳選した9冊を紹介します。
※ここではJavaなどに絞らず、サーバサイドエンジニアとしておすすめの書籍を紹介します。
私の未経験当時のスペックと現状
未経験当時
- 大学1年生の時にC言語を授業で習ったがやる気もなくループ処理なども分からず
- 就活でエンジニアに決まってからPaizaの問題を解きまくりA問題も多少解けるレベル
(ただし変数名はaaaaとかhogeeeを多用w)
現状
書籍を大量に読んでアウトプットしていたおかげで(もちろんまだまだ勉強中ですが)
- ダメなコード、良いコードの判別が出来て、実装にも落とせる。
- アーキテクチャを採用したAPIサーバなどをゼロから作ったり出来る。
- デザインパターンとか適用した良い感じのコーディングが出来る。
未経験エンジニアにおすすめの本の紹介
上記で記載した未経験〜現状までの道のりの中で、おすすめの本を紹介していきます。
★を付けた書籍はおすすめする書籍の中でも最も読んだ方が良い書籍だと思っています。
※上から順に紹介している書籍を読むといいと思います。
★リーダブルコード
プログラミングをする上での命名ルールやコードの作法など、未経験エンジニアが最初に学ぶべき事が多く詰まった書籍です。
初めての実装では指摘される箇所が本当に多いかもしれませんが、この書籍の内容を実践しているだけで、一つ上の実装力を身に付ける事ができます。
読みやすくスラスラ簡単にページが進むので、一読してから実践し、時間が経ってから振り返って読んでみる事をおすすめします。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
WEBサービスはどのような仕組みで動いているのかなど全体像をつかむことが出来る書籍です。
実際に私が未経験でエンジニアを始めた時に、全体像を掴むのに苦労しました。
簡単に読めるので、一読しておく事をおすすめします。
★現場で役立つシステム設計の原則
オブジェクト指向を学ぶにあたって一番最初に読むと良い書籍です。
簡単な実装が出来るようになってから次のステップへ行くための内容なので、研修を終えた人が読んでとても価値のある内容になっています、
私はこの書籍を読んでから全体的な雰囲気を掴むことができ、具体的な実装例も学べたことで、自分の書くコードがガラッと変わりました。
新装版 リファクタリング
before afterでどのようにリファクタリングしていくのかを示してくれている良書です。
内容はJavaで書かれていますが、どの言語でも共通して適用できる内容なので辞書のように使う事をおすすめします。
量が多いので、一読してどのようなパターンの時にリファクタリング出来るかを頭の中に入れておき、いつでも引き出せるようにしておけば良いと思います。
★増補改訂版Java言語で学ぶデザインパターン入門
オブジェクト指向における再利用のための23種類のデザインパターンをまとめた書籍です。
デザインパターンとはよくある実装上の問題に対する改善パターンを示したものです。
上の方で紹介した「現場で役立つシステム設計の原則」を読んでからコーディングしていくうちに、微妙そうだけど、改善できないコードに出くわしてきます。
そんな時に、パターンとしてまとめられたこの書籍を読む事で、改善策を実装に落とし込むことができます。
※この書籍で概要を掴んだら、実際に自分で実装の練習をしてみてください。
★Clean Architecture 達人に学ぶソフトウェアの構造と設計
一貫して「変更に強いシステム」を作るためにはどの様に仕事に取り組み、どの様に実践していけば良いかを示している書籍です。
部分的な実装が出来る様になってきてから、こちらの書籍を読むと、全体を見渡した良いコーディングを身に付ける事ができます。
いきなりこちらの書籍を読むのはハードルが高いので、上記で紹介した書籍を読んでからこちらの書籍を読む事をおすすめします。
テスト駆動開発
テストコードを書く前に一読しておくと良い書籍です。
内容にストーリー性があって読みやすく、テストコードを書いた事がなくてもイメージが浮かぶので、
これからテストコードを書く必要のあるエンジニアは一読しておくと良いかと思います。
★アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
SOLIDの原則やデザインパターンについて詳しく説明がされている書籍です。
具体的な、シチュエーション(要件)から始まり、どの様に考えどう実装していくかも書かれていて、とても勉強になります。
なかなかのボリュームがあるので、一気に読まなくても章ごとに他の書籍の参考書としても使う事ができます。
エリック・エヴァンスのドメイン駆動設計
実をいうと、私は少し読んだものの難しく、今は一旦断念中の書籍です。
ですが、なぜこの本を紹介に入れたかというと、
「DDD」という言葉は仕事をする中でよく耳にしますし、その時にやはり一番パッと浮かぶのがこちらの書籍だからです。
出来るエンジニアの先輩たちもこちらの書籍は読んでいて、おすすめもされる書籍です。
一旦断念中とはいうものの、年内にはもう一度トライしてみようと思います。
なかなか理解が難しいと思うので、学んだ箇所はアウトプットすることも忘れずに取り組みたいと思います。
まとめ
この一年半で多くの書籍を読んできました。
その中でも学びの多かったおすすめの書籍を紹介しました。
未経験で何を勉強するか迷っている人のためになれば幸いです。
この記事を読んで他に良い書籍があればコメントで教えてください!
以下の記事を参考におすすめの書籍を紹介してみました。