RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

【2020年】史上最もおすすめされているプログラミング本【25選】

f:id:moomoo-ya:20200312171229j:plain

こんにちは、株式会社ラクスで横断的にITエンジニアの育成や、技術推進、採用促進などを行っている開発管理課に所属している鈴木( @moomooya )です。

今回はdev.toで人気記事になっていた「The 25 most recommended programming books of all-time.(史上最もおすすめされているプログラミング本【25選】)」を紹介したいと思います。

注:本記事は2020年2月18日にPierre氏がdev.toに投稿したThe 25 most recommended programming books of all-time.を執筆者Pierre氏の了承のもと、日本語で紹介する記事です。

訳書の邦題について、訳書に改訂などがあった場合は出来る限り最新版の邦題で記載しています。

おすすめのプログラミング本を選んだ方法

「Best Programming Books」などのクエリでGoogle検索しました。そのすべての結果をWeb Scraping APIScraping Beeを利用してスクレイピングしました。

約150のリンクが収集でき、それらのページタイトルを以下のように集約しました。

  • 特定の技術またはプラットフォームに焦点を当てたリスト
  • 特定の年に焦点を当てたリスト
  • 無料の本に焦点を当てたリスト
  • Quora1およびReddit2のスレッド

最終的に70個のリストを抽出しました。

それらのリストに対してPythonとBeatifulSoupを用いて、書名のリストを抽出しプログラミング本に対する約1300件のおすすめを抽出しました。

集計の結果はこちらのリポジトリを参照してください。

注:1300件という数値は元記事中には記載ありませんが、参照先レポジトリ内の中間集計データより補完しています。

史上最もおすすめされているプログラミング本 25冊

注:元の記事では各プログラミング本の紹介がAmazon.comから転記されていましたが、こちらはAmazon.co.jp版に置き換えています。

25. Jez Humble & David Farley, "Continuous Delivery"

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) 継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

amazon.co.jpより

いつまで手動でデプロイしているんですか?

現代では継続的にソフトウェアをリリースすることが必須になっています。本書は、継続的なソフトウェアのデリバリーを実現するためのビルド、デプロイ、テスト、リリースの自動化についての本格的な解説書です。

24. Robert Sedgewick & Kevin Wayne, "Algorithms"

Algorithms: Algorithms_4 (English Edition)

  • 邦題
    • 未訳?
  • おすすめスコア
    • 8.8%

鈴木注

おそらく訳書は出ていないと思われます。 ただし著者のRobert Sedgewick氏が執筆したプログラミング本として"セジウィック:アルゴリズムC"という類書は和訳されています。

23. Cory Althoff, "The Self-Taught Programmer"

The Self-Taught Programmer: The Definitive Guide to Programming Professionally (English Edition) 独学プログラマー Python言語の基本から仕事のやり方まで

amazon.co.jpより

本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。

プログラマになるためのスキルを独学できる本です。Pythonプログラミングの基本を学べるだけでなく、プログラマとして必要なスキル(シェル、正規表現、パッケージ管理、バージョン管理、データ構造、アルゴリズム、仕事の始め方・やり方)もひと通り学べるのが特徴です。 「プログラミングを始めたい」「できればその道でプロを目指してみたい」――そんな読者にオススメです。

本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。 プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、Amazon.comでの本書の評価を見るとわかるように、多くの人に支持されています。 ――訳者あとがきより

鈴木注

原著がKindle Unlimitedで読めます!!!(2020年3月12日現在)

22. Steve McConnell, "Rapid Development"

RAPID DEVELOPMENT (Developer Best Practices) ラピッドデベロップメント―効率的な開発を目指して (MicrosoftPRESS)

amazon.co.jpより

ソフトウェア開発のスケジュールを正確に管理するための、全ての戦略、良い方法、価値のあるTipsを紹介。具体的なケーススタディも収録した実践テキスト。

21. Peter Seibel, "Coders at Work"

Coders at Work: Reflections on the Craft of Programming Coders at Work プログラミングの技をめぐる探求

amazon.co.jpより

