どうも、ウェブ系ウシジマくんです。先日、自分に課していた100DaysOfCodeチャレンジをやりきったので、振り返りも兼ねてブログにまとめてみました。
100DaysOfCodeチャレンジとは?
【プログラミング学習の100日チャレンジをしませんか!?】
100日間プログラミング学習を続ける「100DaysOfCodeチャレンジ」という取り組みが世界中で広がっています!参加は簡単、「#100DaysOfCode」をつけて進捗をTweetするだけ!みんなで楽しく習慣化しましょう!詳細ルールはリプ欄をcheck!— Progate@プログラミング学習 (@progateJP) June 15, 2018
100DaysOfCodeは、文字通り100日間プログラミングを行い、その進捗をTweetするというもの。
Progateの「にんじゃわんこ」いわく、どうやら世界中で取り組まれているらしいですね。
何事も習慣化されると、実力が比例して伸びていくと言われているので、今回この100DaysOfCodeにチャレンジしようと思いました。
100DaysOfCodeをこなすためのマイルール
Progateが提唱しているメインルールは、
【メインルール】
■100日間、毎日プログラミングをすること
※たまに休むのはもちろん大丈夫です!
■以下の内容を含めて毎日進捗をTweetすること
1.何日目であるかを書く(Day1等)
2.ハッシュタグで「#100DaysOfCode」をつける— Progate@プログラミング学習 (@progateJP) June 15, 2018
上記のような形ですが、僕は別途次のようなルールを自分に課しました。
• 100DaysOfCode前半は、インプット中心
• 100DaysOfCode後半は、アウトプット中心
• インプットの際はGitHubにリポジトリを作ってコードを残すか、Qiitaに記事をアップする
現在リモートワークをしている自分にとって、業務中に学んだことをカウントしてもいいのですが、
それだと自分の中であまりしっくり来なかったので、あくまでも100DaysOfCodeはプライベートの勉強のみを対象としました。
100DaysOfCodeの後半は案件で学んだことを復習するような形でやっていたのですが、これはかなりいいアウトプットになりましたね。
現在参画している案件自体が最新の技術を採用しているので、
案件でキャッチアップ => プライベートの100DaysOfCodeでアウトプット => 知識の定着
このサイクルでプログラミングすると、自分にとっては早くスキルを伸ばせるということに気がつけたので、それだけでも100DaysOfCodeでの取り組みは大きな収穫でした。
100DaysOfCodeを続ける秘訣
100DaysOfCodeは文字通り毎日プログラミングをすることが前提なのですが、実際は毎日続けていたわけではありません。
リモートワークなので、自分が持っているタスク状況によっては、そちらを優先することがあったので、どうしても時間が確保できないこともあります。
もちろん、「なんだかやる気が出ないな。。。」ということもありましたよ。
でも、どんなにやる気が出なかったり、忙しくなったとしても、1行でもいいから着手するようには心がけていました。
そうすると、段々と夢中になっていて、5分だけやるつもりが、気がつけば2時間以上やっていたこともありましたね。
あとは、進捗を毎回Tweetすることで、人に見られているという強制力が働くのも大きいです。
別に途中で諦めたからといって、誰に怒られるわけでもないのですが。
ただ、やりきれば自分にとって大きな自信になることは間違いないし、やりきったことで、今回の記事のように振り返ることができますから、それが次の成長になればいいなと思って、僕は続けていました。
100DaysOfCodeをやりきって得られたもの
100日間というと、期間でいうところの3ヶ月。日数でいうと途方もない感じがしますが、月単位でみると意外と短いですよね。
今回の100DaysOfCodeで得られたものは、
• 達成したことによる自信
• 効率よくインプットとアウトプットする方法
• 自分が集中できる時間帯の明確化
• PDCAによる振り返りの習慣
• ググるスピードの向上
• データベース設計の基本
• 要件定義の基本
• フリーランスとして契約を延長してもらえる回数が増えた
• 今まで避けてきたフロントエンドのプログラミングに対する知見が増えた
ざっとこんな感じですね。
文字にすると抽象的ですが、いずれにしても、100DaysOfCodeをやりきらなければ、どれも得られなかったことは事実です。
100DaysOfCodeを達成して、できるようになったこと
プログラミングレベルで具体的にできるようになったこととしては、
• ChromeDeveloperToolの使い方
• フロントエンドのデバッグ方法
• GraphQLの使い方・実装方法
• Dockerの使い方
• Gitの応用的な使い方
• Ruby/Railsにおける基礎力向上
• RSpecのスキル向上
このような感じですね。
いずれも第一線で活躍されているエンジニアの方に比べるとまだまだなのですが、少なくとも1年前の自分と比べれば、プログラミングスキルはかなり向上しました。
まとめ
100DaysOfCodeの取り組みを通じて、僕はこれまで以上にプログラミングが好きになりました。
続ければ続けるほど、自分のレベルが上がっていく感覚がすごく楽しいし、成長の実感がわかるので、#100DaysOfCodeのハッシュタグをつけてTweetするというのはかなり効果的なやり方なのは間違いですね。
自分のペースでコツコツと続け、目標に対してやりきることができれば、スキルが上がるということがわかったので、これからも一歩ずつ前進していきたいと思います。
最後までお読みいただき、ありがとうございました。