為什麼要上這門課

因為工作性質關係(主要工作:技術顧問、服務導入、問題排除與授課),雖然仍屬於開發領域,但沒有辦法像過去一樣可以投入大量的時間精進技術與並且累積實務經驗。這在職涯發展中很正常,因為每個人時間有限,必須有所取捨。但長期來說,忽略程式技術對於工作會有影響,會漸漸與實務脫節,當需要與經驗豐富的開發者溝通時,就會不在同一個水平上,而難以合作與交流。

很多人可能跟我一樣,知道怎麼開啟開發工具寫測試程式,但自顧自寫測試程式可能會走火入魔,最後測試程式變成累贅。我運氣很好,在前一間公司有資深前輩指導,所以寫的程式仍堪用,但因為沒有受過正規的訓練,對於許多相關知識理解仍不深,很有機會寫出不佳的程式碼。

91 的課程不是只有教你怎麼使用測試工具,而是以既有程式碼與實務經驗,帶著你的思維做程式開發。不像一般網路文章的測試教學,無法帶入到公司目前既有專案與產品,而讓測試無用武之地。熟悉這門課程,你是可以具有 直接對目前專案加入測試 的能力。






個人的技術層級很重要

舉個例子,假設你是剛踏入技術領域的新人,面對資深開發人員所討論的內容通常無法全面的理解。過去的我曾經看過很多單元測試的書籍、教學影片,理所當然也包含 91 的文章,但有很多部分不能深入理解其中含意,直到累積到一定經驗才恍然大悟。但在 對遺留代碼加入單元測試 課程中,透過 91 設計的情境與實作內容,你很容易感同身受,了解開發者面對測加入單元測試的痛點是什麼,進而解決問題。

個人建議:上課前做些功課或累積一點經驗,問對問題可以讓你收穫更多。

另外有些朋友已經會撰寫測試,對於課程內容自認有 30-50% 理解,感覺已經有基礎而降低上課意願 (雖然課程已經很難報名),這實在很可惜。課程中很多精華部分已經彙整好,除了可以在短時間內累積實務經驗,也能驗證自己對於單元測式的觀念是否正確。就個人淺見,比起完全沒有基礎的學員,有經驗的開發者可以獲得更多價值


上戰場時沒有在嫌武器多的



課程很實際、很實務

如果你認為課程只有教你如何加入單元測試,那你可能大錯特錯 (雖然課程名稱是這樣),實際上課程對於管理與架構設計也有很深的著墨。其中一項提到測試覆蓋率的顧慮,有詳細說明正確的觀念與應對的策略,如:那些應該優先加入測試、需要排除那些內容、如何告訴老闆關於覆蓋率疑問...等等。這些不是隨便一般開發人員或顧問可以回答得如此清楚,而是實際實務累積出來的經驗。

另外,當天的課程接近尾聲時,91 補充了很多架構與額外的實務經驗,對我來說這是最過癮也最精華的部分。有上過課的人會知道,91 上課時相當投入,課程尾聲時看起來快氣力耗盡,但個人私心都會希望他多分享一些內容。






持續的練習與累積

就像看完 Clean Code 後一樣會覺得 Level Up,但實際上的練習是最重要的。個人在幾個月後有遇到需要在既有程式碼加入測試的專案,當下自信滿滿開啟專案,才發現自己忘得差不多了。還好有當時的筆記與教材,重新練習才恢復記憶。也隨著在既有專案內加入單元測試,陸陸續續出現一些問題,回頭再檢視筆記內容與 91 文章,又一次有恍然大悟的感受。這也是強調在課程後,要有實務操作 (或實際練習) 才有辦法將技術與觀念完整內化,下次再遇到相同的情境與問題,身體自然而然會想起並解決問題。

光了解理論而不實作沒辦法解決問題、光實作不懂理論容易走錯路,既然有一堂課結合理論與實務,可以減少學習的冤望路,何樂不參加呢?


持續的練習才能內化


若您想要精進單元測試知識與技術,個人推薦 91 的課程 https://tdd.best/