CS50

2014~2015 當時 MOOC 正熱門的時候,出現了好幾個以世界頂尖大學、大師級講師開放課程為號召的網站,如 coursera, edx......等等。當時自己在 edx 註冊就是為 了訂閱 號稱是最夸的哈佛通識課,沒學過任何程式語言但修完這十來週課程後就可會寫程式的 CS50 開放課程。當時自己一陣跟風,回顧過往現在居然找不到自己留下任何支字片語的記錄,果然是船過水無痕,想來自己當時也只是看看影片並未認真地跟著作完每週作業習題。這種半調子的學習態度,當然是打水漂:好像有學到什麼但其實什麼也沒真正學到。大概就是這種狀態,讓我這個文科生想自學電腦程式語言,老是會遇上嚴重的卡關撞牆屏頸:要搬要抄程式代碼很容易,但重點自己欠缺最基本的思考解題能力。如何強化這方面的訓練呢?道聽途胡地故再次註冊 CS50。

對於再次重修 CS50 的自己,一開始要做好心理建設: 1) 要相信這門課值得認真地投入學習,即使自己不是哈佛高材生,但凡認真還是會有所收獲。2)CS50 是打基礎的通識課,不要貪心不要求快。3)想清楚自己學程式語言的目的是什麼,就算標準放的很低(打發時間之類的),讓追求目標的過程中得到一點自我肯定。

因此為了建立上述良好心態的準備,這回作了以下工作

  1. 除了 CS 50 正規影片外,前一兩週多從 YT、網路上聽聽看看別人談他們上 CS50 的心得,大概就是類似用戶評價的安心感吧。
  2. 利用ticktick 軟體,每一週開始之前給自己訂下功課進度待辦事項,且天天寫大大小小的心得瑣碎記錄。todo list 對我這種輕微的強迫症者還算有不錯的效果。至於每天的學習日記,除了邊上課時隨手手寫在紙本筆記的重點摘要外,隔天清晨會把前一天從 CS50 學到什麼東西,拉拉雜雜地寫成一則日記(markdown 格式)。而寫作業習題時,也會把遇到的問題或想到的解法觀念一併記錄下來。這部份利用電腦作的筆記,每天會整理更新在 git repo ,因此很方便用 visual studio code + git 在不同的設備上追蹤更新。
  3. 訂閱鋰學院的 CS50 中文導讀課程,雖然自己並沒有完整跟上每一週的中文課”陪讀”(例如自認該週的上課內容自己掌握得很足夠了,就不會把時間再花在鋰學院的影片。)

目前上到 week3,以 index 0 起算,該是整整滿三週,進入第四週演算法。目前為止遇上較大的困難,大概就是如何讓自己可以靜下心來想習題作業,每天維持練習寫代碼的習慣。就算手邊沒有筆電桌機沒有紙筆,也可以用用腦袋想題目,特別是如何化繁為簡,再由簡入繁。