それは年末の夜の出来事でした。
とあるミートアップに参加した僕は、隣の人が優しそうなオーラを出していたので、話しかけてみることにしました。
すると、その人はIBMやYahoo!で働いたことのある凄腕エンジニアだったのです。
凄腕のくせに物腰柔らかい、いわゆる最強タイプの人だったので、率直に質問をぶつけてみました。
「どうすればあなたみたいな最強エンジニアになれますか(しかも物腰やわらかい)」
すると彼は「焦らずにコンピューターサイエンスの基本から学ぶことが大切だよ」とアドバイスをくれました。
確かに、ブートキャンプ以降ずっと浅はかな知識で、行き当たりばったりでコードを書いていた僕。
何か基本が抜けたまま、フレームワークとか使っちゃって大丈夫かよと思っていたところだったので、なかなかビンゴなアドバイスでした。
そして彼は、ハーバードのCS50とか無料で見れるから見てみれば?という具体的なアドバイスもくれました。
「あっこれは、ずっと前に話したエンジニアの方がオススメしてくれたやつだ」
と思い出しました。
しかもたまたまこないだ読んだ記事(働きながら独学でソフトウェアエンジニアになったよっていう記事)でも紹介されていたやつだと思い出しました。
これは見るしかない。ハーバードのCS50見るしかない。
そうして僕は遂にハーバードのCS50を見ることに決めたのでした。
ハーバードCS50の感想
ってなわけで新年早々いつもより早起きをしてCS50を見始めました。
率直な感想は、本当にみてよかった。です。
これをみて何かが作れるようになったり、即効性があるものではないですが、プログラミングの基本をじっくりと理解できた気がします。
どんなところが良かったか簡単にまとめてみます。
コンピューターサイエンスの基本のキ!
ブートキャンプでは、3ヶ月間でいかにウェブアプリケーションを作れるようになるのかというところにフォーカスしていたので、そもそもの「プログラミングとは」ということについてはほとんど学びませんでした。
というか多分そういうのは自分で学んでおけというスタンスかなと思います。
そんな感じで僕のコーディングスキルはハリボテ感満載でした。
ハリボテ感満載のコードを書き続けていると、たまにData Structureの記事をみて、
全然話についていけず、「あれ、コードを書いてるくせに、こういうのわからないのはやばいんじゃないの?」という気持ちになって来ます。
そんなハリボテプログラマーが1からデータタイプなどを学ぶ最適な場所でした。
CS50では、まずCを使ってData Structureについて学びます。
Cなんて使ったことねぇよとなるわけですが、すごくわかりやすいんですね、これが。
このCを学ぶことによって、JavaScriptをカチャカチャやっているだけではわからなかった、プログラミングの仕組みを理解できた気がします。気がね。
その後、PythonやJavaScriptを使ってWebの話になるわけですが、Cとの比較が毎回出て来て、なるほど言語によってこうも違うのかという発見がありました。
Web系の勉強はブートキャンプやチュートリアルを通して一周やった感はあるので、このタイミングでプログラミングの基本のキを学ぶことができて、色々整理された気がします。
これを全くプログラミングの知識がない時点で始めたら、どこまで理解できるかなと考えながら受けてましたが、まぁこのタイミングで受講してよかったかなとも思います。
(ハーバードの学生は、全く知識のない人が初めの一歩として受講しているようでした)
ハーバードの生徒気分を味わえる!
飽きずにみれた理由は、とにかく面白い。
こんな授業があれば、ちゃんと大学の授業受けていただろうなと思います。
さすがハーバード。
Data Structureの説明は言葉だけの説明ではなくて、目で見て理解できるように色々な工夫がされていて面白いです。
こんな感じで生徒に実際に列になってもらってデータのソートをやってみたり。
授業中に質問コーナーが何回もあるんですが、みんなすごい積極的に質問するんですね。
しかも質問内容がしっかりしてる。
さすがハーバード。
そんなハーバードの雰囲気を味わえるのもこのCS50の魅力かなと思います。
まとめ
そんな感じでオススメなんです。CS50。
CS50とググればいろんなところで無料で見れちゃいます。
終盤でYoutubeで見れる事を知ったので、最後はソファに寝っ転がりながらTVで観ました。
序盤はちゃんと学ぶぞって姿勢で見る事をオススメします。
コメント
映像に出てる教室でかすぎない?!
僕もそれ一番最初に思った笑
しかもめちゃくちゃ重厚感あってかっこいい。さすがハーバード
[…] プログラミングの面白さを教えてくれるハーバードCS50がオススメそれは年… […]