どうやってプログラミングを学んだ? 他人のコードをどうやって読む? ソフトウェアはどう設計する? バグを追跡する方法は? プログラミングの将来はどうなる? プログラミング言語が果たす役割は?

プログラマであるピーター・サイベル氏が15人の偉大なプログラマー(コーダー)から その技を聞き出すインタビュー集を、『Joel on Software』訳者の 青木靖氏が翻訳。

20. Eric Evans, "Domain-Driven Design"

Domain-Driven Design: Tackling Complexity in the Heart of Software (English Edition) エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

amazon.co.jpより

ソフトウェア開発コミュニティでは、ドメインモデリングがソフトウェア設計の中心であることが広く認められてきています。ドメインモデルを通して、ソフトウェア開発者は豊富な機能を表現し、それをユーザの要求に本当の意味で応えるソフトウェアの実装に移すことができます。しかし、明らかに重要であるにもかかわらず、効果的なドメインモデリングをどのようにソフトウェア開発プロセスに組み入れるかを説明する、実用的なリソースはほとんど存在しませんでした。ドメイン駆動設計はこの要求に応えるものです。これは具体的な技術についての本ではなく、読者にドメイン駆動設計への体系的なアプローチを提示するものです。設計のベストプラクティスの応用的なセット、経験に基づくテクニック、さらに、複雑なドメインに直面するソフトウェアプロジェクトにおける開発を容易にする基本原則を紹介する一冊です。

19. Donald E. Knuth, "The Art of Computer Programming"

The Art of Computer Programming: Volume 1: Fundamental Algorithms (English Edition) The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版

amazon.co.jpより

アルゴリズムのバイブル。Knuth先生の名著『The Art of Computer Programming』シリーズ

鈴木注

TeXはこの本を作るために生まれたらしいです。

シリーズ物となっており、原書では第4巻分冊が6冊目まで発行されて現在も刊行中です。 訳書としては第1巻~第3巻と第4巻分冊の1冊目までが和訳されています。

執筆予定はスタンフォード大学内のWebサイトで公開されています。第5巻は2025年予定だそうです。

18. Harold Abelson / Gerald Jay Sussman / Julie Sussman, "Structure and Interpretation of Computer Programs"

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science) 計算機プログラムの構造と解釈 第2版

amazon.co.jpより

言わずと知れた「計算機科学の古典的名著」復刊! プログラミング言語LISPの方言であるSchemeを使用し、抽象化、再帰インタプリタメタ言語的抽象といった計算機科学における概念の真髄を丁寧に解説した古典的名著。また計算機科学教育に多大な影響を与えたことはもちろん、「関数型言語」の聖典のひとつとしても挙げられる。いわば、現代の計算機科学(コンピュータサイエンス)の礎であり、プログラミングの始原であり、すべてのITの原点といえる1冊。

17. Martin Fowler, "Patterns of Enterprise Application Architecture"

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)

amazon.co.jpより

エンタープライズアーキテクチャのレイヤ化とは? エンタープライズアプリケーション開発は、多くの新しい技術の出現から利益を得てきました。Javaと.NETのようなマルチレイヤをなすオブジェクト指向のプラットフォームは、今では一般的になっています。これらの新しいツールや技術は、強力なアプリケーションを構築することができます。しかし、これらの実装は容易ではありません。 オブジェクト開発を経験した技術者が、アーキテクチャを理解しないまま開発を行うために、エンタープライズアプリケーション開発では共通の失敗がしばしば生じます。本書は、エンタープライズアプリケーション開発者が直面するやっかいな課題に対する直接的な回答を示したものです。技術は変化(SmalltalkからJava、.NET。CORBAまで)していても、共通の問題を解決するために同じ基礎的な設計の考え方を適用することができるのです。 本書は40以上のパターンを紹介しています。これらは、エンタープライズアプリケーションプラットフォームに適用可能な解決策です。前半は、エンタープライズアプリケーション開発についての短いチュートリアルです。 後半は、各パターンについて詳細に解説しています。各パターンは、JavaまたはC#でコード例を詳述し、使用法および実装について説明します。概念についても、豊富なUMLダイアグラムで例証します。

