gitconnected.com のライター、サイモン・ホルドルフ氏が2023年にエンジニアが読むべき本をまとめてましたのでご紹介します。2023年、まだ早いですが、正月休みにじっくり読んでみてはいかがでしょうか。
2023年の~、といってもすべて以前からベストセラーになっている古典的な本です。世界のエンジニアはこれらの本を読んでいます。
ぜひ、エンジニアのみなさんは、入社後の早い時期から英語の原書を使い、日本語の翻訳本に手を出さないことをおすすめします。
日本語に翻訳されるのも時間がかかりますし、すべての本が翻訳されませんので、原書が読めれば最新の知識にリーチできます。小説と違ってすべて理解する必要はありませんので、チャレンジしてみてください。
Holdorf, Holdorf. “10 Must-Read Books for Software Engineers in 2023.” 10 Must-Read Books for Software Engineers in 2023, 28 Oct. 2022, levelup.gitconnected.com/10-must-read-books-for-software-engineers-3c961299d25.
※本のリンクは日本のアマゾンに変更してます。
2023 年にソフトウェア エンジニアが読むべき10冊の本(原題)
エンジニアとして上達することは、コードを書くことと同じくらい読むことです。
ポッドキャスト、ビデオ、ブログなどがあるにもかかわらず、多くの人は依然として良い本が好きです。 私はソフトウェア エンジニアリングに関するすばらしい本を何冊か読み、新しいパターンとベスト プラクティスを継続的に学んでいます。
エコシステムは急速に進化するため、優れたソフトウェア エンジニアリングの本を見つけるのは困難です。これは特にプログラミングの本に当てはまります。
しかし、メタトピックやデザインパターン、一般的な考え方などを扱った常備薬のような本も存在します。
このリストには人気の本が含まれています。上級開発者は通常、後輩に本を勧めます。 それらのいくつかを読むことができれば、特にソフトウェア エンジニアの場合、キャリアに役立ちます。これらの本はすべて均等に推奨されているため、ランク付けされていません。
世界で闘うプログラミング力を鍛える本 コーディング面接189問とその解法

コードのインタビューを受ける必要がある人は、「Cracking the Code Interview: 189 Programming Questions & Solutions」を読む必要があります。 ゲイル・ラークマン・マクダウェルは候補者であり、面接官でもありました。 彼女は、質問に隠された複雑さを見つけたり、問題を分析したり、概念を学習したりするのに役立ちます。
ゲイルは189の実際の面接の質問と解決策を提供しているので、次のコーディング面接の準備をすることができます。
コード・コンプリート

すべてのプログラマーは、Steve McConnell の「Code Complete: a Practical Handbook of Software Construction, 2nd Edition」を読む必要があります。
これはよく書かれた、業界で受け入れられているソフトウェア構築の分析です。
設計、コーディング、デバッグ、およびテストがカバーされています。
この本は、1 年から 3 年の経験を持つプログラマーに最適です。 ソフトウェア構築の自信が高まるので、初心者にお勧めします。
主なポイントは? 複雑さを管理する必要があります。 保守と読み取りが容易なコードを記述します。
クリーン・コード

“Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. は人気のあるプログラミング本です。 ソフトウェア エンジニアにクリーンなコーディング プラクティスを教えます。 コードを作り直して、より理解しやすく保守しやすくする方法を示していますが、かなり Java 中心です。 この本の主な焦点は Java 開発者ですが、いくつかのパターンと手法は他の言語に転用できます。
この本は 2009 年のものです。IDE などのツールのおかげで、コードの書式設定は今日ではあまり重要ではありません。 良い本です。
リファクタリング

Martin Fowler の第 2 版の “Refactoring: Improving the Design of Existing Code” では、リファクタリングについて説明しています。
この本で答えられている質問は次のとおりです。
- コードをリファクタリングする必要があるのですか?
- リファクタリングが必要なコードをどのように認識できますか?
- コードをリファクタリングするにはどうすればよいですか?
この本を読んだ後、リファクタリングの方法論と一般的な考え方を理解する必要があります。 チームメイトのコードの「悪臭」を認識できるはずです。
ヘッドファースト・デザインパターン

