WriteCodeEveryDayを始めて1年経った

Image from Gyazo

WriteCodeEveryDay (もとい GitHub での草生やし) を続けて1年が経った。 これを機に1年を振り返り、今後の方針をブログに書き残していく。

WriteCodeEveryDay とは

John Resig が始めた「毎日意味のあるコードを書く」活動を指す。

John Resig - Write Code Every Day

始めたきっかけ

就活や卒論で忙しかったため、コードを書かない日々が続いていた。 自分の技術力の無さに焦りを感じていたため、強いエンジニアはどうやって勉強しているのかが気になっていた。

2019年の4月から5月の間に、リクルートテクノロジーズにてアルバイトをさせてもらっていたので、そこで「どうすれば技術力を付けられるか」という相談をしていた。 @orisano さんに相談をした際に、 WriteCodeEveryDay を勧めていただいたことがきっかけで、実際に行動に移すことを決意した。 しかし、この段階では「毎日コードを書く」という曖昧な定義のままだったため、 GitHub にて草を生やし続けることが目標となっていた。

初期

WriteCodeEveryDayを始めたのは6月の中旬からで、主に卒論や共同研究に関連するコードを書いていた。 論文を書くのが苦しかった僕にとって、毎日時間を確保してプログラミングを行うことは心の救いになった。

他にも趣味での開発を行っていて、 @progfay/scrapbox-parser などを作っていた。 趣味開発では、普段使っているライブラリの中身を知るためにフルスクラッチに拘っていた。 また、普段触っていなかった TypeScript や Jest に触れながら、一つのライブラリをじっくりと時間をかけて作り込んでいくことの楽しさを感じることができた。

中弛み

@progfay/scrapbox-parser の開発も落ち着いてモチベーションが薄れてくると、 GitHub で草を生やすことがメインになりつつあった。 コードを書く時間が確保できず、レポジトリを作るだけだったり Renovate による PR を merge するだけになってしまって生産性はなかったものの、 GitHub の草を絶やすのがもったいなくて惰性で続けていた。 これではいけないと思い、身の回りの不便を開発に落とし込むことでモチベーションを維持していた。 例えば、卒論の環境構築を行って同期の学生に共有したり、卒論のデータ分析やグラフ描画を良い感じにしてくれるコードを書いたりしていた。

研修

そうこうしている内に時は流れ、社会人になり研修が始まった。 そこで @t_wada さんに「 エンジニアとしてこの先生きのこるために 」という講義をして頂いた。 講義の中で WriteCodeEveryDay が登場し、ただ毎日コードを書くことが大切であるというわけではないことに気が付いた。

これを機に、そもそもなんのために毎日コードを書いているのかについて考え直すことにした。

再考

WriteCodeEveryDay を始めてからの日々を振り返ると、実質コードを書いていない日から 33 commit している日まであり、非常にムラがあることがわかった。 しかし、実際の業務の中で「今日は気分が乗らないので書きません」というのはかっこ悪いように思える。 なので、どんな日でも集中してコードを書けるようになる ために WriteCodeEveryDay を続けることにした。

また、 WriteCodeEveryDay のルール を決め、公開して取り組むようになった。 取り決めとしては、「毎日意味のあるコードを書く (リファクタリングは含む)」といった John Resig の WriteCodeEveryDay と比べると緩いものを設定した。 これはコードを書く習慣を身に着けることと、技術に対する知識や経験を深めることを目的として、可能な限り長い時間コードに触れるために緩くても続けられるルールにした。

その後

それからは GitHub への連続 commit 日数をカウントする CLI ツールや、普段触らない Go 言語に手を出して Tetris を作ったり、とにかく色々作ってみた。 研修後からは精力的にプログラミングに専念できている実感があり、これは意識が変わったこととルールを明文化したことが要員になっているかなと考えている。

感想

中弛みがあったりルールが決められていなかったりしたため、厳密には WriteCodeEveryDay が続いているわけではないのかもしれない。 しかし、1年間なんらかの Contribution を続けたことと、たくさんのコードを書いたことが自信に繋がった。 緩くても良いので、何事も継続していくことは大切だなと思った。

WriteCodeEveryDay は今後も続けていき、いつでも集中してコードが書けるようになったら、今度はパフォーマンスの向上に注力していきたい。 また、 OSS への貢献も視野に入れて活動していきたいと考えている。

質問・指摘等がございましたら、 @progfay までお願いします。