今日もキャリアブレイク中に具体的にやっている勉強について書きます。その②は「コンピューターサイエンス(以下CS)」です。
コンピューターサイエンス
自分は低レイヤーの知識はどちらかと言えば避けている方でした。ただ最近は考えが変わってきて、実際触れてみると低レイヤーを知ることが面白くなってきました。特にCSは、プログラマとしても抑えている方が絶対強いという話も聞くし、休みがあったらやってみたいと最初に思ったのがCSの勉強でした。
CS50
CS50:Introduction to Computer Scienceはハーバード大学が公開しているオンライン公開講座です。なんと無料で公開されていて、誰でも受講でき、かつ日本語字幕が付いています。しかも自動翻訳ではなくて有志が付けてくれているので、映画の字幕レベルで全くひっかかることなく視聴出来ます。素晴らしいー
CS50の使い方
自分のやっている読書方法を始めてから集中力が上がったので、記憶に定着しやすいかなと思い、メモを取りながら見ることにしました。この動画は資格も取れる(esXで登録して、$219を出して、問題の提出も必要)みたいですが、自分は価値を感じなかったのでやりませんでした。問題も1回だけ提出しましたが、簡単だったのでそれ以降はしてないです。
Discordメモ
今回はキャリアブレイク用に作った自分専用Discordにメモしながら聞きました。Discordを選んだ理由は何となくが一番大きいですが、マークダウン表記が使えるし、後からでも編集できるし、チャンネルで分けられるので情報が混じらないし、結果的には最適だったと思っています。興味がある人が居ればのぞいてもらえるのも良かったです。
実際のやり方
動画を見る。良い内容や気になることがあったら、一時停止して、メモる。コードに関しては実際にCS50が提供してくれるCodespaceを使って写経です。結構頻繁に一時停止するので30分見るのに大体1時間、つまり2倍の時間をかけて見ています。無駄に時間をかけているかと思われるかもしれませんが、自分にはこのスタイルがとても合っているように感じます。
ペース
ペースとしては基本は1日最大1時間にしています。色々あって30分ぐらいの時もあるので、11月では「Week0 Scratch 、Week1 C、Week2 Arrays」を見て、もうすぐWeek2が終わる所です。大体1week2時間なので、単純計算で12時間ぐらいかけて見ています。仕事なら大体20日稼働なので、少な目に感じるかもですが、それほど悪くないペースかなと思います。
2021と2022の違い
CS50jpは2021と2022があります(esXにはもっと最新もありますが、日本語はありません)。教えている年によって若干の違いはありますが内容はほぼ同じです。Week 0は気づかずに2021を見て、新しい方が良いかと思いWeek 1を2022で見たのですが、2022は生徒の質問が聞こえないというマイナスポイントがありました。そこでWeek 2で2021に戻しました。内容を補足するLabやProblem Setなども2021にしかないので、ずっと2021を見る方が良い気がします。
見ての感想
ハーバードの教授が教えるのできっとハイレベルな前提が必要と思っていたのですが、ものすごく丁寧に一歩一歩進んで行きます。決して簡単な話だけでもないですが、この進め方なら正直小学生の息子であっても見せたら分かるかもと思えるぐらいでした。CSを勉強したいと思っている人は誰でも絶対に見た方が良いと思います。プログラムの話も結構出てきますが、あくまでプログラムではなくCSを教えるのがこの講義です。
まとめ
というわけで、キャリアブレイク中の勉強の1つとして毎日1時間CS50を学んでいますが、これは本当にめちゃくちゃ良いものを選んだと思っています。今後の自分の仕事に直接役に立つかは分かりませんが、プログラマとして血肉になっているのは強く感じます。