Write Code Every Dayを1年取り組んでみて

Write Code Every Day (原義とは異なる) を始めて記録上ちょうど本日2019-04-16で1年経ったのでまとめます。正直個人差が激しいと思うので参考までに

Write Code Every Dayとは

John Resigさんが提案した習慣です。詳細はこちら

背景と目的

自分がWrite Code Every Dayを開始したのは、社会人になって間も無くの時でした。以前からWebエンジニア(Rails/HTML/CSS/JavaScript)としては活動していましたが、今後のキャリアを考えるとアプリや他言語もできたらいいなと思っていて、ちょうど研修でWrite Code Every Dayというキーワードを聞き実践してみました。

オリジナルの規則では厳格に思えたので毎日コードを書いて学びがあると状態を保てる様に独自の規則を立てて進めました。

まとめるとWrite Code Every Day始めた当初の目的は、自分の専門外の言語・プラットフォームも扱える様に毎日書きながら学ぶことでした。

規則など

どういう規則で実践していたかまとめます。実際にやってみてうまく行かなかった箇所は本来の目的が崩れない範囲で途中で変更することもありました。

  • 毎日masterブランチにコミットする
    • しかし途中からmaster以外のブランチでもOKに変更(1つの機能作成に時間がかかる様になったため)
  • 原則パブリックレポジトリにする (なんでだっけ。大元のルールにあった気がしたから?)
  • 業務・副業は含めない
  • 意味のないコミットは対象外(コメントの追加とか変数名リネームみたいな)
    • 大元のルールではリファクタも対象外だが今回はリファクタはOKとした
  • 日替わりで言語を変える(スイッチングが厳しすぎて途中で廃止)
    • 後半は作りたいものベースで進めた(ただし慣れない言語などを選択するようにはした)
    • 要件定義などの練習も兼ねていた

要は何かしら学びがあればOKというのが原則でした。 取れた時間としては1日30分(平日)から6時間(ほんとに暇な時)ぐらいでした。始めは比較的時間にゆとりがもてる夜にコードを書いていましたが、仕事終わりだと体力と集中力がもたなかったので、朝進めるようにしました。時間に大幅な制約が生まれましたが、集中して進めることを意識するようになったので結果的によかったと思います。

達成率

publicリポジトリに生えた草の日数を集計しただけなので多少前後してそうですが参考値ですが 347/365 とほぼ毎日続けることができました。(多少抜けてるのはPCが故障したりとか病気になったりとか)

f:id:sasurai-usagi3:20190415213201p:plain

成果

ある程度できる様になった言語など

  • iOS開発
    • 仕事で少しいじる様にあったのもあるかも
  • Android開発(Kotlin)
    • ざっくり理解
  • VueJS/NuxtJS
    • まぁ書ける様になった
  • FireBase
    • DBとAuthだけだけど理解
  • Go lang
    • 基本は押さえた
  • TypeScript

触れたものの忘れかけ

成果物(主要なもののみ)

github.com

github.com

github.com

github.com

感想とか

  • Web(特にサーバ)しかできなかったところからWebもJSのフレームワークが使える様になり、アプリも開発できる様になったという点で成果は大きかったと思います
  • 習慣化すると言う点についてはあまり苦戦しませんでした。時間が取れるかがポイントだと思います。
    • 30分だと結構キツキツなので1時間は確保したいところ
  • いくらキャリアのためとは言っても使うか際どい技術は頭に入って行きづらいのとモチベーションが保てませんでした
  • 作りたいものを不慣れな環境で作るというぐらいがちょうど良さそう。勉強のためによくわからないものを作るのは継続性と言う意味で厳しく思えました
  • 検索が難しい。ノウハウだったり言語化しづらいものは調べづらいので人に聞ける環境が必要かなと感じました
  • 1日ごとに言語を変えるのはスイッチングコストが高いのと学んだ内容がごちゃごちゃになるのと次やるまでに忘れてしまい定着しないのでオススメできません
    • 自分の場合あまり長時間取れなかったので特にそうなのかもしれない
  • 病気だったり旅行だったりでコミットできない時があり習慣化しても毎日続けるのは結構厳しく感じました
  • デザインのスキルをこの枠で磨こうとするとコミットが残せないのでコミットを残すことにこだわらなくても良いのかもしれないです

Write Code Every Day 2年目に向けて

  • 作りたいサービスベースでやっていくのが効果的に思えたので今後も続けます。
    • イデアを考えたりする力も地味に身に付く
  • やはりネットに落ちていない、あるいは検索しづらいものをどう習得してくかが今後の課題です

一言

2年目もやっていき