Walk, Don't Run

若手エンジニアが日々学んだことをさらけ出すブログです

情熱プログラマーを読んだ

GWの前半、奥多摩の静かな旅館に一人で泊まりながら、「情熱プログラマー ソフトウェア開発者の幸せな生き方」を読んだ。タイトル的に精神論的な内容かと思っていたが、実践的なアドバイスに溢れている有益な本だった。仕事でプログラムを書く機会のある全ての人に読んで欲しいと思える本です。

情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方

全部で53のエッセイが、五つの章に分けられて書かれている。気に入ったものをいくつか切り抜いてみる。

(余談だけど、著者のChad FowlerさんはIT業界に入る前はプロのジャズSax奏者で、本の至るところで音楽活動の経験を元にした記述がある。ジャズFlute奏者*1の自分にとっては、共感出来る点が多く、そこも気に入ってるポイントだ。)

3. コーディングはもう武器にならない

君が「ただのプログラマ」だとしても、顧客に彼らのビジネスの言葉で話しかけることができれば、それはもう立派なスキルだ。君だって、一緒に仕事をしなければならない全員がソフトウェア開発について熟知してたら仕事が楽になるって思うだろう?

序盤からいきなり、コーディングの技術だけでは生きていけないという当たり前の現実を突きつけられる。それはわかっているのに、(我々)プログラマは技術が好きだからそっちに走ってしまう。

でも、確かに、会社のチーム内で誰よりも仕事が出来る先輩は、会計の知識がずば抜けて豊富で、色んな人がその先輩に相談しに行っている。この人がいなかったら全体の生産性はどれほど落ちてしまうのだろう。

4. 一番の下手くそでいよう

バンドの中で一番下手くそというのは、いつも自分より優れた人たちと一緒に演奏するという意味だ。僕はミュージシャンとして、この教訓を早いうちに学び、忠実に守るという幸運を得た。

一番下手という状況にいると、必ず変化が起こる。天才の隣にいるだけで天才に変身出来る。これは、経験的に理解できる。近づきたいという憧れの気持ちと、下手くそである悔しさが成長を促進させてくれる。

ただ、自分が一番へたという状況は、心情的にすごくしんどい。自信を失うし、周りに迷惑をかけてしまう不安もある。それでも、それを乗り切るだけの価値があるのだろう。

7. 万能選手になろう

こんな変化が激しい環境で生き残るのは柔軟性だ

万能選手になろうとするなら、特定の役割やテクノロジで自分自身を規定しないことだ

会社で仕事をしていて、色んなトラブルに見舞われる。デプロイが上手く回らなかったり、DBサーバーにアクセス出来なくなったり。こういった場面では、「◯◯さんが詳しいから任せよう」という流れになる。◯◯さんは誰かから命令されて何かを学んだのではなく、自発的に学んだのだと思う。

「仕事で使わないから/命令されていないから」というのを何かを学ばない言い訳にするのではなく、自分にとって本当に必要な技術を汎用的に学ぼうというお話。これも耳に痛い。同期で活躍しているアイツは、こういうところを頑張ってるから偉いと思う。

15. 一に練習、二に練習

僕らの業界でも、もっと練習の時間が必要だ。(中略)実務で練習するという考え方は捨てなければいけない。自分の技術に対して時間を投資しなければ。

ミュージシャンやアスリートは鍛錬を積んでいるように、エンジニアも練習しなさいという厳しいお話。それも、仕事の中だけではなく仕事の外でも技術を学ぶ必要性がある。

それじゃあいったい何を練習すればいいんだろう?自分の限界を押し広げるには何をしたらいい?

具体的に何を練習すれば良いのか?という点についても、ジャズの経験を元に以下のカテゴリで紹介されている。

  • 身体的技術
  • 初見
  • 即興

プログラミングの練習をジャズの練習で例えるところが面白い。具体的な内容は省きます(面倒)。

28. 8時間燃焼

これは、どう頑張っても8時間以上働き続けるのは無理なくらい容赦なく働くべき、という考え方だ。

ダラダラ長時間働かないで、8時間を全力で集中して働けというお話。自分は平均すると一日12時間以上実作業をしている。正直なところ、たまにネットサーフィンもしてたり、集中しているとはとても言えない。

作業は、短くするほうが多くできる場合がある。(中略)燃え尽きた状態では、想像力も乏しくなって、作業の質は大幅に低下する。

その通りだと思います。

(前略)まだ午前10時半だし、どうせみんな帰った後も何時間か仕事を続けるんだから、少しくらい技術系の最新ニュースをチェックしてもいいだろうなんて考えがちだ。

あるある。ありすぎて困る。

プロジェクトはマラソンであり、短距離走ではない

わかっているけど、どうしても短期的な視点で取り組んでしまう。マラソンでは、スタートからゴールまで一定速度で走ることが最も効率的だと聞いたことがあるが、この感覚を仕事にも適用すべきなんだろうね。

39 業界で名前を売ろう

業界で名前を売るのに出版や講演より効果的な手段はない。とはいえ、平凡なプログラマがほんの著者になったり講演者になったりするのは難しいよね。そこでWebからスタートしよう。

この辺りも、会社に自分を縛るなというメッセージに聞こえる。まずは、技術ブログを書いたり身近な勉強会から初める。

こういう方法で名前を売り出すときに一番大事なことは、時期尚早かなと思うくらいでスタートすることだ。たいていの人は自分を売り込むときに消極的になる。君は教えるべきものを持っている。もう準備万端だと感じることは決してない。この瞬間に始めてもいいくらいだ。

プロシュートの兄貴も同じことを言ってた。

まとめ

何か変わらなければいけないのに、何をすれば良いのかわからない。そんな風に感じている若手のエンジニアはけっこう自分以外にもいるんじゃないかと予想する。そんな人にこそオススメしたい。

この本に書いてあることを全て実行することは、正直なところ難しい。でも、背中を押す手助けにはなってくれて、具体的にやりたいことがいくつも生まれた。こうしてはてなブログを開こうと思ったし、Markdown記法も学んだ。

今後もこうやって少しずつ学んで、アウトプットしていきたいと考える次第です。三日坊主にならないことを祈る。

*1:当然アマチュアというか初心者