プログラミング

エンジニア1年目に絶対に読んで欲しい本20冊を紹介!

未経験や新卒でエンジニアになって1年目でどんな本を読めば良いのか迷っている人も多いと思います。

そこでこの記事では、筆者が実際に読んだ上でおすすめするエンジニア1年目に絶対に読んでほしい本20冊をご紹介します。

筆者の主なプロフィールはこちらです。

こにかみ
  • 26歳で未経験からエンジニアになって実務経験2年半で年収300万円アップでメガベンチャーへ転職
  • 現在はtoC向けのWebアプリ開発に従事
  • 言語はPHP,Pythonを使ったサーバーサイドの開発を担当
Contents
  1. 実際に読んで体感したエンジニア1年目に絶対に読んで欲しい本20冊
    1. コーディングスキル&設計
    2. DB・SQL
    3. インフラ・WEB技術
    4. セキュリティ
    5. アルゴリズムとデータ構造
  2. 更なる知識をつけたい方におすすめの本
    1. データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理
    2. 分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計
    3. テスト駆動開発
    4. エリック・エヴァンスのドメイン駆動設計
    5. アジャイル開発とスクラム 第2版
  3. 技術書を読むことのメリット
    1. 設計や実装に根拠を持つことができる 
    2. 知識の引き出しが増える 
    3. ベストプラクティスが分かる 
  4. まとめ

実際に読んで体感したエンジニア1年目に絶対に読んで欲しい本20冊

筆者が実際に読んだ上でおすすめするエンジニア1年目に絶対に読んでほしいおすすめの本20冊をカテゴリー別にご紹介します。

筆者も駆け出しの頃にこの本を読んだ結果、未経験から2年半でメガベンチャーのエンジニアになることができたので、是非参考にしてみて下さい。

【体験談】実務経験2年半「転職ドラフト」でメガベンチャーに転職成功しました転職ドラフトでメガベンチャーに転職成功した体験談をご紹介します。 これから転職ドラフトを利用される方やエンジニア転職を検討されている方の参考になる情報を提供します。...

コーディングスキル&設計

1. リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック

リーダブルコードは、プログラマーなら誰もが一度は読んでおいた方が良いと言われる名著です。

コーディング時の命名規則や設計原則等が細かく書かれており、特にエンジニア初心者の人にはおすすめです。

こにかみ

筆者も今でも何度も読み直すほど重宝しています。 
エンジニア初心者には絶対に読んでほしい本です。 

2. 達人プログラマー(第2版)熟達に向けたあなたの旅

達人プログラマーは、より良いプログラマになるための実践的なアプローチについて書かれている本です。

20年以上前に書かれた本ですが、第2版で追記されて今でもなお多くのエンジニアに愛される1冊です。

こにかみ

設計・コーディングスキル向上に繋がる名著です。
エンジニアとして意識すべきことが分かるのでおすすめです。

3. プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則

プリンシプルオブプログラミングは、3年目までに身につけたい原理原則を学ぶことができる本です。

リーダブルコードや達人プログラマーなどと同じく、エンジニアとして仕事をしていく上での基礎となる原理原則を学べるので非常におすすめです。

こにかみ

駆け出しの時に1回は絶対に読んでおくと良い本だなと思います。

4. リファクタリング 既存コードを安全に改善する

リファクタリングは、既存コードを改修する際にどういった観点で修正していくべきかについて書かれている本です。

業務でリファクタリングする機会が多いエンジニアは絶対に読んでおきたい1冊です。

こにかみ

筆者もリファクタリング業務に携わる前に読んで非常にタメになりました。
リファクタリングに取り組む際には常に手元に置いておきたいと思うほどおすすめです。

5. 良いコード悪いコードで学ぶ設計入門

良いコード悪いコードで学ぶ設計入門は、良いコードと悪いコードを例題を交えて教えてくれる設計の入門書です。

筆者の方がこれまで経験してきた実例を交えてこの場合はこうした方が良いという具体的な例を示してくれるので、非常に分かりやすい内容になっています。

こにかみ

設計の考え方をかなり細かく知れるので非常におすすめです。
実際に筆者もこの本で触れられているフラグ引数を使った悪い設計をちょうどその時実務でしてしまっていて、修正したのを覚えています。
それくらい実務でもすぐにでも使える技術が散りばめられている名著です。

6. ソフトウェアアーキテクチャの基礎

ソフトウェアアーキテクチャの基礎では、ソフトウェアの設計、構築、維持するために必要な知識を得られる本です。

実例を交えた説明でシステムの根幹であるアーキテクトについて学べるのでおすすめです。

こにかみ

息の長いプロダクトにするためにどのようにアーキテクチャー設計をすべきか学ぶことができます。

7. この1冊ですべてわかる 新版 SEの基本

システムエンジニアとしてどのように仕事を進めていくべきかという、コーディング技術以外のビジネススキルや上流工程のスキルについて学べる本です。

SEに必要な知識が網羅的に書かれているのでおすすめです。

