働き始めて1～2年目くらいのエンジニアにオススメできる本たち

これは [Qiita Engineer Festa 2022 - Qiita](https://qiita.com/official-campaigns/engineer-festa/2022) の参加記事です。

自分がシステム開発者として働き始めて1～2年目くらいの頃に「これは買ってよかったな～」と思った技術書を紹介します！
なお、この記事は
**プログラムを専門的に（大学などで）学んでいない、1～2年目くらいの開発者**
あたりの読者を想定しています。私がそうだったので。

# 言語系

## スラスラ読める PHPふりがなプログラミング
※下記サイトで試し読みできます

https://book.impress.co.jp/books/1119101070

超絶優しくてわかりやすい！
「優しくレクチャーする」がどこまでも徹底されており、PHP入門者のための最初の1冊だと思います。
「**このコード、どこから解読すればいいんだ…？**」
「**そもそもプログラム見ても何書いてるのか全然わからん…**」
みたいな悩みを、実践を交えてとにかく優しく解決してくれます。

### この本の良いところ
* 優しすぎて置いていかれる心配ゼロ。
専門的にプログラムを学んでいない層に超おすすめです。
* **エラーメッセージの読み方**を解説してくれているところ。
ぶっちゃけ言語は公式リファレンス探せば意味や使い方など沢山情報が出てきますが、エラーメッセージは「**調べる前に読み解く**」ことが重要になってきます。
（エラーは事象によって千差万別なので、エラーメッセージそのままでググっても違う事象が出てくることはままある）

ちなみにPHPだけでなく、さまざまな言語で『ふりがなプログラミング』シリーズがあるみたいなので他言語を使う方も手に取ってみては！

## スッキリわかるJava入門
※下記サイトで試し読みできます

https://book.impress.co.jp/books/1119101083

簡単な計算や画面表示くらいはできるようになったから、
次は**実際にコードを書きながらオブジェクト指向言語を一通り学習したい**という方にもってこいの一冊。

### この本の良いところ
* 「dokoJava」というクラウドの仮想開発環境でコードを書いてコンパイル・実行しながら学べる
ネットさえ繋げられれば、どこでもコードが実行できる環境が用意されています。ありがたい。
開発環境構築も1つの学習ではありますが、やっぱり環境構築って大変でハマりやすいので『Javaの学習に集中したい』という場合にはぴったりですね。
* **オブジェクト指向言語の基礎が一通り学べる**
「Javaを学べる」と同時に、「オブジェクト指向言語の基礎を学べる」のがいいですね。
自分は今の会社に入社してから現場に出るまで、これを使って社内で勉強していました。
今げ仕事ではPHPを使っていますが、この本で学んだことが今でも役に立っています。クラスの考え方とか。

# コーディング系
## リーダブルコード

https://www.oreilly.co.jp/books/9784873115658/

言わずと知れた名著。
「名前聞いたことあるけど読んだことないなー」って方は今すぐポチりましょう。
「**コードレビューで可読性が低いって言われた…**」
「**コードをもっと綺麗に書きたい**」
という方にオススメです。
読みやすくメンテナンスしやすいコードとはどういったものなのかという『考え方』から、実際どう書けば良いのかといった『方法論』まで分かりやすく書かれています。
よくベテランの方が「もっと早いうちに読んでいれば良かった…」と言っているのを目にするので、ぜひ早いうちに読みましょう！

### この本の良いところ
* **実際のコードを交えながらの解説が分かりやすい**
PythonやJavaScriptなどの実際のコードを例に挙げながら話が進んでいくので、理解しやすく**実践に活かしやすい**です。
書いてある言語を知らなくても、何かしらでプログラムを書いたことがあるなら理解できるように書かれている（ifとかforとか）のでそこは心配不要。
* 難しい言葉が少なく、**分かりやすい言葉**で解説してくれている
本を読むのが遅い私にとっては本当にありがたい！
語り口調かつ分かりやすい言葉で結構優しめに解説してくれているので、すらすら読めて理解しやすいです。

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

https://www.shuwasystem.co.jp/book/9784798046143.html

リーダブルコードと同様、開発者にとっての必読書！
「**自分が実装したプログラム、エラーが多いなぁ…**」
「**初めてのコードレビュー、どういう観点でしたらいいんだろう**」
といった悩みを解決してくれる辞書的存在。PCの横に置いて仕事しましょう。
コーディングする上で大事な原理原則がずらっと書かれている本です。

### この本の良いところ
* **「What」「Why」「How」の解説がある**
それぞれの原則について、What=「**こういう意味の原則だよ**」、Why=「**この原則が必要な理由はこれだよ**」、How=「**この原則はこんな風に使えるよ**」の3点を分かりやすく解説してくれています。
単に言葉だけが並んでいるわけではなく、腹落ちしやすいので頭にとても入ってきやすいです。
あと、意外とこういう原則100選みたいな本って、原則の紹介だけして「How」を書いてないことが多いんですよね。その点、この本は「How」が分かりやすく書かれているので実践しやすいのが推せます。

# インフラ系

## この一冊で全部わかるWeb技術の基本
※下記サイトで試し読みできます

https://www.sbcr.jp/product/4797388817/

「**そもそもWebってどんな仕組み？**」
「**HTTPでのやり取りってどうなってるの？**」
といった疑問を解消してくれる一冊。
Webの基礎からWebアプリケーションのセキュリティに関する話、システム構築の考え方まで、結構幅広く書かれています。
エンジニアに限らず、これからIT業界で働く人は全員読んだ方が良いのではと思う本です。
特に私のような、情報系・技術系を専門的に学んでいない人は必読かと思います。

### この本の良いところ
* **見開き左ページ文章 + 右ページ図解 の構成で読みやすい**
図解って素敵。文章だけだと分かりづらいWebの仕組みも、イラスト解説で分かりやすくなっています。
感覚的に理解できるので、Web技術の入門書としておすすめ。

# チーム開発系
「これに技術書タグ付けるのはどうなの？」と自分でも思いましたが、チームでシステム開発する上で読んでよかったと思える1冊なので紹介させてください。

## TeamGeek

https://www.oreilly.co.jp/books/9784873116303/

**チーム開発でいかにして上手くやっていくか**のアドバイスがてんこ盛りの本です。
上記サイトより引用：
> 複数のプログラマが関わる場合、優れたコードを書くだけではプロジェクトは成功しません。全員が最終目標に向かって協力することが重要であり、チームの協力はプロジェクト成功のカギとなります。

激しく同意ですね。
チーム運営でのあれこれが書かれていますが、チームリーダー観点だけでなくチームメンバー観点で読む価値も十分あります。
中にはチームにとって悪影響を及ぼす人への対処についても書かれており、組織で楽しく仕事していきたいなら読んでおきたい一冊。
正直この本に書いてあることは、エンジニアか否かにかかわらず組織で仕事する上で大切な要素のように思います。

### この本の良いところ
* **語り口調で読みやすさ抜群**
この本は海外の書籍を翻訳したもので、全て語り口調で書かれています。
「Tomは他のメンバー全員に辛辣なコードレビューを送っていたんだ。でもTomに悪気はないのは分かってる。どうしたらいいだろう？」みたいな感じです。超読みやすい。
ちょくちょく出てくるイラストもイメージが分かりやすくて好き。

# まとめ
自分が1～2年目に読んでよかったなと思う本をざっと挙げてみました。

最後に、読み方としてオススメしたいのが「**輪読会**」です。
個人で買って読んでみるのも良いですが、私みたいに「本積んでるけどなかなか読み進められないんだよね…」みたいな人は、他人を巻き込みましょう！
同僚やコミュニティの仲間同士、似通ったレベル感の人たちで一緒に読むのが良いと思います。
実際、今私は所属している社外コミュニティで [良いコード／悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方](https://gihyo.jp/book/2022/978-4-297-12783-1) を輪読しています。
輪読会では、
* 他人を巻き込むことで半ば強制的に読む機会を得られる（読み始めてしまえば楽しいので「**読み始めること**」が肝心）
* 意味を考えながら音読することでよく理解していない部分に気付ける
* みんなで話し合いながら読み進めることで、内容理解が深まるし他人の疑問からの学びがある

みたいなメリットが得られるかなーと思ってます。