
第二次參加鐵人賽寫主題比較混雜,先從著名的《韌體工程師的0x10個問題》開始,逐一細細探討當中的細節,但文章只有 16 點,要完成到鐵人賽要求的三十篇,勢必要有些拆分跟補充內容。
因此,我還從 C++ 延伸補充一些一直知道要學、但始終沒有找時間細細探究的主題,包含:
「多執行緒」是因為寫 volatile 主題遇到、也想起作業系統課程會花很多時間講,但之前都沒有實作,就趁這次機會去看如資料競爭、競爭危害、死結等實際的程式碼,徹頭徹尾了解多執行緒是怎麼運作的,以及可能遇到什麼問題跟解法。
「物件導向程式設計」比較偏軟體,但也是始終沒有花時間好好研讀的內容,這次認真看完之後再去看 SOLID 原則跟設計模式,終於比較知道在說什麼了,雖然 OOP 主題文章寫超過一天、文章特長,還是覺得很值得!感覺又開了認識軟體設計模式的一扇窗!
最終三十篇主題如下:
typedef 比 #define 定義新資料型別更好?
volatile 關鍵字
volatile 的延伸問題
async / promise + future 進行非同步處理
嚴格來說,並非每個主題都跟韌體有直接相關、韌體工程師的必備技能也沒有全部都在上面,所以嚴格來說,就是一些「跟韌體有關、以及從 C 與 C++ 延伸的學習筆記」,堪稱大雜燴。
但這次參加的是「自我挑戰組」,所以就容我放一些個人的學習筆記,哈,如果下次寫鐵人賽(不知道會不會發生)有想到什麼可以連續三十篇的主題,我會好好找個組別參賽的。
今年參加鐵人賽,有個特別感動的小故事。
年初拉著大學與我碩班同校、現在就讀其他學校資工所的學弟到輔大參加鐵人賽頒獎典禮,居然就促成了他今年參賽的動機。
他的參賽題目為《在 AI Compiler 工程師的路上》,主要為他的碩一所學,我打開來看卻是全部都看不懂,只能以外行人視角讚嘆他一篇又一篇的大作(每篇是真的都很長)。
未來會不會哪天打開他的文章開始研究起編譯器呢?不無可能,但在那之前,我看到彼此都在自己當下有興趣的主題持續學習、產出,那種有同儕一起成長的感覺,是十分迷人的。