こにかみ

SEとして必要なスキルや仕事の進め方を知ることができるので、一度読んでみると良いと思います。

8. オブジェクト指向でなぜつくるのか

オブジェクト指向について非常に分かりやすく書かれている本です。

普段何となくオブジェクト指向でプログラムを書いている人も、なぜオブジェクト指向が良いのかについて具体的に学ぶことができるのでおすすめです。

こにかみ

分かっているつもりだったオブジェクト指向について、より深く学ぶことができて、なぜオブジェクト指向なのかというのが非常に良く分かりました。

9. Clean Architecture 達人に学ぶソフトウェアの構造と設計

Clean Architectureは、ソフトウェアの構造や設計について学べる本です。

良いアーキテクチャとはどういう原則に則っているのかについて学ぶことができるので非常におすすめです。

こにかみ

アーキテクチャー設計をする際には非常に参考になる知識が散りばめられている名著です。

10. 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法

オブジェクト指向で変更に強く安全なシステムを作るための設計原則について学べる本です。

オブジェクト指向でシステムを作る際に意識すべきポイントについて学ぶことができるのでおすすめです。

こにかみ

オブジェクト指向での設計ポイントについてより詳しく知ることができました。

DB・SQL

11. 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

例題をもとにSQLの書き方について学べる本です。

SQLに関しては全エンジニアにとって必要になる知識なので、この本に書いてある内容はマスターしておいて損はないです。

こにかみ

この本を一通り読めば、ある程度開発現場でも困らないSQLスキルを習得できるのでおすすめです。

12. 達人に学ぶDB設計徹底指南書

DB設計における考え方やポイントについて学べる本です。

一度自分でポートフォリオ作成などでDB設計を経験した後に読むと、より納得感を持って読むことができると思うのでおすすめです。

こにかみ

DB設計する際に何度も読み返すと良いかなと思います。

13. SQLアンチパターン

SQLのアンチパターンを例題をもとになぜ悪いのかも含めて学ぶことができます。

悪いSQLはシステムにかなりの悪影響を及ぼす可能性があるので、この本を読んでSQLのアンチパターンを知ってそれを回避できるようにしておくことをおすすめします。

こにかみ

少し実務でSQLについて触った後に読むと、紹介されているケースがより鮮明に理解できると思います。

この本を読んだときにこのアンチパターンあったわーと思うことが結構ありました。笑

インフラ・WEB技術

14. マスタリングTCP/IP―入門編―

TCP/IPについて分かりやすく学ぶことができる入門書です。

エンジニアとして知っておきたいネットワークの基礎基本を学ぶことができる内容になっています。

こにかみ

ネットワークに関する基本的な知識を得ることができるので、一度は読んでおきたい本だなと思います。

15. Webを支える技術―― HTTP,URI,HTML,そしてREST

Webを支える様々な技術について分かりやすく解説してくれている入門書です。

エンジニア初心者の時は用語の意味を詳しく理解していないことも多いので、駆け出しの頃に一度読んでおくと良いと思います。

こにかみ

エンジニアとして絶対に知っておかなければいけない技術について分かりやすく学ぶことができるのでおすすめです。

16. [試して理解]Linuxのしくみ~実験と図解で学ぶOSとハードウェアの基礎知識

多くのシステムで利用されているLinuxについて分かりやすい図解で学ぶことができる入門書です。

初心者には分かりずらいOSやハードウェアについての知識を分かりやすく学ぶことができるのでおすすめです。

こにかみ

Linuxの概要について分かりやすく学ぶことができるのでおすすめです。

17. 新しいLinuxの教科書

実際にLinux環境を作成する方法やその作成した環境で動かしながらLinuxについて学ぶことができるLinuxの入門書です。

色々なLinuxコマンドの使い方やLinuxに関する知識を学ぶことができるので、エンジニア初心者には絶対に読んでほしい一冊です。

こにかみ

Linux環境で実際に手を動かしながら学ぶことができるので、実務でもこの内容で使えることは非常に多かったです。

18. ネットワークはなぜつながるのか 第2版

ネットワークはなぜつながるのかという疑問を丁寧に解説してくれています。

ネットワークに関する基本的な仕組みを体系的に学ぶことができるのでおすすめです。

こにかみ

ネットワークはなぜつながるのかというシンプルな議題に対して非常に分かりやすく解説してくれているのでおすすめです。

セキュリティ

19. 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版

Webアプリケーションを作成する際に意識するべきセキュリティについて学ぶことができます。

最近はフレームワークがセキュリティに関してはよしなにやってくれているので意識するべき部分は少なくなってきていますが、それでも最低限のセキュリティ知識は必要です。

エンジニア初心者が学ぶべきセキュリティが網羅されているので、ぜひ一度読んでおくことをおすすめします。

こにかみ

エンジニアとして必要最低限のセキュリティ知識は必須です。

この本ではWebアプリケーション作成において意識するべきセキュリティについて学べるのでセキュリティ知識を深めたい人にはおすすめです。

