エンジニアになりたい

エンジニアです

Githubに毎日コミットし続けて100日を超えていた

www.slideshare.net

去年の@t_wadaさんの↑の資料に感化され、毎日Githubにコミットし続けてついに100日を超えた!

f:id:pro_shunsuke:20160131214557p:plain

本当は100日ぴったりの時にスクショを撮りたかったけど、完全に忘れていて本当に悔しい・・・。

感想なりなんなりを書いていこうと思う。

そもそも何で始めたのか

元々コード書くのはすごく好きだった(そうでもなければエンジニアという職業に付いていなかったと思うのだが・・・)。エンジニアという職業に付いたからには、やはり自分の力をどうにか伸ばしていきたいなと思っていた。しかし、やはりどこかでちょっと面倒くさいなぁという気持ちもあったのか、思うだけで何も実行していなかった。そんな時に和田さんの↑発表を聞いて、「やろう!」と思い立ったしだい。

達成具合

資料には、以下のルールの元に毎日コードを書く事を目的としていた。

  1. 毎日コードを書くこと。ブログ、ドキュメント、その他はコードを書いたらやってよい。
  2. 意味のあるコードを書くこと。インデントやフォーマットの修正、可能ならばリファクタリングもコード書きにはカウントしない。
  3. 深夜 24 時前に終わらせること。
  4. 書いたコードをgithubで全てOSSにすること

このルールをどれだけ守れていたのか振り返ってみる。

  • 毎日コードを書くこと。ブログ、ドキュメント、その他はコードを書いたらやってよい。

Githubに毎日草を生やす事が出来たので達成出来たと言えるだろう。

  • 意味のあるコードを書くこと。インデントやフォーマットの修正、可能ならばリファクタリングもコード書きにはカウントしない。

これは難しかった。最初の頃はRails Tutorialを毎日やっていたが、それが意味のあるコードと言われるとかなり怪しい。リファクタリングをするだけの日もあったので、完璧に守ることは出来なかった。

  • 深夜 24 時前に終わらせること。

用事があって24時を過ぎて帰宅してしまう日など、次の日になってコミットして、コミット日時をずらしてしまうというずるをする事があった。このずるに関しては批判の声も多いことと思う。ただ、私はこの修行に関しては、続ける事がとても大事だと思っている。たった一日コミットをしないことでモチベーションが下がり、その後続けられなくなってしまうよりは、ずるをしてでも続けた方が良いだろうと思ったのだ。杭はない。

  • 書いたコードをgithubで全てOSSにすること

先ほども書いたが、最初の頃はRails Tutorialの写経をしていた。なので、出だしからすでに破綻していた。ただ、個人的にはあくまで自己鍛錬のためにこの修行を行っているので、そもそも書いたコードをすべてOSSにする気もなかった。

毎日コードを書くことは出来たが、4つのルールを守ることは出来なかった。ただ、自己鍛錬を目的にしているなら必ずしもルールに則る必要は無いのかな?と思う。

モチベーションの保ち方

先輩の存在が大きかった。私がこの修行をやると先輩に言い出した時に、先輩も一緒に乗ってくれた。本来自分のプロダクトに関してコードを書くことは孤独なはずだが、こうやって一緒にやってくれる人がいるととてもやる気になった。他にもちょくちょくモチベーションを保つ方法はあったけれど、やはりコレが一番大きいと思う。

やってよかったこと

会社で触るものとは全く異なる技術に触れることが出来た。現在会社では主にRailsRubyを触っていたり、Symfony2でPHPを触っているが、この修行ではPhoenixを使ってElixirを書いていたりする。また、フロントエンドはReactを使ったり、開発環境にDockerを導入してみたり、とにかく自分の興味のある領域にどんどん進んでいけた。最終的にはうまく会社のプロダクトにも組み込めていけたら良いなと思っている。

最後に

本当に自分に力が伸びたかどうかは正直分からない。そもそもエンジニアの力ってコードを書く能力だけでは無いと思っているし・・・。しかし、ここ数ヶ月毎日コードを書き続けて、やはり良かったなと思う。新しい技術に触れたり、自分で動くものを作ったり、そういうのやっぱり楽しいなと思う。技術が好きでエンジニアになったし、仕事のコードを書くだけだと本来のエンジニアリングの楽しさを忘れてしまうような気がしないでもない。

特にまとまりもなくつらつらと書いてしまったが・・・、これからも毎日コードを書き続けたいと思う。