-
Notifications
You must be signed in to change notification settings - Fork 66
Description
此篇偏廢文風,資訊含量可能較低,請自行過濾需要的資訊,感謝。
個人背景
不太擅長時間管理的拖延症患者。平時慵懶得什麼事都不想做,但偶爾寫程式到興頭上也會捨不得離開電腦去吃飯睡覺。從園藝系畢業之後做了一點作物分析的工作,那時候接觸到 R 語言與 MySQL 並以此寫了些 API。在學時有參加 ccClub 讀書會,結業後用 python 寫爬蟲 & 聊天機器人作結。報名選擇 A 方案,在家全職學習。
為何選擇 Lidemy
做作物分析時遇到很多困惑的地方。那時候都以解決問題為導向,上 Stack Over 大致了解解法與成因後就盡快接著做其它事。久了感覺自己獲得的電腦科學知識過於零碎,對於整體概念還是很不懂,於是想從基礎開始學。由於看不懂這領域一大堆名詞代表的意義,也不知道該從何開始學,決定先找個課程跟著走。
先是看上 Udemy 上教網頁的課程,其實內容跟 Lidemy 差別不大,教前端御三家、react,後端用 MongoDB、Express。花兩個月走馬看花,課程中帶到幾個關鍵字:Hoisting、Event Loop、Prototype。為了搞懂它們到底在幹嘛,上網搜尋發現 Huli 的文章讀得最順。Huli 的文章猛在他不會用一堆名詞轟炸你,反而把前後文交代得很清楚,所以新手去讀也能有一定程度的理解。雖然字很多但讀起來不會感到煩躁。
看多了 Huli 的技術文,開始好奇他如果寫廢文會長什麼樣子,隨著好奇心東翻西找,也就翻出 Lidemy 這個計畫。發現近期內打算開第五期,基於閱讀技術文建立的 Huli 信仰,這一定要參加的吧。我胡椒粉我驕傲。
報名準備
畢業那陣子情緒還蠻低潮的,為了轉換心情就把報名信當廢文在寫,好爽。下圖是我的報名信部分內容。
那陣子在玩寶可夢劍盾,Scratch 作品原本打算做寶可夢對戰,研究到一半覺得弄背景很煩,就隨便找個打磚塊的教學跟著做,再調整一些計分與生命值的功能就交了。CodeWar 似乎只需要寫三題,不過越寫越有趣就把報名條件上有列的題目都寫完,中途發現 JavaScript 各種好看的高階函式的妙用。
課程內容
基本上乖乖的跟著課程安排一週一週走。第零週心態培養的文章蠻推薦去閱讀的。以前看到厲害的人都會反過頭來責怪自己為什麼這麼廢、什麼都做不到。現在比較能認清自己和別人的差距。別人厲害那佩服他就好,自己只要維持原有的步調,持續往前總會有個適合自己的地方。也不是說讀完文章馬上就能培養好心態,不過可以知道別人遇到這個情況是怎麼想的、有什麼建議,在玻璃心碎滿地的時候好好思考,下次再玻璃心碎就能更快地復原。
盡量把當週的文章看完、挑戰題做完。前期內容沒那摩多,會有比較多閒暇時間,我通常都拿來耍廢或是把課程有興趣的部分再看深一點,基礎打好後面遇到問題會更有頭緒。例如第四週講到網路基礎,我有去看 鳥哥 Linux 私房菜網路概念 的章節,雖然過一陣子細節忘光了,但遇到後面虛擬主機設定時,對子網路遮罩之類的概念沒什麼障礙。這時主要各種練習切版。實在沒什麼美感,所以有設計稿可以參照時真的很舒服。不然沒設計稿的作業畫面都被我亂搞,覺得功能面有做出來就很及格了不要太追究畫面。
後期每週的內容可能被塞比較滿,或者需要比較多時間理解時,我選擇在時程之內盡量把課程的內容完成,沒時間就放掉一些挑戰題。因為很怕進度落後造成的壓力,讓玻璃心碎光之後躺在地上爬不起來,所以選擇以跟上進度為主。如果不怕壓力,我覺得好好把當週知識補齊再往前還蠻好的,畢竟知識都是互相關聯的,底子紮實後面遇到的問題就能更好理解。
因為課程開始前就決定好要走後端,所以 20 週以後的東西真的都沒學。老師建議是回頭把 14、17、18 週的挑戰題補完。身為一個專業的拖延症患者,當然到現在都沒做完XD。那別人學前端框架的時候我在幹嘛?做各種想做的事情,主要是耍廢。反正在 19 週左右又因為各種原因開始心情低落,快速把沒什麼興趣的 19 週課程影片看完後,趁著天氣轉涼冬眠了幾天,期間就是睡、吃、打開塵封已久的薩爾達荒野之息到處晃晃、在網路到處晃晃看別人心得或廢文、在現實到處晃晃呼吸新鮮空氣。狀態稍微回復後,寫了一些 14、17、18 週的作業。在 FB 社團看到別人有讓 localhost 使用 https 的討論。也看到 ngrok 的服務可以滿足這個需求,在簡單了解架構後試著實作。也有看看老師推薦的鐵人賽文章、玩玩 docker、看看 OAuth 之類的驗證模型長怎樣之類的。在網路的世界走走看看,遇到好奇的東西就停下來觀察。
期末專案
想寫一個方便查詢某手遊資料與攻略的網站,但一直在煩惱版面還有資料來源的時刻,看到 Dylan 在 Mattermost 尋找登山作為主題主題的專案組員。太無情了 Dylan,你真的太無情了。我只好直接捨棄構思到一半的專案,跳進去當吸奶仔。
我們小組有五個人,安排是一個主要負責前端,一個負責後端,另外三個支援兩邊。做為一個不碰畫面的後端,光是用課程之內學到的東西構成專案後端,有點過於簡單沒什麼亮點。可以思考看看如何資料庫設計(更深的如 index、正規化與反正規化)、API 怎麼設計(風格如 RESTful/RPC/GraphQL 的選擇、query string 帶資料的形式)、文件要怎麼寫才能讓前端比較好懂(Swagger、JSDoc)、身分驗證的機制(JWT、session、cookie)、存取控制(RBAC 或其它)、快取機制等等,很多可以深究的。找有興趣的東西為你的後端加點料,面試比較有東西可以聊。不過更多時候,是因為正在做的東西有需求,才發現有新的東西可以學。
不管要走後端前端,課程之後找幾位組員合作一個規模較完整的專案還是挺不錯的。很多盲點在多人協作之後才會碰到,完成之後好好檢討實作時心理堆積的那些「早知道……」,下次協作就能夠更順利。
求職準備
目前還在求職,可能拿到 offer 之後再回來補XD
Lidemy 在求職方面提供蠻多資源的,例如準備面試就有專門的課程,也有 Line 面試衝刺群練習口說,也能和老師、助教或同學討論履歷該怎麼寫。因為有真正在業界工作的人的建議,比較知道哪些資訊需要提供,哪些偏冗可省略。不然我大概會浪費一堆時間寫履歷的自傳吧,寫起來痛苦又沒人想看。
技術題方面覺得範圍太廣了,佛系準備。先複習作業的簡答題和上課筆記,確認自己都有弄懂。偏記憶方面的細節有點懶得追究,被問到不會再去確認。感覺這些是老師累積許久的面試問題精華,命中率挺高的。因為怕遇到白板題愣住,打算把常用的資料結構演算法實作一遍,再看看要不要寫 leetcode。作業系統、網路、資料庫方面的問題則是打算遇到不會再去查。
原本只想投 Node.js 的後端,可是投一陣子感覺好像沒人要我QQ。所以開始不管語言隨意投,總之先累積經驗再看看,途中有拿到喜歡的 offer 就當賺到吧。
總結
在 Lidemy 學到最重要的,我覺得不是技能本身,而是在心裡有張電腦科學領域的地圖。之後遇到問題就能知道自己是欠缺哪方面的知識,有方向地去補強,不用像無頭蒼蠅一樣亂撞。
老師也蠻鼓勵大家問問題的。記得在某個地方看老師說過,如果課程中遇到問題卡超過一天(還是半天XD)就建議去問人。一直卡在那邊也無濟於事,花太多時間解如果跟不上課程反而成本更大。在認真思考過後還是不會的話,我也推薦把問題釐清後拿去問爆老師、助教或同學。不過還是要交代清楚問題產生的前後文,不然考驗的會是對方的通靈能力。
大概是這樣吧。在這裡學到很多,同時又覺得自己還是什麼都不會,不過比起半年前感覺踏實得多。步調也比較不會被別人拉著走,能依自己的節奏到處走走看看實在太棒ㄌ。
感謝學習過程中能有休息週小遊戲與廢文時間、老師的隨意聊、助教的 podcast 陪伴。突然有點懷念睡前邊玩健身環,邊聽助教聊工程師工作及機械式鍵盤的生活。