16. Jon Bentley, "Programming Pearls"

Programming Pearls (English Edition) 珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

amazon.co.jpより:

情報系の勉強をしたことのある人ならば、誰しもプログラムにおける アルゴリズムの概念に触れたことがあるだろう。

同じ動作をするプログラムでもエレガントなアルゴリズムを持つものと そうでないものの間には実行時間や堅牢性、リソースの利用量などにおいて 大きな隔たりがあり、時には劇的なほどパフォーマンスの差があることも珍しくはない。 一方でそのようなアルゴリズムを創出することがいかに難しいかも周知のことである。 そのため現在では納期や効率に重点をおいたプログラミングが優先されることが多いが、 単純で美しいプログラムを書くことは何より重要なことである。

本書は著者を含めたプログラマーたちが扱った問題をベースに、 エレガントなプログラムを書く際のさまざまなアドバイスや手法について解説したものである。 大学でのアルゴリズム講義に登場してくる探索やソート、データ構造といった内容に触れており、 現実的な題材の下に要求の定義、リソースの活用の仕方、動作する環境などのさまざまな側面から どのようにアルゴリズムを組むべきかといった、プログラムを組む上での原理原則を学べるように構成されている。

このように題材となっている内容は決して特殊ではなく、 プログラムを組んだ経験のある人ならば必ず触れたことのあるレベルなので、 高級言語でのプログラムが書ける人ならば誰でも理解できる内容になっている。 随所に登場する設問や読書案内も読者が学習する上で役に立つだろう。

数理的な解析に重点を置く大学でのアルゴリズム講義の内容は 実際のプログラミングに生かしにくいが、本書では応用や実際のコード化といった面に 重点が置かれて説明がされているので実務上も大いに役立つ。 自分のプログラミングを原則的、一般的な見地からよりよいものにしていくために必ず役立つ本だ。(斎藤牧人)

15. Tom DeMarco & Tim Lister, "Peopleware"

ピープルウエア 第3版 Peopleware: Productive Projects and Teams (English Edition)

amazon.co.jpより:

●ソフト開発の現場で多くの熱い共感を呼んだ名著!

開発プロジェクトで技術よりも何よりも大事なもの――それは「人」。一人一人の 人格の尊重、頭を使う人間にふさわしいオフィス、人材の選び方・育て方、結束した チームがもたらす効果、仕事は楽しくあるべきもの、仕事を生み出す組織づくり、 という6つの視点から「人」を中心としたプロジェクト開発の大切をユーモラスに 語っている。1987年の初版発行以来、多くのソフトウエア・エンジニアの共感を 呼んだ名著の改訂第3版。

●プロジェクト管理に関わる新規書き下ろしを収録!

第3版では、時代の変化に対応し、以下の章が追加された。「リーダーシップについて 話そう」、「他者とうまくやっていく」、「幼年期の終わり」、「リスクとダンスを」、 「会議、ひとりごと、対話」、「E(悪い)メール」。

14. Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein, "Introduction to Algorithms"

Introduction to Algorithms (The MIT Press) アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)

amazon.co.jpより:

原著は,計算機科学の基礎分野で世界的に著名な4人の専門家がMITでの教育用に著した計算機アルゴリズム論の包括的テキストであり,その第3版.前版までで既にアルゴリズムとデータ構造に関する世界標準教科書としての地位を確立しているが,より良い教科書を目指して再び全面的な記述の見直しがなされ,それを基に新たな章や節の追加なども含めて,大幅な改訂がなされている. 単にアルゴリズムをわかりやすく解説するだけでなく,最終的なアルゴリズム設計に至るまでに,どのような概念が必要で,それがどのように解析に裏打ちされているのかを科学的に詳述している. さらに各節末には練習問題(全957題)が,また章末にも多様なレベルの問題が多数配置されており(全158題),学部や大学院の講義用教科書として,また技術系専門家のハンドブックあるいはアルゴリズム大事典としても活用できる. 本書は,原著の第1~35章,および付録A~Dまでの完訳総合版である.また巻末の索引も圧巻で,和(英)‐英(和)という構成により,「数理用語辞典」としてもまことに有用である.

