初心者から中級者のプログラマー&エンジニアにお薦めしたい書籍

予告したテーマではBlogを書かない人間とは私の事です、こんにちは。 システム開発の要件が時間の経過と共に変化していくように Blogで書こうと思うテーマも変わりますよね。変わりますよね。

というわけで、若干釣りっぽいタイトルではありますが 弊社でもそろそろ新卒が実務を開始し、 経験の少ない中途採用の方もチラホラ見受けられる事もありますので 社内向けも兼ねて、初心者?中級者の方に是非読んで欲しいお薦めの書籍を紹介いたします。

Clean Coder プロフェッショナルプログラマへの道

CleanCoder

本のタイトルには「プロフェッショナルプログラマへの道」とありますが、 技術的な事はほとんど書かれていません。 仕事をする上でのプロフェッショナルとしての心構え的な物が中心です。

プロフェッショナルなら自分の発言と行動に責任を持とうねと言った内容や 良い仕事の進め方とはどうするのか、要求された全ての事柄に対して何でもイエスと言うのは プロフェッショナルとして正しい姿ではない...と言った辺りの事が書いてあります。

特に新卒や、日々なんとなく業務を作業としてこなしている中堅層辺りにお薦めです。

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

リーダブルコード

コードは読みやすく理解しやすいものでなければならない。 当たり前の話ですが、コードは人間が読む物なので読みやすく分かりやすくないといけません。

絶対に自分しか読まないプライベートなコードならともかく、 仕事でコードを書けばPJメンバーやレビューをしてくれる先輩や上司、 そのコードを参考にするかもしれない後輩などが読む可能性があります。

そして、シンプルで読みやすいコードと言うのは、 大抵の場合は設計も美しいコードになっています。 そのためにちょっとしたキーワードの使い方や制御構造文の書き方、 思わず「なるほど」と思える内容などが盛りだくさんです。

仕事でコードを書く人は、まずこの本を読んでから書いてください。

プログラマが知るべき97のこと

97

世界中の一流プログラマーがそれぞれ重要だと思う事柄について書かれている本です。 読み物として凄く面白いので読んでおいて損はありません(適当な紹介だな)

時間が無い人でも、まつもとゆきひろさんがお書きになった 「名前重要」のページだけは読んでみてください。 本の中で、まつもとさんは以下の様に仰っています。

適切な名前をつけられると言うことは、その機能が正しく理解されて、設計されているということで、 逆にふさわしい名前がつけられないということは、 その機能が果たすべき役割を設計者自身も十分に理解できていないということではないでしょうか。

私自身も名前が重要だと常々思っていたものの、なかなか周囲には理解されなかったんですが この本を読んでやっぱり名前は重要だな、と、自分の考えは決して間違って無かったんだと勇気付けられました。

達人プログラマー―システム開発の職人から名匠への道

達人

達人になるためのノウハウや心構えが書いてあります。 品質を向上させるためにはどうすれば良いのか、当たり前の事を当たり前にやる事の大切さ、 ワンランク上のプログラマー・エンジニアになるために必読の書かな、と思います。

時間を置いて読み直せば、前回は曖昧な理解しか出来ていなかった箇所が すっと理解出来るようになって、また新たな気付きがある...そう言う本です。 初級?上級まで全ての人にお薦め出来ます。

リファクタリング―プログラムの体質改善テクニック

レガシーコード改善ガイド

リファクタリングレガシーコード

プログラマーなら避けては通れない話、リファクタリングに関する本です。 是非この2冊はセットで読んでいただきたいです。

リファクタリングとは何か、その目的は、効果は、具体的にどのように行うのか、 と言った事が書いてあります。 コードはJavaで書かれていたような記憶があるので( 間違ってたらごめんなさい )、 最低限Javaのコードが読めないと、本書を読み進めるのは大変かも知れません。 また、内容的に完全な初心者では難しい物も多いので、 そろそろ中級へ...と言ったレベルの方にお薦めです。

リファクタリングはコードを書く人間なら絶対に必要な技術です。

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

アジャイル奥義

ソフトウェア開発を行ううえでの基本原則や、 パターン、プラクティス、オブジェクト指向(分析/設計)など プロフェッショナルとして仕事をするならどれも絶対に必要な内容ばかりです。

内容は良いと思うのですが、かなり分厚いので読むのに気合が必要な点と これまたコードはJavaで書かれていますので、 Javaがわからない人だと睡眠薬or枕になる可能性があります。 武器にもなる重量です(どうでもいい)

***

他にも色々とありますが、まずは初心者?中級者ならこれは読んでおいて欲しい... と言う物をピックアップしました。 どれもこれも1回読んだだけでは全てを理解する事は難しいと思いますし、 何かある度にちょこちょこ読み直していただいて、 その都度理解を深められれば良いのではないでしょうか。

また、プログラマーとしてのスキルを高めたい方はこう言った本を読む事が必須ですが、 それ以上に良いコードを読む事が大切だと思っています。 コードを書く時間よりも読む時間を多く取っても良いぐらいです。 そしてコードを読む際には、ただ何となく読むだけではなく

・このコードにはどういった意図が含まれているのか

・自分ならこう書くんだけど、それと比べてどうなのか

などと言った事を考えならが読むと、更なる気付きがあり成長に繋がるかと思います。 Blog読者の皆さんも「これはお薦めの本だよ!」というのがあれば是非とも教えてください。