駆け出しエンジニアが100日間GitHubに草を生やし続けたら、プログラミング完全に理解した。
はじめに
タイトルの通り毎日 github に草を生やして 100 日間が経過しました。
完全に理解した=入門した状態です。
この記事では毎日 github に草を生やすために工夫したことや、得たものについて書きたいと思います。
エンジニアを目指している方や、エンジニアとして入社・転職されたばかりの方の参考になると幸いです。
以前書いた記事にも軽く書いていますが、改めて自己紹介をしたいと思います。
- 文系の大学を卒業後、7 年間商社で営業をする
- プログラミングに興味を持ち、昨年 web 系の企業へ転職
- 一児の父
- 転職後半年間はテストや PM 補佐的な業務を中心に行った
- 今年に入ってから徐々に開発業務に入っており、4 月以降は開発がメインになる予定
- 筋トレが趣味で、週 4 日ジムに通っている(以前は週 5 で通っていたが減らした)
現在の草の状況はこんな感じです。
記事執筆時点で 109 日間草を生やし続けることができました。
きっかけ
毎日草を生やそうと思ったきっかけは Ruby の父である、まつもとゆきひろ氏の github アカウントを見たことがきっかけです。
なんと 2 年以上も毎日コミットを続けており、本日現在も継続されているようです。
まつもとゆきひろ氏ほどのつよつよエンジニアであっても毎日コードを書き続けていることに感銘を受けて、自分も真似してみようと思い始めてみました。
ルール
毎日草を生やすにあたって以下のルールを定めました。
- 業務外でコードを書く(業務でのコントリビューションは含まない)
- コードを書いて草を生やす(issue と PR のコントリビューションは含まない)
- コミットする内容はなんでも OK
基本的には上の 3 つだけです。
3 番目のルールは緩いかと思われるかもしれませんが、まずは毎日コードを書く習慣をつけるためになるべくハードルを下げて行いました。
基本的には勉強したい技術を使って Web アプリを作りつつ、書籍や Udemy 講座のサンプルコードを動かしただけのような日もありました。
どうやって継続したか
前述の通りまだ小さいこどももいるため、独身時代のような自分だけの時間は限られています。
毎日草を生やすために工夫したのは以下のような点です。
規則正しい生活をして、毎日決まった時間にコードを書く
どんな簡単なことであっても毎日継続することはとても難しいです(たとえ腹筋を 10 回だけという目標でも)。
そのために大切なことは、規則正しい生活をして日々の時間を固定してしまうことです。
私は何か特別なことがない限りは、毎日(平日・休日問わず)同じ時間に起きて、同じ時間に寝るようにしていますし、勉強をするために PC に向かう時もだいたい同じ時間です。
受験勉強等でも言われることですが、とりあえず手を動かしてみることが大切なので、とりあえず毎日同じ時間に PC に向かってエディターを立ち上げます。
基本的にコードを書いているのは始業前の 1 時間程度と、子供が寝てからの 1〜2 時間程度です。
ありがたいことにリモートワーク(週 3 日)+フレックスで働かせてもらっているので、勉強時間は確保しやすいです。本当は朝の時間をもっと増やすことは可能ですが、ジム通いはやめたくないので、ジムに行く日は短めになります。
家族の理解を得る
とても大切なことだと思います。妻の協力無しでは続けられませんでした。
小さいこどもがいると、本当に自分の時間がなくなります。
完全に目を離すことはできないし、ミルクやおむつ替えを定期的に行わないといけないし、時には延々と寝かしつけをしないといけなかったり(だけどめちゃくちゃかわいいので幸せです)。
前述の通り、勉強時間を固定してしまって、その時間のこどもの世話はお願いしています。
また勉強時間を確保するために、食後の皿洗い等を免除してもらっています(感謝!!!)。
(休みの日の掃除や洗濯は行っています。。。。)
技術に興味をもつ
好きなことや、楽しいと思うことでなければ続けることは難しいです。
Zenn や Qiita や Twitter を見ながら、次はこんなことをやってみたい、こんなことができるようになりたいと毎日妄想しています。
草を生やし続けて良かったこと・悪かったこと
良かったこと
- コードを書くハードルが下がった
- 少しだけ技術力がついた
職業プログラマーの方にとっては当然だと思いますが、毎日 PC に向かってコードを書くことが自分の中で当たり前になりました。
プログラミングに興味を持ち始めたばかりの頃は、何を書けばいいかもわからないし、エラーに遭遇すると投げ出したくなることもありました。
コードを書くことが当たり前になったことが一番の収穫であると考えています。
二つ目はまだまだですが、すこしずつ知識が広がっていることを感じています。
入社当時は自社のリポジトリを眺めても、なにがなんやらでしたが、最近は徐々にコードの処理を追えるようになってきました。
悪かったこと
- 草を生やすことが目的になってしまった
- インプットの時間が減った
やはり毎日続けているとどうしても時間がなくて、「とりあえずコミットしておこう!」となってしまう日もありました。
最終的な目標はエンジニアとして技術力を上げることなので、なるべく意味のあるコードを書いてコミットできるようにしていきたいです。
またトレードオフですが、以前よりも本を読む時間が減ってしまいました。アウトプットとインプットをバランスよく行うのも難しいなと感じています。
何が変わった
コードを毎日書く中で以下の技術を経験することができました。
- 言語
- JavaScript
- TypeScript
- フレームワーク
- Vue.js
- Express
- その他
- GitHub Actions
- googlemapAPI
- sass(BEM の学習をした)
コードを書く技術はまだまだですが、以前よりも知識が増えて、プログラミングをより楽しめるようになりました。
またコードを書くことを習慣化したことで、だらだらと過ごすことが減り、限られた時間を効率的に使えるようになったことがとてもよかったです。
いつまでやるか
とりえず 2023 年の間は毎日草を生やすことを目標にしています。
ですが、前述の通り草を生やすことだけが目標になってしまったり、インプットする時間が減ってしまうので 1 年間達成できたら、毎日チャレンジはやめようかと思っています。
さいごに
毎日草を生やし続けることに挑戦し始めた当初は、「途中でやめてしまうかも」、「毎日書く内容なんてない」と思っていましたが、なんとか続けることができました。
仕事でプログラミングに触れる時間が増えてきたからということもありますが、確実に以前よりも技術に対する興味が増して、プログラミングが楽しいと思えるようになりました。
色々な環境の方がいると思うので一概に毎日というのは難しいかもしれませんが、駆け出しエンジニアの方にこそ継続してコードを書くことをお勧めしたいと思います。
Discussion