13. Charles Petzold, "Code"

Code: The Hidden Language of Computer Hardware and Software (Developer Best Practices) (English Edition) CODE: コードから見たコンピュータのからくり

amazon.co.jpより

Windowsプログラミングの雄、チャールズ・ペゾルドが10年来あたため続けてきたという注目の企画が、ついに1冊の本になった。

本書はコンピュータの動作を根本から解説するもので、データのやり取りを中心に、コンピュータの動作原理を解説している。序盤では点字やモールス信号などを題材とするコードの歴史と、実際に通信や演算を行うためのハードを詳細に扱っている。中盤からは、2進数の処理、リレーによる演算の方法、メモリやオートメーション、終盤ではプロセッサの構造から低級言語・高級言語、OSなどにも触れている。

計算機工学、論理回路学などの高度な内容にも触れているため、理系の、できれば工学系の知識がある方が望ましい。とはいえ、読み物形式なので、順番に読んでいくことで予備知識がない方でも理解することはできるはずだ。懐中電灯、黒猫、シーソーなど、一見コンピュータと何の関係もなさそうな例をもとに、コンピュータのしくみを明かしているのは、本書の最大の魅力である。

先に述べた内容以外にも、ファイル形式や開発環境、グラフィックに関する解説など、まさしくコンピュータに関わるすべてに言及している。とくにプロセッサやOS、アプリケーションなどの歴史に関する部分は興味深い。数学的な部分にあまり興味がない方にとっても、読む価値は十分にあるだろう。コンピュータの動作や根本原理を知りたいという知的好奇心あふれる読者に、ぜひおすすめしたい1冊である。(斎藤牧人)

12. Steve Krug, "Don't Make Me Think"

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) (Voices That Matter) 超明快 Webユーザビリティ ―ユーザーに「考えさせない」デザインの法則

amazon.co.jpより:

明白で使いやすいサイトを実現するには?

ユーザーに考えさせちゃダメ!

AppleBloombergLexus などを顧客としてきた、ユーザビリティコンサルタントの第一人者にして激安ユーザーテストの伝道師 スティーブ・クルーグが説く、 ユーザーに「考えさせない」サイトの作り方。

20か国で翻訳、累計45万部超の世界的ベストセラー、ウェブ&モバイルユーザビリティの定番書『Don't Make Me Think』の日本語版です。 ちゃんと使ってもらえるサイトにしたいWeb担当者、コンバージョン率を上げたいEC担当者におすすめの一冊。

11. John Sonmez, "Soft Skills"

Soft Skills: The software developer's life manual SOFT SKILLS ソフトウェア開発者の人生マニュアル

amazon.co.jpより

ソフトウエア開発者専用に、「より良い人生」を送るためのノウハウ・スキルを網羅した、生き方バイブル本です。プログラマーが良い人生を送るためには、技術習得法やキャリア構築法といったノウハウに加え、対人的な交渉・指導・意思疎通などをうまく行える能力や知恵、すなわちソフトスキルが不可欠です!本書では、キャリアの築き方、自分の売り込み方、技術習得法、生産性の高め方といった仕事で成功する方法だけでなく、財産の築き方、心身の鍛え方、恋愛で成功する方法など、「人生全般をより良く生きる方法」を具体的に説明します。

■序文から抜粋

あなたがこの複雑な産業で活路を開こうとしている若いソフトウェア開発者なら、今手にしているこの本は、多くの知恵と優れたアドバイスを与えてくれるはずだ。 ロバート・C・マーティン(アンクル・ボブ)

■「解説」から抜粋

本書はソフトウェア技術者向けの書籍ではありますが、いわゆるテクノロジーのことはほとんど書いてありません。しかし、「成功者」になるために必要なそれ以外の多くのことが書いてあります。(中略)今こそ私たちがもっと成功に貪欲になれるチャンスなのではないでしょうか。

■「訳者あとがき」から抜粋

