こんにちは、いっとくです。
エンジニアって他の専門職と比べてなるためのハードル低いと思うんですよ。免許もないし、スキル的にも信じられないほど難しい問題を解かないといけないわけでもないというか、少なくとも医者のように医学部出る必要はないし、弁護士の様に膨大な量の法律を覚えなくてもいいし、建築家のように後から修正できないような設計をすることもないですからね。
でも動くプログラムを書けるというのはあくまでスタートであって、そこから広がる世界が信じられないくらい広くて、一つ一つの分野がびっくりするくらい深くて、全体の変化が恐ろしいほど早いんですよね。
何が言いたいかって言うと、ただコードが書けるだけのプログラマーになることは比較的簡単だけど、そこで素晴らしいパフォーマンスを発揮して社会的に価値のある人間になるための道が険しいということ!そうなるためには頭の良さとかレベルアップできる業務に関わっているかとかも大事だけど、結局モチベーションを持ってプライベートで勉強するのが楽しいと思える変態性とかも必要だと思うのです。
しかしそれがあったとしても一人じゃカバーできないような広がりを見せている世界なので、何をどう学んでいくかはどんどん取捨選択していかないといけないわけですね。
とはいえどんなプログラマーにも共通のエッセンスというのはあると思うんです。
例えばPHPとかRubyとかそういうWeb系の特定の言語に関してはどれかをやっていれば困らないけど、オブジェクト指向の使い方やアジャイルプラクティスを効果的に活かす方法などの言語に特化していないエッセンスみたいなところは誰にとっても有益なものになりうると思います
そして私この度そんなエッセンスがギュッと詰まった誰にとっても有益なんじゃないかと思える本に出会いました!
出た〜、達人プログラマ〜!
出会いましたとか言ってド定番のバイブル的な本ですけどね…!!
20年前に初版が出版されてから全世界でずっと読み続けられている本です。もはやプログラマー向けの本の中では古典に入るのではないでしょうか?エンジニアにおすすめの本〇〇選!みたいな記事を見ると必ず入ってくるくらいのツヨツヨ本です!
日本語訳の第2版はちょうど去年の11月くらいに出版されたばかりです。時代にそぐわなくなった内容や、20年経って新しくスタンダードになった情報を盛り込んで書き直されたものらしい。第1版は読んでいないので比較はできていませんが、この第2版を読んだ感想を言うのであればとにかく全エンジニア読んで損がない内容だと思いました。
戦略、コーディング、プラクティスなど、優れたエンジニアになるためのエッセンスが詰まっている
本書を一言で言うのであれば、優れたエンジニアになるための道標と言ったところでしょうか。
どんなことを意識して仕事をすればよいかや、どうやって自分のスキルを高めていけばいいかというエンジニアとしての生き方の戦略の部分もあれば、優れたコードについて、チーム開発をすすめる上でのアジャイルプラクティスの取り入れ方、ツールとの向き合い方などとにかく死角がない…!!
エンジニアとしての業務経験を積んでない状態で読むのはちょっと背伸びし過ぎな気がしておすすめできませんが、今の業務に慣れてちょっとできるようになってきたじゃんって思ってきた時や、チームを纏める立場になった時、なんとなく今のポジションや仕事内容に退屈してきた時、だいぶ経験を積んで改めて初心に戻って自分の仕事の進め方を見直してみたくなった時など、とにかくいろんなタイミングに刺さるだろうし、読むタイミングに寄って刺さる内容も変わってきそうです。全くの初心者以外であれば誰が読んでも間違いないと思います。
特に命名におけるこだわりやオブジェクト志向のエッセンスとかコーディングに関するプラクティスとかもすごくギュッとまとまっています。ここから深堀りしたい人は別の技術書とかに手を出すとかいう入口的な使い方もできそうですね。
ちなみにエッセイのような感じで各章は独立した内容になっているのですが、個人的には「あなたの知識のポートフォリオ」という章に感銘を受けたので、そこだけざっくりアウトプットしようと思います!
エンジニアとしての知識のポートフォリオの作り方
投資をする際の戦略として分散投資という考え方があります。
例えば資金の一部を株式に投資して、別の一部を不動産に投資して、国内と国外を分けて投資してみたいなやつです。分散投資をすることによって、ある変化が起きた時に一気にすべての価値がなくなって資産価値が激減するというリスクを軽減することができます。その中で一部をハイリスク・ハイリターンの商品に投資することで、そこがはねた時に大きな利益を得ることができるのです。
エンジニアもこれと同じ様に知識のポートフォリオを作る必要があります。
間違いない技術を使える様にその分野の学習に投資するのはもちろん、これから来ると自分が確信した技術にも一部時間を割いて投資していくのです。そうすることでその技術が盛り上がった時に、その分野における第一人者に近づいていることで己の市場価値を上げることができるのです。
この章を読んだ時に、勉強への向き合い方に投資のメタファーを使うというのが斬新かつしっくり来すぎて衝撃を受けました。現状だとどうしても間違いない技術のキャッチアップに注力しすぎてしまっており、新しいこれから来るであろう分野への投資が全然できていない…!
今後の学習方法を揺らがすような気付きだったと思います。
ちなみに本書では以下のようなバランスでの学習をおすすめしています。
- 年に一つ以上新しい言語を習得する
- 月に1冊以上技術書を使って学習する
- 月に1冊以上プログラミングと関係ない本で学習する
- 勉強会に参加する
- 近くのユーザーグループに参加する
- 異なる環境で開発してみる
- 最先端の情報に触れる
なぜこれをやるのかまで書いてしまうと果てしなく長くなりそうだし、そもそも本に書いているので省略しますが、これが自分のためになるであろうことは詳しく見なくてもなんとなくわかると思います。
特に上から3つ目のプログラミングとは関係ない本を読むというのは今までない視点でした。
結局サービスを使うのはエンジニア以外の可能性が高いので、その人達のことを知らないといけないよねというのがここの理由ですね。
正直読んでいて難しい章もありましたが、全体的にかなりワクワクしながら読める内容になっており、今後の働き方に影響を与える本であることは間違いないと思うので、一旦棚に積んでおくと良いと思いました!
これはバイブル!Webエンジニアもアプリケーションエンジニアも組み込みエンジニアもためになる内容だと思います!インフラの人にとってはどうだろう…ちょっとわかりません!
以上、いっとくでした!
コメント