【厳選】レベルアップを目指すプログラマ初心者にオススメの書籍3冊

【厳選】レベルアップを目指すプログラマ初心者にオススメの書籍3冊

こんにちは。
今日は、プログラマー6年目の僕から、
レベルアップを目指す新人プログラマーさんにオススメしたい書籍を紹介します。
プログラマーに関わらず、一つの仕事に就いて5年もたつと、
まだまだ未熟とはいえ、ある程度自分の信念やスタイルのようなものがあると思います。

ただ、1年目、2年目などは何が正しいのかもわからない、
自信を持って仕事に取り組めないという状態であることが多いと思います。

僕もそのような状態に陥っていたのですが、そんな状態から脱して、ほんの少しでも一つ上のレベルに進むきっかけになった書籍を紹介します。

このような方にオススメ

以下のような方を対象にオススメします。

  • 自分のコーディングスタイルに確固たる原則のようなものを持っていない
  • 自分のプログラミングの仕方が正しいのか自信がない
  • そもそも正しいプログラミングの仕方というのが、どんなものかわからない
  • ちょっと慣れてきたけど、初心者の状態から今ひとつ抜け出せていないような気がする

読むときに注意してほしいこと

以下のことに注意して読んでもらいたいです。

読破することより、実践することを重視する。

当たり前のことですが、基本的に本を読むだけでは何も身につきません。
プログラミングに関する知識であれば、当然読むだけでは意味がありません。
とことん実践しましょう。とことんプログラミングしましょう。
極端に言うと、1週間で300ページ読むより、1週間で1ページだけしか読まなくても、その内容を実践する方が効果は高いはずです。

実践するものではなく、頭で覚えるような内容だとしても、自分の中で解釈して言い換えたり、より自分の状況にあった言葉になおして何かに書いたり、言葉に発してみるといいと思います。

難しくて理解できなくても気にしない

今から紹介する本はそこまで難解なものではありませんが、部分的に理解できない箇所があるかもしれません。
これは、本を読むときにはつきものですが、気にしないで読み進めましょう。
単語が理解できないのであれば、それを調べる。
文章全体として理解ができないのであれば、一旦流すのもありです。

無理に読もうと思うと、挫折感を味わったり、疲れてきたり、飽きてしまいます。
とにかく今の自分が理解できて、実践できるレベルの範囲というのを意識しましょう。

熟読する

一回読んで終わりにはしないでください。
何度でも読みましょう。
今から紹介する本は、構成がしっかりしていて、
最初から最後まで読まずに部分的に切り取っても理解しやすく、
繰り返し読むのに適しています。

プログラマとして、プロとして、正しい姿勢や考え方を知ろう

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

この本は、僕が初めて自発的に買った技術書です。
特定の技術のハウツーやノウハウ、具体的なプログラミングのテクニックを説明しているようなものではないのですが、大勢の著名なエンジニアが、それぞれの思う「プログラマが知るべきこと」をコラム形式で寄稿した本で、知識の集合体のようなものです。
他のコラムを考慮して書かれたものではないため、それぞれが独立しており、書かれる内容は本当に多種多様です。

勉強法、コーディングスタイル、プログラマーとしての立ち振る舞い、クライアントとの折衝、開発メンバー同士で協力する姿勢などなど..

前述した通り、特定の技術を深く追求したようなものではないので、具体的なスキルや知識が身につくようなものではありません。
しかし、この本のまえがきにもある通り、様々な考えに触れてプログラマとして上達するためのきっかけ、「とびら」となるような本です。
この本を読んで、プログラマとして自分の技術を磨き続けるのがどれほど大事か、そしてそれがどれだけ楽しいことか、
プロとしての正しいマインドセットを持つことがどれほど大事かを知るきっかけになりました。
初めて読んでから5年程経ちますが、繰り返し何度も読んでいます。

先輩エンジニアから「読みやすい!」と言われるコードを書けるようになろう

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

この本は、プログラマが「良いコード」を書けるようになることを目的としています。
そして、良いコードとは何か、良いコードを書くためにはどんなことができるかを具体的に、非常にわかりやすく説明されています。

書かれている内容としては、以下のようなものです。

  • 変数、関数の名前のつけ方
  • 一貫性、規則性のある美しいコードレイアウト
  • 正確で簡潔なコメントの書き方
  • 複雑で冗長な処理をシンプルにするには

先輩エンジニアや同僚から、「読みやすい!」と言われるようなコードを書けるようになりたい。
自分で書いたコードが読みにくい、わかりにくいと感じているが、どう改善すればいいかわからないという方は、是非一度読んでください。
読みやすいコードが書けることは、プログラミングにおいて、かなり重要なことです。
これも立派な技術です。

ちょっと高度なテクニックから、今すぐにできる簡単で確実な改善方法まで知ることができます。

「チームとして」難しい問題に立ち向かう方法や心構えを知ろう。

アジャイルサムライ−達人開発者への道−

アジャイルサムライでは、システム開発、プロダクト開発のおいて、以下のような考え方を核としています。

  • システム開発において、「不確実性」は必ず存在する。
  • 変化は必ず起こる。変化は避けるものではなく、受け入れるもの
  • 顧客の問題解決、ニーズを満たすのが目的であり、プログラミングそのものが目的ではない
  • 顧客、クライアントもチームの一員である
  • 「チームとして」問題解決に挑む

どんなプロジェクトにも、「不確実性」は存在します。
大幅な仕様変更、納期の短縮、予算の削減、具体的な実現方法のわからない機能の実装…等々
そういった「不確実性」が要因となり、システム開発は難しく、大規模なものになります。

アジャイルサムライでは、そういった「不確実性」、絶え間なく起こる「変化」を押さえつけたり、後回しにしたりせず、柔軟に、迅速に対応する方法や心構えについて書かれています。

僕が個人的に、この本で一番重要だと感じたのは、「チームとして」問題解決に挑む、プロジェクトに関わるという考え方を持つということです。
「他の誰かが担当すべき問題」「自分には関係無い問題には関わらない」という考えは捨てて、全体として問題をとらえ、解決に協力的で前向きな姿勢を持ちましょう。
そういった姿勢を見せてくれるだけで、まわりは気持ちよくなれるし、その人を信頼できるようになるものです。

まとめ

プログラマーとして本当にレベルアップを目指すなら、特定の専門分野をとことん学んだり、新しい技術を積極的に学ぶということが必要ですが、
そのレベルに至る以前の「基本的な知識」や「正しいマインドセット」を学ぶということを目的として、この3冊をオススメしました。

読んでみてピンと来ないという可能性もあるかもしれませんが、何度でも読んでください。
書かれている内容は普遍的で、どんなケースでも当てはまる、大事なことが書かれている。と僕は思います。
手元に置いて、数カ月おきにでも、繰り返し読んでみると、そのたびに新しい気づきがあったり、忘れていた大事なことが思い出せるはずです。