全体を読み通して感じたのは、人の弱さを十分に意識して書かれていること、率直であ ること、上からではなく同じ高さから話しかけてくることでした。(中略)校正のために読み返してみると、株や栄養や腹筋のことなど、「何かで読んだんだけどさあ」という枕で出てくるような話の多くを本書で覚えたことに気づきました。無意識のうちにいろいろな影響を受けているようです。この本、ただものではないですよ。

10. Gayle Laakmann McDowell, "Cracking the Coding Interview"

Cracking the Coding Interview: 189 Programming Questions and Solutions 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

amazon.co.jpより

トップIT企業が出題するコーディング面接にチャレンジ!

人気のあるトップIT企業で行われるコーディング面接に合格し採用されるための攻略本として、グーグル等でエンジニアとして働き、かつ多くの採用プロセスに関わってきた著者によって本書は執筆されました。米国で大人気のコンピュータプログラミングに関するベストセラー書(Cracking the Coding Interview: 189 Programming Questions and Solutions)の日本語版です。

本書で取り上げるプログラミング問題はトップIT企業が求める能力が凝縮されている、面接で実際に使われたものです。そしてなによりもアルゴリズムを中心としたコンピュータサイエンスの基礎知識や活用法を楽しみながら学べる内容となっています。

前著「世界で闘うプログラミング力を鍛える150問」と比べ計算量に関する説明がより詳細になりました。新規の問題はもちろん、既存の問題についても時間計算量・空間計算量の記述が追加され、計算量の見積もりについての話題も参考になるでしょう。また木とグラフ・探索アルゴリズムに関する説明も充実したものになり、純粋なプログラミング技術書としてのバランスと深みが増しました。 Big-O記法の解説章や発展課題、解き方のヒントの追加、また全ての問題がカテゴライズされより読みやすくなりました。

本書が支持されている理由は「面接」という限られた時間だけにフォーカスするのではなく、その前後における行動までアドバイスしてくれている点です。「エンジニアとして日々をどう過ごすか」を考える上で非常に有益でしょう。

自分がプログラマとして現在「どんな分野」に関して、どの程度の「能力」があるのか。これからのキャリアアップに必要な知識やスキルを考える手がかりとして。あるいは本当に優秀な候補者を採用する面接を行うための一冊として。

本書にはそのヒントがたくさん含まれています。

9. Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides, "Design Patterns"

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) (English Edition) オブジェクト指向における再利用のためのデザインパターン

amazon.co.jpより

オブジェクト指向における再利用のためのデザインパターン 建築の発想を持ち込む

オブジェクト指向はソフトウエア開発の手法として誕生したが,ほかの分野にも広がりつつある。その一つとして注目すべきなのが「デザイン・パターン」の登場である。

デザイン・パターンとは,オブジェクト指向でソフトウエア設計を行う際に利用するカタログ集である。例えば,経験豊かなプログラマは以前に解いた問題と,これから新しく解こうとしている問題が類似していることに気づけば,以前に使った解法が応用できる。デザイン・パターンとはこうした解法をだれでも再利用できるように一般化(パターン化)したものの寄せ集めと考えればよい。

この考え方と実現手法は,一般にGoF(Gang of Four:4人組)本と呼ばれる本書で有名になった。GoF本は建築家のクリストファー・アレグザンダーがまとめた都市計画のカタログ集『時を超えた建設の道』(鹿島出版会)に強い影響を受けている。この点はたいへん興味深い。オブジェクト指向の導入で,ソフトウエアの世界においても建築学のように,構造をパターン化できることを示しているからだ。

8. Michael Feathers, "Working Effectively with Legacy Code"

Working Effectively With Legacy Code レガシーコード改善ガイド (Object Oriented SELECTION)

amazon.co.jpより:

あなたは、Javaや.netでレガシーコードを書いていませんか?

