從零開始學 TypeScript 計畫 - 總結與心得

從零開始學 TypeScript 計畫 - 總結與心得

雖然在公開分享自己的學習計畫時,曾經想像過最後一天的心情和模樣,但真沒想到時間咻——地一下就過了,恍如隔日啊!回顧這段時間,每天都過得非常充實,也很感謝自己在三週前做了這個決定。在這篇文章中,我將與大家分享這段學習之旅的總結和心得,希望能夠對其他正在學習的朋友們有所幫助。

學習成果

在這三週內,共邊學邊寫了 12 篇的筆記:

  1. 第一週第一天:認識與安裝 TypeScript

  2. 第一週第二天:原始資料型別與任意值

  3. 第一週第三天:探索型別推論與聯合型別

  4. 第一週第四天:物件型別之介面與陣列型別

  5. 第一週第五天:函式型別與型別斷言

  6. 第一週第六天:宣告檔案與內建物件

  7. 第二週第一天:型別別名與字串字面量型別

  8. 第二週第二天:元組與列舉

  9. 第二週第三天:類別與介面

  10. 第二週第四天:泛型與宣告合併

  11. 第二週第五天:程式碼檢查

  12. 第三週第一天至第五天:將現有專案改寫成 TypeScript

這些學習筆記在未來還將持續調整和補充部分內容,例如用索引簽名來說明任意屬性,以及 interfacetype 兩者之間的差異等等。

在統計筆記篇數時,意外發現很「剛好」地完成了今年為自己設定的其中一項 OKR「每月撰寫並發表一篇技術相關文章在部落格(共十二篇)」耶!(開心)

當初設立的學習目標「用 TypeScript 重寫以前做的小專案」也在第三週順利完成了,真切地感受到實作的重要性。除了透過回想觀念試著改寫,我也會翻筆記複習觀念,同時確認自己的理解與實作上有沒有差異,並再次檢視筆記有沒有寫錯的部分,或是需要補充說明的地方⋯⋯等,不僅能加深記憶也能找出自己的理解漏洞。

但如果要我再次執行這個學習計畫,我會調整節奏為一天學習,一天複習前一天所學的內容。雖然每天學習新觀念確實很扎實,但這樣的安排實際上會帶來相當大的心理壓力,因為只要工作和生活中遇到突發狀況,計劃和心情都可能受到影響。因此在計畫內保留足夠的彈性和緩衝空間是非常重要的,才能更加輕鬆不費力地持續學習下去。

完整的學習計畫目錄與筆記以及延伸閱讀都統一整理在從零開始學 TypeScript 計畫 - 目錄噢!

心得

這次的學習計畫其實也是一場實驗,我想透過這個計畫了解自己的學習力、理解力、執行力和抗壓力;同時也想研究 ChatGPT 能夠協助我完成哪些事;還有「公開分享」這件事對自己的影響。

先說結論,我認為「公開分享」是我能夠完成計畫並學得更好的一個關鍵。

過去想到「公開」往往只會看到壓力的那一面。但經過這三週的嘗試後,我發現只要掌握好與壓力距離,壓力反而能轉化為助力。

從我在各個社群平台公開分享自己的計畫那一刻起,我的內心便出現了一個代表其他所有人觀點的聲音。每當我感到疲憊時,那個聲音會重播社群上的留言與鼓勵,提醒我學習的初衷,並幫助我重拾意志力與動力繼續前進;而在我面對錯誤找到解決方案,想要草率帶過時,它會問我「真的只是這樣解決就可以了嗎?」「這個解決方法真的是正確的嗎?」「真的沒有其他更好的方式了嗎?」,讓我耐著性子深入剖析問題,直面問題核心。

讓我最有感的例子就是 TypeScript 的設定檔案 tsconfig.json。以前的我肯定只是找一個專案或是別人推薦的設定檔,直接複製貼上而不去理解其中設定選項代表什麼功能。

然而這次,當我有這個念頭時,那個聲音就問我:「你知道裡面設定的選項是什麼意思嗎?」「當你需要設定它時,好好學習它的用途後再加上也不遲,這才是真正為自己學習的方式吧?」

這個聲音的存在,讓我的學習體驗與以往埋頭苦學有很大的不同,也讓我明白為何許多技術大大都鼓勵工程師撰寫部落格:當你要為自己寫下的字句負責時,你會扮演質疑自己的角色,反覆地檢驗自己的觀念與問題。這樣的過程不僅能夠深化理解,還能糾正自己的錯誤觀念,進一步提升專業能力。

而這正是我過去一直缺乏的部分。講到這個,就得提我實作改寫專案 whereintheworld-fe-challenge 的由來了。

其實,這是一個面試作業,也是讓我錄取上份工作的決定因素。在那個時候,僅憑面試中的技術對談,我無法讓面試官確信我有從零開始完成一個專案的能力,因此需要透過這個作業來證明自己的實力。

那時我深刻地體會到,一直以來儘管知道自己技術能力有不足之處,卻始終沒有認真花時間打好基礎,使我在技術面試時缺乏自信。心裡的不踏實感在面試時表露無遺,也讓我的職涯陷入瓶頸。我打算在另一篇文章中詳細分享這段心路歷程,而這個經驗也是促使我展開這個學習計畫的原因之一,所以選擇這個專案來實作我想是再適合不過了。

下一步?

持續學習是一定的,而這次計畫也證實「公開分享的學習」對我來說很有用。不過接下來我想先寫一些跟技術無關的文章,例如前面提到我是如何面對職涯瓶頸,也想分享我對寫作能力的看法。

未來,我也許會花點時間整理去年準備前端面試的學習計畫(基本上是按照 Frontend Developer Roadmap,並結合一些實作練習題),或是把讀到一半的 Learn React 官方教學文件 讀完,然後把原本手寫的筆記轉成電子版放到部落格內。

無論如何,我將繼續分享我的想法與心得,不斷提升自己的輸出與輸入的能力。

感謝大家在這段時間的鼓勵與支持,期待在未來的路上一起學習互相交流!