プライベートで 689日連続でコードを書いた(ことの振り返り)
プライベートで 689日連続でコードを書いた。
あるとき毎日コードを書いてみようと思い立ち、それを 1年間続けたならば、何か大変なもの(力・成果)を手にしているのではないかと、はじめる前には予想していた。
しかし、いざやってみて、もちろん得るものもあったが、改善すべきことのほうが多い気がする。ので、ここで振り返って書き留めておこうと思った。
GitHub の Current streak
もともと「継続は力なり」という言葉への憧れがあったと思う。ただ、継続は力、のような気がするが、子どもの頃から、皆勤賞とか何かをコツコツやる、みたいなものとは縁遠い日々を送っていたので、なんというか、そこに引け目みたいなものを感じていた。
そこへ(細かい話は割愛するけれど)「とりあえず 1週間だけ毎日コードを書いてみるか」と思い立つことがあって、それが運良く成功したら、GitHub の「Current streak」なるものに反映されていたことに気付いた。
僕にはこれが少し前に観た映画『マネーボール』のアスレチックスの連勝記録と重なるように感じられて、あともう一日書こうと思った。そうしたら、あともう一日、もう一日、気づいたらその連勝記録を失いたくないので、体調があまり良くない日でも何だか意地になって、何かを書いてプッシュしていた。
(「Current streak」がそういう意図でつくられた機能だったとしたら、まさに狙いどおりだったよと GitHub の中の人に伝えたい)
Keep
何を書いていたかというと、プライベートでエロサイトをつくっていたので、そのプロダクトコードをせっせと書いていた(Rails)。あと、そのインフラの構成管理のコード(Puppet)とか。コミット数でいうと、ここ 3年くらいは毎年4,000 〜 6000 ほどコミットしていた(GitHub の「Contributions in the last year」調べ)
プロダクトを運用していると、よくもまあ飽きないくらいに何かしらの問題にぶつかってくれた。パフォーマンスの問題や、検索精度の問題、コードの複雑化、その他ユーザー数やアクセス数や収益の伸び悩み等ビジネス的な問題。
その時々で問題を解決していって、経験値が増えたと思う。もし同じ問題に遭遇したならば、もっとうまく早く解決できるようになっていると思う。
そして、最も大きな収穫は、頑張らなくても済むようになったことだと考えている。つまり、何か手を動かすことが普通になっていたので、自分を奮い立たせなくても、意識を高めなくても、何かしらコードを書いていた。
Problem
一方で、サイトの運用に忠実過ぎた。つまり、リソースの無駄遣いを避けて、問題解決までの最短距離を行こうとした。早すぎる最適化を避けたし、そもそも問題が現実に起こらないとそこには手を付けなかった。"遊び" がなかった。
エンジニアとしての成長という観点からみると、これがマズかった。できるだけ自分の手に馴染んだ技術だけで問題を解決しようとして、『情熱プログラマー』の表現を借りるならば、自分の守備範囲の真ん中あたりをうろうろしているだけで、自分の限界を押し広げなかった。仮にプロダクトで使わなかったとしても、もっといろいろな技術に触れて、その背景となる考え方や思想を理解すべきだった。
そして、もっと悪いことに、アウトプットに比してインプット(主に読書)の量が少なかった。特にネットワークやセキュリティ、UNIX の考え方などの基礎的な知識のインプットの量が少なかった。
Try
というわけで今後はインプットにあてる時間を増そうと思う。具体的にはどうやったら増やせるだろう?
土曜日の午前中に近くのコミュニティセンター(公民館みたいなところ。学習室がある)かカフェに行く、というのが実行可能で現実的なアクションかなと考えた(本しか持っていかなければ、本を読むことしか、やることがなくなる)
あとは社内にいくつか興味深い読書会(数人で継続的に何かの本を読んでいる)があるのでそこに乗っかる、という手も良さそう。