本書は、システム保守の現場でありがちな、構造が複雑で理解できないようなコードに対する分析手法・対処方法について解説します。つまり、コードを理解し、テストできるようにし、リファクタリングを可能にし、機能を追加できるテクニックを紹介しています。レガシーコードとは、メインフレームのアプリケーションのことではなく、変更することが困難なコードを指しています。著者は、本書で「私にとって、テストがないコードはレガシーコードだ」「テストコードがあれば振舞いを変えても、すばやく変更、確認することができる。もし、テストコードがなければ振舞いを変更しても、それが正しいのか、悪いのか判断できない」「ソースコードがきれいで、良い構造であれば十分か?そうではない。もし、テストコードなしで大幅な修正を加えるとしたら、信じられないほどのスキルと明確な理解が必要になる」と述べています。本書はJava、C、C++でサンプルを記述していますが、記載されているテクニックは言語依存するものではないため、他の言語(DelphiVisual BasicCOBOLFORTRAN)でも使えます。

7. Robert Martin, "The Clean Coder"

The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series) Clean Coder プロフェッショナルプログラマへの道

amazon.co.jpより

ソフトウェアのプロになるには本書が必要だ!

ソフトウェアのプロとは? プロの行動とは? 衝突・厳しいスケジュール・理不尽なマネージャにどう対応すべきか? いつ・どのようなときに「ノー」と言うべきか? プロはプレッシャーにどう対応するのか?

6. Frederick P. Brooks Jr, "The Mythical Man-Month"

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (English Edition) 人月の神話【新装版】

amazon.co.jpより

ソフトウェア開発の定番書『人月の神話』。「ブルックスの法則」で知られる ブルックス教授によるこの名著が、同教授の35年ぶりの新刊「The Design Of Design」 (邦題「デザインのためのデザイン」)を記念し、従来の縦組みから横組みに変わり、 表紙カバーを新たに新登場。

IBMの大型コンピュータSystem/630、およびオペレーティングシステムOS/360の 開発チームを率いた著者が、プロジェクトで発生した問題点を詳細に分析し、 ソフトウェア開発にまつわる困難と展望について持論を展開したエッセイ集。 原著初版(1975年)の刊行から35年がたつ現在でも、大規模開発プロジェクトにおける ソフトウェア工学の古典として読み継がれ、多くの読者を獲得している。

とくに、「遅れているソフトウェアプロジェクトへの要員追加は、 さらにプロジェクトを遅らせるだけだ」というブルックスの法則は名高い。 開発において「人員×月日」というスケジュール見積もりが適用されている問題を指摘し、 ソフトウェア産業において広くいきわたっている「人月の神話」を明らかにした。

また、刊行20周年記念して発行された増訂版では、発表当時大きな議論を巻き起こした 「銀の弾はない」をはじめとして、初版刊行以降に発表された著者の代表的な論文4編を収録。 各方面から寄せられたさまざまな議論に対して、著者があらためて自身の見解を述べている。

5. Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson, "Head First Design Patterns"

Head First Design Patterns: A Brain-Friendly Guide Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

amazon.co.jpより

初めて学ぶ方、過去に挫折した経験のある方、知識を確固たるものにしたい方を対象に、イラストや写真を使ってやさしく楽しく解説する人気のHead Firstシリーズのデザインパターン編。 刺激的なレイアウト、思わず膝を叩く見事なたとえ、引き込まれる小話、楽しいクイズやパズルで飽きることなく読み進むことができます。 複雑難解なデザインパターンの概念が面白いほどよくわかる、目からウロコの画期的な書籍です。

4. Martin Fowler, "Refactoring"

Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler)) リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)

amazon.co.jpより

ソフトウェア開発の名著、第2版登場! リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。 本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。

3. Steve McConnell, "Code Complete"

Code Complete (Developer Best Practices) (English Edition) 【電子合本版】Code Complete 第2版 完全なプログラミングを目指して

amazon.co.jpより

本書は効果的なコンストラクションプラクティスについての知識を集めた、実践的なプログラミング解説書です。ソフトウェア開発プラクティスは目覚しい進歩を遂げていますが、一般のプログラマにはなかなか浸透しません。本書は、業界の第一人者らの知識と、一般の商用プラクティスとの橋渡しをします。10年前の第1版とコンセプトは同じですが、第2版は、全体を通じてオブジェクト指向の考え方が反映されたものになっています。また、「リファクタリング」の章が追加され、サンプルコードはC++C#JavaVisual Basicなどにアップデートされています。本書は、ソフトウェア開発の総合ガイドを求めている経験豊富なプログラマ、経験の浅いプログラマを教育する技術指導者、正式なトレーニングを受けたことのない独学プログラマ、これから社会に出る学生や新人プログラマなどを特に対象としています。本書で説明されている研究成果や過去の経験は、高品質なソフトウェアを作成し、問題を少なく抑えて作業をより短期間で行うのに役立ちます。また、大きなプロジェクトを制御し、要求の変更に応じてソフトウェアの保守や修正を適切に行うのにも役立ちます。

