Ryo5smileの技術ブログ

学んだこと

【12月4週目】達人プログラマーを読んで【2/2】

達人プログラマー ―熟達に向けたあなたの旅― 第2版

前回の続きです。今回も個人的に重要だと思ったTipsを紹介していきます。

個人的に響いたTips

爬虫類脳に耳を傾ける

ここで述べられている爬虫類脳というのは「自分自身の本能」のことで、コーディング中などで行き詰まった時などにモチベーションが下がることがありますが、それは自分の本音に沿っていないことをしているからだそう。そんな時は、散歩に出たり昼食をとったりしてぼんやり自分の思考と向き合ってみるのが良いと書かれています。 自分も結構考えが煮詰まっている時は一度散歩したりすることで、一回思考を整理できるので作業に取りかかりやすくなるなと感じています。エラーの解決策が移動中にふっと湧き上がったりする経験を何度もしたので、あえて集中しない時間を取るというのが必須級レベルで重要だと感じています。

早めにリファクタリングすること、そしてこまめにリファクタリングすること

例えば自分がコードを書いているときに「この変数名はあまり適切ではないな」と思ったときに、「一つの処理を完了させてから見直そう」と適切な変数名を考えることを後回しにしてしまいがちです。その結果どうなるかというと、そのことを忘れてしまい変数名は不適切なままpushされてしまいます。そのためリファクタリングは早めに取り掛かるように心がけたいです。もしくは、コーディング中にその都度Todoリストにリファクタリングする箇所を具体的に記しておいて、リファクタリングする時間を決めて、その時間にまとめてやるといった方法も考えられます。 リファクタリングをする時間とコードを書く時間を同時にしない理由は、マルチタスクになるからです。マルチタスクとは複数の作業をこまめに切り替えて行うことで、人間は作業を切り替えると前の作業の脳へのリソースが残っており、それによって作業効率がかなり落ちてしまいます。そのため、コーディングとリファクタリングは区別して行う必要があると考えます。

プログラマーの仕事は、自分自身が欲しているものを自らで気づいてもらえるように支援すること

ユーザーが求めていることを把握するためにはあらゆる問いが必要である。ユーザーの希望通りの機能を作ったとしてそれがベストだとは限らないということです。例えば自分がものづくりのエンジニアだとして、顧客に「一番早い馬車を作ってくれ」と依頼が来たとします。そこで顧客の依頼通りに世の中で一番早い馬車を作ってしまうのではなく、顧客がそれを通して解決したい課題を深掘りする必要があります。それは馬車を使う理由を考えることで見えてきます。顧客は馬車にただ乗りたいのではなく、早く目的地につく手段を欲しているの可能性があります。そのため、必ずしも馬車を作る必要はなくて自動車を作るという選択肢も出てきます。このように、「それを欲している本当の理由は何か?」と問う必要があります。そのため言われた通り作るのではなく、その目的をしっかりを理解することがプログラマーとして大事になってくると考えています。

読みきった感想

テスト駆動開発アジャイルなど結構専門的な知識を必要とするTipsがあり、一回読んだだけでは飲み込めない内容もあったのですがその中でもプログラマーとしての考え方や姿勢など参考になる部分が多くて読み応えのある本だと感じました。これまで技術的な部分を深掘りすることが多かったのですが、こういったソフトスキル面での本はあまり読んでこなかった分新たな発見が多くてサクサク読めました。定期的に見直すことで、どのくらい実践できているかを確認できるので今後も読み直していこうと思います。