アルゴリズムとデータ構造

20. 問題解決力を鍛える!アルゴリズムとデータ構造

アルゴリズムやデータ構造について分かりやすく解説している本です。

アルゴリズムやデータ構造はとっつきにくいと感じることも多いですが、この本は図を用いてかなり分かりやすく解説してくれています。

この本で得た知識を活用して、LeetCodeなどのサイトでアルゴリズムに関する問題などを解いてアウトプットしてみるとより深く理解できると思うのでおすすめです。

こにかみ

アルゴリズムやデータ構造の知識はあると非常に役立ちます。

最近は入社試験でアルゴリズムの問題を出すところも多いので勉強しておくことをおすすめします。

更なる知識をつけたい方におすすめの本

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

信頼性、拡張性、保守性の高い分散システム設計の原理について学ぶことができます。

最近はマイクロサービス化したりするケースも多いのでそういった時にも役立つ知識が載っています。

少し上級者向けの本ですが、設計力をつけていきたい人には非常におすすめです。

こにかみ

GAFAのエンジニアなどがおすすめしていた本なので読みました。

少し難しい部分もありますが、非常に面白くてタメになる内容が多かったです。

分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計

コンテナを使った分散システムのデザインパターンについて解説している本です。

インフラ構築で分散システムを作る際には非常にタメになる本だと思います。

こにかみ

個人的にはまだ少し読むのは早かったかなと思います。

もう少しこういった知識が必要になる際に改めて読みたいなと思う本でした。

テスト駆動開発

テスト駆動開発に関する知識や進め方について学ぶことができる内容になっています。

実践を交えてどのように考えてテスト駆動開発を進めていくのかが非常に分かりやすくまとまっています。

こにかみ

テスト駆動開発とは何ぞやということが分かる本です。

テスト駆動開発を取り入れていない人でも開発のタメになる知識が結構あったので一度読んでおくと良いかなと思います。

エリック・エヴァンスのドメイン駆動設計

ドメイン駆動設計の生みの親であるエリックエヴァンスのドメイン駆動開発に関する考え方を学べる内容になっています。

いろんな設計手法の中でも最近特に話題になっているドメイン駆動設計について体系的に学べるのでおすすめです。

こにかみ

とても曖昧だったドメイン駆動開発の概念が分かりやすく入ってきました。

ドメイン駆動開発について学びたい人はまずこの本を読むのをおすすめします。

アジャイル開発とスクラム 第2版

アジャイル開発とその手法であるスクラムについて学ぶことができる内容になっています。

昨今の開発現場ではアジャイルでのスクラム開発を取り入れている現場が非常に多いです。

スクラム開発の現場に入る前に読んでおきたい一冊です。

こにかみ

私もスクラム開発に携わる前に読みました。

スクラムでの開発を効率的に進めるためにも読んでおいて損はないと思います。

技術書を読むことのメリット

技術書を読むことのメリットはこちらです。 

  1. 設計や実装に根拠を持つことができる
  2. 知識の引き出しが増える
  3. ベストプラクティスが分かる

設計や実装に根拠を持つことができる 

技術書には長年の経験に裏打ちされた技術者達の知見が散りばめられています。 

エンジニア経験1,2年程度の駆け出しの頃は、設計や実装をする際に「これで合っているのか」といった不安を抱えながらやることも多いと思います。 

技術書を読むことでそういった場面でどのように設計や実装をすれば良いかといった知識を得ることができます。 

技術書を読んで得た知識を活用することで、自信を持って設計や実装に立ち向かうことができるのは技術書を読む大きなメリットです。 

知識の引き出しが増える 

エンジニアにとって知識は財産です。 

どれだけ知識の引き出しがあるかというのはエンジニアの価値を測る上で重要です。 

技術書を読むことで沢山の知識をインプットして、自分の知識として身につけることができればエンジニアとしての価値も上がります。 

知識の引き出しが増えるのは技術書を読む大きなメリットです。 

技術書は読むだけでは定着率が低いので、実際に読んで得た知識を積極的にアウトプットするのがおすすめです。

ベストプラクティスが分かる 

技術書には例題に対するベストプラクティスを書いている本が多いです。 

様々な状況に対するベストプラクティスが分かるので、同じような場面に遭遇した際にそれを活用することができます。 

エンジニアは実務ではどうすれば良いか悩むことが多いですが、そういう時に技術書の知見が役立つ場面は多いです。 

一般的に良く遭遇するパターンに対するベストプラクティスを知れるのも技術書を読む大きなメリットです。 

まとめ

エンジニア1年目におすすめの本や技術書を読むメリットについてご紹介しました。 

エンジニア1年目におすすめと記載していますが、中堅エンジニアでも読んだことがない本があれば是非読んで見ることをおすすめします。 

筆者もこれらの本を読んだことでエンジニアとしての引き出しが増えたなと感じています。 

どんな技術書を読もうか迷っているエンジニアの参考になれば幸いです。