2. Robert C. Martin, "Clean Code"

Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series) Clean Code アジャイルソフトウェア達人の技

  • 邦題
  • おすすめスコア
    • 66%

amazon.co.jpより

コードを書き、読み、洗練する

本書のケーススタディを注意深く読むことで、コードを洗練していく過程で行うべき判断について学ぶことができます。プログラムが動作したからといって、プログラミングが終わったことにはならないのです。

1. David Thomas & Andrew Hunt, "The Pragmatic Programmer"

The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition (2nd Edition) 新装版 達人プログラマー 職人から名匠への道

amazon.co.jpより

経験に裏打ちされたヒントを満載し、実践可能なプログラムの作り方を教える。より効率的、そして生産的なプログラマーを目指す人に向け、具体的なアドバイスを、解決策のシステムを構成するよう関連付けて編集。

鈴木注

1位は

毎年少なくとも一つの言語を学習する

で有名な『達人プログラマー』でした。原書では20周年版が去年2019年に出版されているので和訳版の改訂にも期待。

コメント欄から抜粋

私はいつも、Scott Rosenbergの「Dreaming in Code」を追加したいと思っています。


The Phoenix Projectにも言及した方がいいんじゃないか? ;)


挙げられている中で『計算機プログラムの構造と解釈』や『Art of Computer Programming』 など何冊かは読むことには実用的な意味がありません 。 多くの人が推奨していますが、実際に読む人はほとんどいません。 それらは題材としてすでにマイナーな言語を使用し、現在では時代遅れまたは不要な概念を多く扱っています。


  • プログラミングの心理学
  • 要求仕様の探検学―設計に先立つ品質の作り込み

どちらもGerald Weinbergによるものですが、Martin Fowlerよりも質の高い本を書いています。

もう1人の素晴らしい著者はJuval Löwyで、彼の本をすべて推薦します。 特に彼の最新刊:

  • Righting Software

これらが次の上位25のリストに載っていても驚かないでしょう。

Righting Software (English Edition)

Righting Software (English Edition)


素晴らしいリスト。 私もお勧めします: FreemanとPryceの『実践テスト駆動開発

実践テスト駆動開発 (Object Oriented SELECTION)

実践テスト駆動開発 (Object Oriented SELECTION)


お見事!

The Pragmatic Programmerを読んでいない人には絶対にお勧めします。 私が読んだ最初の技術書であり、今でも私のお気に入りです。


素敵なリスト。 Kent Beckの"Smalltalk Best Practice Patterns"が含まれていなかったことが信じられません。 これは信じられないほどの良書であり、Smalltalkだけの話ではありません。 これはすべての人におすすめできます。


「Getting Real」も素晴らしい読み物です。

Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application

Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application

  • 作者:37signals
  • 発売日: 2011/11/28
  • メディア: ペーパーバック

所感

原書と訳書の表紙を並べて表示してみました。こういうの見比べるのが好きなんですよね……。

というわけでランキングのおさらいです。

頻繁におすすめされるような有名なプログラミング本で、未読のものはあっても知らないものはそんなにないかな、と思っていたのですが意外と知らない本を発見できて嬉しかったです。日本語圏と英語圏でもまた違いがあったりするのでしょうか。

読みたいと思っていながら読めていなかったプログラミング本もたくさん思い出せたので、合間を見つけながらせっせと読んでいきたいと思います。

最後に改めて。了解をくれたPierreさん、ありがとう。

Pierre, thank you for your consent.


  1. Q&Aコミュニティサイト

  2. 匿名掲示板サイト

Copyright © RAKUS Co., Ltd. All rights reserved.