Java
Ruby
JavaScript
Android

新卒が冬のボーナスで購入したプログラミング書籍一覧

More than 3 years have passed since last update.

原文

昨年末に一気に購入したプログラミング書籍一覧です。それまでずっと自分のほしい物リストにあったものでした。

プログラミング書籍を選ぶ時の基準はたくさんありますが、ほしい書籍をすべて買えるようなもんでもないため、以下の基準で選定しました。


  1. 英語で書かれていること

  2. Kindle版ではなく紙媒体で購入できること

  3. 少なくとも一人以上の先輩やすごいと思う仲間のプログラマが勧めていること

今回以下の書籍を買う際に考慮した理由は多々あり、


  • 海外のプログラマがどんな本を読んでいるのか気になっていた

  • English Firstでプログラミングを学ぶようにしている

  • 焦らず基礎からじっくり勉強したい

  • いわゆる誰もが一度は手にする「古典モノ」を手元においておきたい

といったものがありました。

大事なのは、本を購入するときに各々の判断基準を明確にしておくこと だと思います。それでは、1つずつ紹介していきます。なお、一部読み切れていない書籍もあります。


Code Complete A Practical Handbook of Software Construction ( 2nd Edition )

image

言わずと知れたCode Complete。多くのブログや書籍でも紹介・クロス引用されています。書かれたのは10年以上も前と古いですが、書かれている内容は今でも十分通じるような内容です。

本書はかなり長大で、英語版は914ページ近くあります。日本語版は上下に別れており、購入するだけでも勇気が入る値段です。冒頭から一ページずつ読んでいくというよりは、レファレンスや休日の楽しみとしておいておくのも良いかもしれません。

変数やコードスタイルの章などは、有名なReadable Codeなどにも通じるところがあり、今まで多くの世界中のプログラマに影響を与えてきたのではないかと思います。


Clean Code A Handbook of Agile Software Craftsmanship

image

Uncle Bobの愛称で親しまれる著者の一番有名な書籍です。『The Clean Coder』という書籍もあるようですが、私は購入しておりません。日本のストアでは紙媒体版しかないようです。

テーマとしては「コードコメント」や「コードフォーマット」など上述のCode Completeと被る部分もありますが、よりオブジェクト指向型言語であるJavaをメインに取り扱った内容です。「クラス」や「オブジェクトとデータ構造」といった章があります。

Javaなどを業務や授業で扱っている方なら、一度目を通してみても損はないのではないでしょうか。


The Pragmatic Programmer From Journeyman to Master

image

技術的な話より、よりソフト(マネジメント、スタンス、学習、仕事のすすめかたなど)なテーマに焦点を絞った本です。技術書というよりエッセイ集に近いでしょう。


Programming Pearls 2nd Edition

image

「珠玉のプログラミング」です。自分に書籍を紹介してくれた人の内、三人がこの本をあげてくれました。これは正直まだそこまで読めていないのでこれ以上の紹介は省きます。逆に読んだことがある方は感想やおすすめの章・読み方を教えてほしいです :smile:


The Mythical Man-Month Essays on Software Engineering, Anniversary Edition ( 2nd Edition )

image

「人月の神話」です。あまりにも有名すぎる本なので、知らないプログラマはいないのではないでしょうか。

内容については、賛否両論あるようです。というのも、本書も技術書というより、どちらかというとプロジェクト推進、マネジメント、プログラミング業、ソフトウェア開発論のあり方、と言ったどちらかというとソフトな内容について論じています。

正直、購入した当初はさらっと読み流しただけでしたが、人月の考え方がより強いプロジェクトに関わるようになって、日々思うところの多い、議論ポイントが詰まった一冊です。もう少し経験を積んだら、本書を題材に討論会などもしてみたいものです。


Design Patterns Elements of Reusable Object-Oriented Software

image

いわゆる「GoF本」です。

おそらく、デザインパターンを純粋に勉強したいなら、Javaなら結城先生の本が有名ですし、Wikipediaやブログなどでも結構情報があります。賛否両論かもしれませんが、古典中の古典ではどんなことが書いてあるのか、気になったので購入してみました。

たしかに読んでみると、Smalltalkの話とか開発現場では使われないような言語(少なくとも自分の周りでは)も出てきて古典であることを感じされる本ですが、現在他のデザパタの本を輪読会で勉強していて、並行して読んでいます。なかなか奥が深くて面白いです。

なお、内容はC++とかが中心なので、オブジェクト指向の経験がない人がいきなり読むのはすこしオーバーヘッドが多いかもしれません。


Joel on Software

image

副題が長いので省略しました(笑


Joel on Software And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity


Joel on Softwareというサイトのファンの方も多いのではないでしょうか。いくつか肩書が有りますが、Stack Overflowの共同設立者として一番有名かもしれません。

こちらも、達人プログラマなどと同様技術書というよりマネージャーなどプログラマ以外にもおすすめの一冊です。

確かに、頑張って探せばブログから書籍とほとんど同様の内容が読めて買う必要がないかもしれませんが、週末の楽しみに書籍で一冊持っておくのも悪く無いでしょう。


Algorithms 4th Edition

image

友人に「基礎から勉強するならアルゴリズムもしっかり勉強したほうが良いよ」と言われ、考えた結果たしかにそうだ、という結論にいたり、アルゴリズムは自分の中でも重点分野として最近取り組んでいました。そんな折だったので、アルゴリズムの書籍をどれにするか結構悩みました。

他にも良著が多数あるようなのですが、Javaメインで書かれていること、サンプルのみならず概論や理論からしっかり説明してくれるということから、本著にしました。

Webで公開している公式ホームページも有名です。ちなみに、今(2016年2月現在)Courseraで講座が開催されているので、そちらも要チェックです。


Cracking the Coding Interview 6th Edition

image

『世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~』をご存じの方は多いと思います。自分も当初はこの本を買う予定だったのですが、いろいろあって6th Editionを購入することになりました。

問題文とともに解説が豊富なのもおすすめです。自分みたいにアルゴリズムを勉強したい初心者にとっては、Gayleの本は手に取りやすいものだと思います。


The Code Book The Science of Secrecy from Ancient Egypt to Quantum Cryptography

image

プログラミングはあまり関係ないです。暗号や公開鍵・秘密鍵といった話です。

歴史書とも言える、技術書とも言える、一種のノンフィクションとも言える、絶妙な文才を持った著者の渾身の作です。最近エニグマという映画で暗号解読に興味を持たれた方も多いのではないでしょか。

プログラマではなくとも読む人が多い印象ですが、セキュリティへの関心が高い昨今ですので、ぜひとも読んでおきたい本です。普通に勉強、って感じではなく、おもしろい(=息抜きにもなる)です。


その他Wishing List

今気になっている本です。もし読んだことがある方がいれば、感想などなど教えて下さい :thumbsup:


  • Code: The Hidden Language of Computer Hardware and Software

  • Compilers: Principles, Techniques, and Tools (2nd Edition)

  • Refactoring: Improving the Design of Existing Code

  • The UNIX Philosophy

  • Rapid Development: Taming Wild Software Schedules

  • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14


まとめ

全然関係ないですが、Amazon.comの方では2015年現在でも高レビューがつくような書籍でも、Amazon.co.jpでは中古本しかない、みたいな本がいくつかあって、日本のプログラマと海外のプログラマの間でよく買われる本や流行る本は結構違うのかな、という印象でした。なので、海外の動向がきになる人は、Amazon.comの書籍コーナーをウォッチリストに加えてみるのも良いかもしれませんね。

以上いろいろ見てきましたが、みなさんのおすすめの本もぜひ教えてください〜