【プログラミングの基礎をおさえたい人必見!】プログラミング知識が身につくおすすめ本5選

コンストラクション(広義の実装)についての「MUST」はカーニーハン等で知っていたが、「WHY」について、ここまで系統的にかつ実践的な書物が存在することに驚きを禁じ得なかった。ちょうど暗いトンネルに先に見える明かりを見つけた時の昂揚感とでもいうべき感情であったような気がする。 筆者の豊富な経験が盛り込まれていることを実感した。 さらに本書の参考文献リスト(邦訳名が充実し検索がしやすくなった)を使って守備領域を拡大していくことが「職業としてのプログラマー」には必須であると確信している。

≪プログラミング基礎知識を学ぶ②≫CODE COMPLETE 第2版 下 完全なプログラミングを目指して

チューニング・リファクタリング・レイアウトなど高度な技術を詳細に解説 プログラマの環境やデバッグ手法、資質といった抽象的な内容や、チューニングやリファクタリングといった細々とした内容が多く参考にならない箇所があるものの、それでもなお読んでおいたほうが良い内容が多い。 様々な調査結果と実体験をベースに書かれている箇所が多く、信憑性が高い。 「先の事を考えて設計された」コードはだいたい動かない 1つの例は、プログラムを走らせて、<と<=のどちらを使用すれば良いかを確認する事。そのような状況では、プログラムがなぜ動いているのかを理解していない プログラマは、プロジェクトの残り50%の段階で、「90%」完成していると言う

≪プログラミング基礎知識を学ぶ③≫新装版リファクタリング―既存のコードを安全に改善する

外から見た振る舞いは変わらなくても、中身のコードが違えば将来の保守性や可読性がずいぶん変わってきます。 元祖「リファクタリング」はJavaで書かれていますが、「リファクタリング:Rubyエディション」のように、言語によってはその言語向けの「リファクタリング」が発売されていることもあります。 Java以外の言語をよく使う人は別言語バージョンを探してみるのもいいかもしれません。

基本的な内容は「リファクタリング―プログラムの体質改善テクニック」とほぼ同様ですが、 オリジナルの訳者による丁寧な見直しが新装版にも反映されています。 まだ全て読み終わってはいませんが・・・ (旧版との比較を厳密にしながら読み進めているわけではないですが・・・) 旧版はもう販売していませんので、多くの方に購入する機会をとの考えで新装版を発売されたそうです。 新装版の目玉は、付録「 Java のバージョンアップに伴うリファクタリングをめぐる環境の変化」です。 旧版出版以降のJavaとそのテスティングフレームワークの進歩の記載があります。 対象となるJavaは7までとなっています。 Javaとそのテスティングフレームワークの進歩の記載の後に、その進歩を反映して、 本書に含まれるコードを再びリファクタリングしています。実際にはジェネリック等が取り扱われています。 この部分が新装版の最も注目されるべき箇所であると思います。 本書が全面的にJava7に対応されていないことについては不満がありますが 今後は、Oracleは今までと違ってJavaの言語仕様の強化に注力して行くことが見えていますし 既にJava8でかなりの変更があったといえ、付録の再リファクタリングで十分に新装版の意味はあると考えます。

≪プログラミング基礎知識を学ぶ④≫リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

かつて現場では「動作するコード至上主義」がまかり通っていました。 ただ、「Code Complete」「実装パターン」など、多くの名著による啓蒙活動も手伝って、 「コードが(マシンだけでなく)人間に対する文書である」という認識が、徐々に受け入れられるようになりました。 そのような状況の中、本書が「読みやすいコードを書く」具体的な方法をかなりコンパクトにわかりやすく提示し、これが広く普及します。このことが言わば「トドメ」となり、この認識が決定的なものとなりました。 このような歴史的意義がありながらも、今なお色褪せずに役に立つ内容であることも、本書のスゴイところです。コードの美しい「型」を、まさに「手取り足取り」教えてくれます。キャリアの初めの方で身に着けておきたいスキルです。

≪プログラミング基礎知識を学ぶ⑤≫達人プログラマー―システム開発の職人から名匠への道

この本には、質のよいプログラムを書くことが出来るようになるよう、 70個のヒントを示しながら、良いプログラミングの方法を教えている。 自分も早くこのような本にめぐり合えていたら、と思う。 ヒント38:抽象概念はコード上に、詳細はメタデータ上に書くこと、 など、示唆に富むヒントから基本的なヒントまで、すべて為になった。 いろいろなレベルの方にお勧めできる本です。

まとめ

「達人プログラマー」というタイトルは、おそらく出版社が売れ線を狙って付けたのだと思います。 本書の内容は、上級者が自然と身に付けているアプローチ、テクニックを整理したもので、 原題「The Pragmatic Programmer」の Pragmatic は、実践的と解釈した方が、本書の実体に即しています。 であるので、「達人」、「名匠」という語に対して過剰反応しない方がよいです。>自分 ところで、この本で感心したのは、訳注の親切さです。 外国の書物では、よく名言や格言が引用されますが、本書の訳注では、それらの発言者ひとりひとりについて経歴を簡単に紹介してくれています。 ほかにもスヌーピーの叫び声など、本文だけでは理解できそうもないところを丁寧に補足してくれています。訳者さんに感謝です。 あと、The Pragmatic Programmer: From Journeyman to Master (ペーパーバック) の書評も参考になりましたので、興味のある方は目を通してみて下さい。