一区切りつけたかったのでまとめておくことにした。
誰かの参考になれば幸いである。
表題の通り 800日間毎日コードを書き、コミットし続けた。
正確には805日、計算してみると2年2ヶ月15日らしい。
とはいえ、仕事としてコードを書いた日は含めていない。
あくまでプライベートの時間を使って趣味として書いた日数である。
始めたきっかけ
始めたのは2016年1月1日。
当時、今後もソフトウェアエンジニアとして生きていくためには、業務時間だけでなくもっとコードを読み書きし、インプットとアウトプットを増やしていく必要があると思っていた。
ふと、John Resig さんの Write Code Every Day の活動が話題になっていたことを思い出し、自分も GitHub 上で始めてみることにした。
リポジトリは下記にある。
https://github.com/emsk
ルール
毎日コードを書いていくにあたり、ルールは特に決めなかった。
タイポの修正でも依存ライブラリのアップデートでも構わない。
とにかくコードと向き合い、コードが生活の中に当たり前にある状況を作りたかった。
私は優れたハッカーではないので、敷居をできるだけ低くし、まずは継続していくことが大事だったのだ。
コードを書く毎日
最初の頃は、コードを書く行為が意識的で義務的だった。
生活の中で大きなタスクが発生すると、開発マシンである MacBook Pro を開くことすら忘れそうになるし、気分がどうしても乗らない日もあった。
しかしそれでも続けていると、段々とコードを書くことが習慣になっていった。
1日で書ける範囲のコード量となるようにあらかじめ問題を分割しておくことで、すぐに取り掛かれるようになった。
内容はともかく、何かしらのアウトプットを出すことは自然にできるようになった。
以前よりもコードを身近に感じられるようになったし、取り組んでいることを忘れてしまうことが無くなり、よりよい解決方法を考えられるようになった。
毎日コードを書いていると、コードのことをいつも意識するようになってくる。
コードを書いていないときにも、頭の片隅で新しいツールのアイディアを考えたり、今抱えている課題にどのように対応するかを考えたりしていた。
GitHub にあるコードを読んでいると、「このライブラリはあのツールに活用できそうだ」「これはバグのようだから Pull Request を送っておこう」など、日々たくさんの考えることがあり、学びがあった。
ただ、本当に自然に、生活の中にコードが溶け込むようになるまでには数ヶ月はかかったような気がする。
それから長い間、量をこなすことで成長を感じることができる期間が続いた。
しかしそのような時期を過ぎると、いつしか量だけではカバーできない世界があると感じるようになった。
毎日のアウトプットを重視し、作りやすそうな小さいツールを構想しがちになっていた。
難易度の高い問題を発見することから逃げているような感覚になり、アートのように自由に発想することができなくなっていた。
うまいやり方を考えなければ成長が止まってしまう、という危機感は強くなっていった。
良いアイディアを発想することができなくなると、依存ライブラリやフレームワークのアップデートのみに留まることが多くなった。
CHANGELOG を読むこともそれなりに時間がかかることだったし、変更を適用しても問題無いか判断することが難しいときも多々あったので自分にとっては決して楽な作業ではなかったが、外から見たときの成果としてはつまらないものになってしまった。
コードを書く毎日の終わり
2018年3月16日、体調を崩してしまい、ついにコミットすることができなかった。
しかしこれもまた、今までの活動を振り返る良い機会だと思い、一旦休憩することにした。
思い出
続けているといろいろあった。
行きつけのバーで好きなウイスキーを飲みながらコードを書いたり、旅行先のホテルで書いたりもした。
標高 1,700m の山に登り、山頂で iPhone からコミットをしたこともあった。
最近では、島根の RubyWorld Conference や 福岡 Ruby 会議に参加しつつ、その会場でもコードを書いていた。
自作ツールの新しいバージョンをリリースできた日は気分が良かったし、誰かにポジティブな影響を与えられるかもしれない可能性にわくわくした。
節目の日には記念としてスクリーンショットを撮って、缶ビールでささやかな自分へのお祝いをした。
残業続きで心が疲弊していたときには、帰宅後のプログラミングが救いになっていた。
疲れ切って夜遅く帰っても、寝る前にコードを書いている時間は楽しかった。
コードを書くことで、まだ見ぬ未来は自分の手できっと明るくできると信じることができた。
仕事では世のため人のためにコードを書くことが多いが、家では思う存分自分のためのソフトウェアを作ることができる。
そこには、仕事とは違う喜びがあった。
成果物
いくつかの愛すべきツールを作ることができた。
決して万人受けするようなものではないかもしれないが、確実に自分自身の問題を解決するものだった。
少しでも気になった方は GitHub の方にスターをいただけると励みになる。
まとめ
毎日コードを書くことは、平凡だった私のソフトウェアエンジニアとしての人生に必要な経験だった。
続けることができた要因として、周りの方々が健康で何事もなく過ごしてくれていたことがとても大きいように思う。
本当に感謝している。
三十路になり、避けることのできない人生のイベントが増えてくる。
それでもソフトウェアエンジニアとして生きていくためには、インプットとアウトプットの質をもっと上げていく必要があるだろう。
今後もこれまで通りコードを書くことを楽しみながら、しかし毎日ということにはあまりこだわらず、効率良く質を上げていけるようにしていきたい。