「Head First Design Patterns: A Brain-Friendly Guide」では、機能的で再利用可能で洗練された柔軟なソフトウェアを作成するための設計パターンとベスト プラクティスを紹介しています。
また、新しい概念をより迅速に学ぶのに役立つ優れた視覚化も満載です。
この本は、ファクトリ、シングルトン、依存性注入などをカバーしています。
例は Java で書かれているので、Java や他のオブジェクト指向言語を知っていても問題ありません。
エンタープライズアプリケーション アーキテクチャパターン

Martin Fowler の “Patterns of Enterprise Application Architecture” では、エンタープライズ アプリケーションの開発について説明しています。
エンタープライズ アプリの設計について簡単に紹介した後、Martin は、一般的なアーキテクチャの問題に対する解決策として 40 を超えるパターンを提示します。 UML 表現と Java/C# コード例が含まれています。
この本を読めば、エンタープライズ アプリケーションを階層化し、MVC パターンを使用して Web アプリケーションを整理し、多数のトランザクションでデータの同時実行を処理できるようになります。REST、クラウド、JSON などの最新のアイデアは対象外です。
読むときは批判的になります。
レガシーコード改善ガイド

Michael Feathers の “Working Effectively With Legacy Code” では、テストされていない大規模なレガシー コード ベースのテクニックを紹介しています。 クリーンで保守可能なコードとマイクロサービスがあるため、2020 年にはレガシー コードは問題にならないと考えるかもしれませんが、これは誤りです。 多くの企業がレガシー コードに苦しんでいます。
この本は機能を追加する方法、バグを解決する方法、パフォーマンスを最適化する方法、および設計を改善する方法について説明しています。 レガシ コードをテストする方法と、調整が必要な場所について学習します。
この本は、Java、C++、C、および C# の例と、オブジェクト指向のレガシー プログラミングに関する推奨事項を提供します。
ザ・クリーン・コーダー

Uncle Bob の本では、ソフトウェア クラフトマンシップの原則、ツール、および実践について説明しています。 “The Clean Coder: A Code of Conduct for Professional Programmers” は、見積もり、コーディング、リファクタリング、およびテストに関する実用的なヒントを提供します。
この本を読めば、意見の相違、タイトなスケジュール、理不尽な上司に対処できるようになるはずです。 燃え尽き症候群を避けて、 あなたの時間を管理します。 開発者やチームに優しい職場を確立します。
この本はよく知られていますが、その中のすべてが金であるとは限りません。
それは、開発者に責任があることを示唆するさまざまな逸話と仮説的な話で構成されています。 ある声明では、バグの原因となったコードの開発者は、会社が失ったお金を補償する必要があるとアドバイスしています。
読む場合は、注意深く、そして批判的に読んでください。
アルゴリズム入門

“Introduction to Algorithms, Third Edition” は、すべてのアルゴリズムの基本ガイドです。 初心者から上級者まで利用できます。 よく書かれており、包括的です。しかし、それはまた複雑であり、従うのはそれほど簡単ではありません。
データ構造、高速アルゴリズム、多項式時間アルゴリズム、グラフ理論、計算幾何学などをカバーしています。 疑似コードの例を提供していますが、かなり理論的な本です。
達人プログラマー

“The Pragmatic Programmer” は、私が今まで読んだ中で最も重要な本の 1 つです。多くのプロジェクトで私を助け、より良い開発者になるための技術的および専門的な実践的なアドバイスが満載です。
20 周年記念版は、2020 年にも引き続き関連性があります。現代の開発者を定義するために、個人の責任、専門的な開発、およびアーキテクチャの手法を探究しています。
この本を読んだら、継続的学習とは何か、そしてなぜそれが重要なのかを理解する必要があります。 柔軟で順応性があり、動的なコードを構築する方法。 並行コードの課題に対処する方法。 セキュリティの脆弱性を防ぐ方法。 容赦なく効率的にテストする方法などなど。
あなたにおすすめの本を1冊選ぶとしたら、それはこの本です!
まとめ
要約すると、これらは人気のある開発者の本です。 最後に紹介した Andrew Hunt の “The Pragmatic Programmer” をお勧めします。
多くの開発者が Robert C. Martin の本を高く評価していますが、私は彼の信念の多くを共有していないので、それらを読むときは批判的です。
筆者:サイモン・ホルドルフ氏
