プログラミングを始める人に必ず読んでほしい良書(プリンシプル オブ プログラミング)


プログラミング中のノートパソコン


ここ5年ほど、新卒入社した人のメンターになってプログラミング等を教えている。そこでは入社までのプログラミング経験の有無に関わらず、まずこの本をおすすめしている。

サブタイトルに「3年目までに身につけたい」とあるが、正直3年目まででも難しいしと思うし、これまでプログラミングの経験がなく、これから始める人にはもっと難しいと思う。

それでもこの本を勧める理由は、プログラミングはもちろん、エンジニアの職に就くにあたって重要な原理原則がふんだんに書いてあるからだ。

この本は、過去様々な良書で語られてきた重要な要素を一冊にまとめたものだ。その分、要素の中には理解が難しいと感じる点もあるかもしれないが、全体を網羅するには非常にコスパがいい。

全部で7章あるが、はじめに読み込んで覚えるのは第2章まででいい。もっと言うと2.2 DRY と2.7 名前重要だけでもいいから頭に入れてプログラミングを始めてみてほしい。


この本を読むメリット

レビューでたくさん指摘されても心が折れにくくなる

最初のうちはレビューでたくさん指摘される。

たくさん指摘されて、直したらまた指摘されてを繰り返すと「私プログラミングに向いてないかも、、、」と心が折れそうになると思う。

メンターも「こういう点に気をつけてみて」と伝えられればいいが、どこが良くないなのか要約して伝えられるとは限らない。

そんなとき、この本で原理原則を知っておくと、この指摘たちはこの原則に反しているから良くないんだと問題が集約される。そうすると対処もしやすくなるし、何もかも駄目なわけじゃないと少し心が軽くなる。

(そして大体の原因はDRY と名前重要に行き着く)


良い行い、悪い行いに名前がついて真似しやすくなる

周囲の先輩で、エンジニアとしての評価が高かったり、スキルが高いと言われているような人はいるだろうか。

そういった人にできるだけ早く近づく方法は、「真似」だ。コードや設計書の書き方、報告の仕方やチームの中での振る舞いを真似する。

まずは形から真似することで、良いポイントが何なのかだんだんと見えてきて、自分のものになっていく。コードの一つ一つや振る舞いから、その根底にある思想、原理原則が見えるようになる。

しかし、自分のものになるまでには時間がかかる。そんなとき、この本でエンジニアの原理原則を知っておくと、その良いポイントが言語化される可能性が高くなる。言語化できれば再現もしやすくなり、より早く自分のものにできる。

また、チーム内みんなで読んでおくと、共通言語ができる効果もある。「ああこれはYAGNIだね」のように良い行いにも悪い行いにも名前がつく。名前がつくと意思疎通がスムーズになりチームの生産性が上がる。


周りにメンターがいなくても、ブレない芯ができる

ソースコードの書き方やテクニックはネット上にたくさんあるが、どんな思想でどんな構造にしたらいいのか?まで教えてくれることは、ほとんどないと思う。

周囲にそういったことまで教えてくれるメンターがいればいいが、いない場合も多い。

この本ではその思想、原理原則の部分を学べる。その要素は過去様々な良書で語られてきたものでエンジニアたちの叡智の結晶だ。たとえ信頼できるメンターが周りにいなくても、この本がメンターとなりバイブルとなって正しく導いてくれる。そして自分自身にブレない芯ができる。


まとめ

プログラミングを始めるにあたって、まずこの本を手にとってほしい。

そして第2章まで読んだら一旦本を置いて、実務や自己学習に取り組んで、また手にとってを繰り返してみてほしい。はじめのうちは理解が難しいと思う点もあるかもしれないが、エンジニアをしていれば、その原理原則は必ず出てくる。

そのとき、まずは言葉として知っているか否かで、対処や理解、習得のスピードは大きく変わってくる。読んだ瞬間にプログラミング能力を上げてくれる「銀の弾丸」ではないが、この本は血となり肉となり、必ずあなたの成長を助けてくれる。

たとえ3年目までに全てが身についていなくとも、読んでいる人とそうでない人とでは、とても大きな差ができている。そういった本だ。

コメント

このブログの人気の投稿

メールのURL(リンク)が途切れる問題に対応するアドイン(Outlook)

メールからRedmineのチケットを作成するアドイン(Outlook)

複数行テキストの「表示数を増やす」を自動で開くChrome拡張機能(SharePointモダンリスト)

もしもアフィリエイト かんたんリンク文字化け対策ツール(全角→半角記号変換)

Google Meetの参加リクエストを自動承諾するChrome拡張機能