プログラミング

プログラミングを習慣化したいなら #100DaysOfCode をやるべき

初カキコ…ども。Kです。

札幌在住の20代後半の男性で、未経験からのITエンジニア転職を目指し、独学でプログラミングを勉強しています。主にPythonやってます。

先日、100日間プログラミングを継続して学習しつづけるチャレンジ、#100DaysOfCodeを完走しました。(やったー)

今回は #100DaysOfCodeを完走した感想をかきます。

#100DaysOfCodeに取り組んだ理由

Progateさんのこのツイートがきっかけです。

発端となったProgateのツイート。

元々海外発の企画ですが、日本ではこのツイートがきっかけでプチ流行したようです。5月末頃からエンジニアへの転身を考えてProgateをやり始めていたのですが、学習を習慣化させるいいきっかけかもしれないと考えて参加しました。

やってよかった点

プログラミング学習を完全に習慣化できた

期待していたとおり、プログラミング学習を習慣化することができました。いまではコードを打ち込んでいないとなんだかソワソワしてしまうほどです。ぼくは札幌に住んでまして、チャレンジの期間中に北海道胆振東部地震が起こり、その結果北海道全域が停電、ぼくの住む地域も丸二日ほど停電しました。被災して不安な気持ちになりながらも、頭の片隅で「プログラミングの勉強がしたい、チャレンジを途切れさせたくない」という気持ちが常にありました。幸い、充電済みのkindle端末があったので、暗い部屋でkindleでプログラミングの本を読み、事なきを得ました。

なお、学習時間はStudyplusで記録していました。100日で400時間ほど学習したようです。ニートしてフルコミットしたにしては少ない気もしますが、どうなんでしょう。

プログラミングに関する見識が広まった

100日も勉強してれば当たり前ではありますが……それまで自分とは無関係の異世界だとおもっていたプログラミングやITエンジニア界隈についての理解が広がりました。SIerとWeb系、ウォーターフォールとアジャイル、DevOps、フロントエンド、バックエンド、動的型付けスクリプト型言語、静的型付けコンパイラ型言語、手続き型、関数型、オブジェクト指向、フレームワーク、ライブラリ、RDBMS、NoSQL、hogehoge、fugafuga、foobar、マサカリ、LT……などなど上げたらキリがなく、且つ完全に理解したとはいえないですが、プログラミングやその界隈について「雰囲気はつかんだ」「何を知らないのかを知った」という段階まではこれたようにおもいます。思い上がりかもしれませんが。

知識のインデックスを増やすようなイメージで勉強せよ、とMatzもいっているので、このあたりは間違ってなかったかなとおもってます。

こうすればよかった!と後悔している点

「ものをつくること」にもっとフォーカスすればよかった

これにつきます。ぶっちゃけ、未経験独学でITエンジニアに転職するには自作のポートフォリオがないと話になりません。チュートリアルでつくったものを除けば、チャレンジ期間中にぼくがつくったものは以下のとおりです。

この100日間でぼくがつくったもの

  • ち○ち○の画像を押すと「ちーん♪」と音がなり、カウントアップする、その名も「無限ち○ち○ボタン」
  • 献立を決めるのがめんどくさい、という思いからつくった、「今日の献立決めるくん」(iOSアプリPythonistaで制作、iOSアプリとして動作)
  • 「つくおき」というレシピ本の買い物があまりにもめんどうなことから、ネットスーパーの注文を自動化するスクリプトを制作(Seleniumを使用)

どうですか。ひどいでしょう。しょぼいでしょう。しっかりと目標を定めて取り組まないと僕みたいになるので注意してください。こうならないために必要なことは下記の2点です。

何を学ぶかのスコープを決める

プログラミングは非常に幅広いです。できる限り範囲を狭めて学ばなければ、表面的な理解にとどまってしまい、深い理解に到達できません。フロントエンドなのかバックエンドなのか、PythonなのかRubyなのか。何を学ぶのか決めましょう。僕はいろんな言語に手を出して時間を無駄にしてしまいました。チャレンジをはじめて40日ぐらい経ってからPythonのみにフォーカスして勉強をしはじめて、ようやく学習が加速しました。

基礎はそこそこして、小さなものをいっぱいつくる

基礎は大事ですが、基礎にとどまりすぎるのはよくありません。基礎はそこそこにして、早めにものをつくりましょう。しょぼくていいんです。むしろしょぼいものをつくりましょう。そして、つくっていくなかで様々な疑問が浮かんできたら、都度本や教材に戻って調べればいいんです。そのときに学んだ内容が、1番自分にとって血肉になります。

まとめ

プログラミングを習慣化したいなら #100DaysOfCode にチャレンジすることは非常におすすめです。#200DaysOfCodeの達成を目指して勉強していきます。