(本文轉載自 ALPHA Camp 學員 Jerry 的學習心得)
起點
我是 Jerry,大學時唸的是應用外語,主修是翻譯相關。畢業後沒有從事相關工作,進入鋼鐵業的原料採購。工作了三、四年後,不甘願就這樣下去,想要轉換跑道,卻發現自己沒有任何優勢,只能羨慕有「技能」的人有較好的收入。在反反覆覆不斷質問自己到底要什麼,終於打定主意,認真建立 coding 技能,準備轉換職涯。
認識 ALPHA Camp
2018 年底時,從網路上文章得知 ALPHA Camp,那時才剛開始學程式,剛決定要做些不一樣的嘗試,剛開始看線上影片課程,剛習慣每天晚上跟著影片打兩三小時的 code,假日沒有特別的事就是繼續看著線上課程打 code 的日子,一切都很剛開始,那時才學了基礎的 HTML,CSS,正在試著刻靜態版面,刻得很懷疑人生,有時真的不知自己的寫法有沒有什麼問題。
花了些時間看完 ALPHA Camp 的課程網站及部落格後,覺得太悔恨了,為何現在才知道 AC!
那時「學期一:暖身」剛結束,正在進行「學期二:啟程」的報名,而且好像很搶手,感覺快要截止似的,我評估了一兩天,就趕緊報名學期二,並表明因為有時間壓力,希望能從學期二開始,且根據我當時的學習進度,我應可很快跟上其他同學腳步,感謝 AC 助教的諒解,在 2019 年初順利站上學期二的起跑點。
(註:AC全端開發課程已改版為三學期,從程式設計入門、掌握網頁開發、到軟體工程師養成,讓不同職涯和學習目標的人,能夠客製化找到自己的路徑。)
AC 教材設計
用了大量的文字及圖表來呈現教材,有些實際操作的部分用影片呈現後,仍有完整圖文並茂的教材可以看,而非全部都是影片教學,這點對我來說比較容易吸收,全部都以影片教學的情況下,好處是可以一步步跟著影片打,但之後要再複習會非常花時間,而且難以查找先前的資料。
從教材內容中,可以感受到設計者很注意在適當的進度放適量的內容,每個階段的目標也都很明確,學生可以快速掌握學習目標。在點開新的課程時,我通常會把學習目標看完,在讀完教材後,回過頭看看是否有達成學習目標,補充教材的部分,有些沒有辦法細讀,也會盡量大致看過,作業完成後有時間再回頭補完。
每週作業
我了解自己並非自制力非常好的人,若是只看著影片課程學習,恐怕到高雄挖出石油了我都還沒成功轉職,我這種人就是需要訂出死線,逼自己在時限前完成某件事,這件事不需要很大很難,但要能夠有一點進度,讓自己有在慢慢往前進的感覺。
「學期二:啟程」課程一共有 8 週,每週的課程一開放後,我會大致瀏覽每個單元的內容以及實作的小 project,對這週的進度掌控有個底,但基本上每週我的進度目標都是在禮拜五前完成課程內容,禮拜六日完成作業,逼自己一定要在禮拜天截止前完成當周作業。
為什麼一定要拼禮拜天?還不是為了助教的講解!每個人在學習過程中一定都有盲點,透過助教提供的回饋,我可以找出自己在寫作業時的盲點,每每都有茅塞頓開之感,重要的是,助教通常用引導式的回饋,幫助我們想出還有沒有可以更精進的寫法,透過這過程,可以刺激自己從不同的角度來看自己的作業。因此,就算覺得自己寫得不是很滿意,但只要有完成作業的指定內容,還是會趕在 deadline 前繳交。
在打作業的過程中,除了以目前為止所學的 skills 以外,若遇到真的打不出來的語法、做不出來的效果、切不出來的版型,我會用力去 Google,現在取得資訊的成本太低了,只要用對方法,在 MDN ,w3school,StackOverflow,以及許多前輩的技術部落格大概都有解答。
再者,還能觀摩同學作業,同樣一個功能,每個人的寫法都不會一樣,卻都能完成相同的目標,我想這是程式很有趣的點之一,在讀同學作業的過程,除了可以學習不同寫法,也在練習讀 code 的能力,以及讀 code 的速度,刺激自己從不同人的眼中去看同一件事,可以學的東西太多了。
通常繳完作業後,我會找時間觀摩大神同學的作業,以及助教給同學們的回饋,很多都是我自己也遇到的問題或是犯的錯!但自認這學期看同學的 code 看得還不夠多,且沒有留下什麼 peer review,在下學期務必要改進這部分。
社群
學習平台 Lighthouse 上很有趣的一點是,建立了一些類似社群軟體的功能,像是可以看到每個同學的 profile,簡單瞭解這個人。若有人發問或留言,所有人都可以看到並且回覆會設定追蹤,從其他同學的問題中,常常可以看到自己同樣遇到的問題,或是沒有注意但其實蠻重要的問題。
在 FB 社團中看到許多同學的故事,每個人都有天南地北的經歷,我們卻可以在相同時間有相同目標,進而認識彼此,這也是我學習的動力之一,知道有許多比自己強很多的同學也在拼命學習,自己沒有理由也沒有辦法怠惰。
不定期的線上工作坊讓同學之間能夠有機會與助教互動,即時解答問題,透過分組討論的過程,可以有機會跟同學交流想法,一起解題的過程中,雖然時間不多,仍可以學到不少。雖說在 lighthouse 上也能進行很多交流,但聽到活生生的人在講話還是能比較快拉近距離!
時間管理
我不是三歲自耕農,爸爸也沒有捐幾千萬給哥倫比亞大學讓我唸書然後畢業後當悠遊卡董事,只是個朝八晚五、必須養活自己及兩隻貓的上班族,暫時沒有辦法辭職後全職學習,要在工作、家庭及日常生活瑣事中排定好時間,並且每週按部就班完成進度,真的是要用點毅力才辦得到,基本上我的休閒娛樂時間都是在 learning to code 了 。
平常日每天下班後到家約六點多,整理完後理想狀況從七點半開始到十一點都是學習時間,這樣一到五理想情況會有約 16~17 小時可學習,為何一直說理想狀況呢,只要家裏有事,或是晚上應酬,通常就會掉到 10~12 小時左右,而這其實才是常態,畢竟不是全職大學生(好羨慕好懷念),日常生活中總是有一堆身不由己又不得不做的事。
假日的話,扣掉家庭相關的事務,在學習上平均可自由運用時間大約是 20 小時,因此一週我大約會花 30 小時把當週的課程完成,其實不管怎樣都會覺得不夠用,只能做更有效率的計畫及運用。
平常日在閱讀課程內容時,若有小作業需實作,我會盡量在當天看完教材後立刻完成,若真的來不及在當天完成,我也會盡量動手做出一點進度,確保自己在看完教材後記憶最清晰的當下,實際自己動手做,以加深印象,否則很容易隔天再繼續時,還要花許多時間重看教材,反而事倍功半。
過去這八週我認為自己在上課或是做作業的過程中,偶爾會浪費了太多時間鑽牛角尖或是卡在一個小問題上,應該儘早尋求協助,這部分在接下來的課程「學期三:核心」要做改變。
學期二的代表作
跟著課程作業的要求,走完八週之後順利地累積了幾個小作品。當中比較完整的就是下面這個「ALPHA Dating」交友網站。在 CodePen 這個前端開發工具上,透過 JavaScript 寫出互動式動態網頁、串接 API、並手刻幾個常見功能:搜尋、收藏、移除蒐藏、分頁等。雖然還是個小作品,還是充滿了滿滿的成就感。
下一步
整體來說對於自己在學期二走到現在,雖然算是完成了一個小階段,仍很多要加強的,比方說我覺得儘管在一些語法上的操作算熟悉,但有一些事件的基本原理還不是理解得非常透徹,這部分要趁學期三開始前的小空檔補上,將這些不熟的部分整理成學習筆記到 Medium 上,必須養成這個習慣。
很多人可能會想、偶爾會疑惑:我這樣繼續下去真的會有辦法 ______ 嗎?(空格可填入任何自己的目標)
the answer is …
我們常常高估自己短期能做到的事,卻低估了自己長期能完成的事。最近時常提醒自己這句話,要按照適合自己的步調、堅定地繼續學下去。