分享到plurk 分享到twitter 分享到facebook

User/p96114175

User/p96114175(廖華鑫)

簡介

  • 國立成功大學 製造資訊與系統研究所 110 級
  • 姓名 : 廖華鑫 (Huaxin)
  • GitHub : p96114175
  • HackMD : p96114175

成果發表

2023 Linux 核心設計 春季班 自我評量

作業共筆

期末專題

Linux 核心專題: fibdrv 改進

修課心得

在我來上這堂課之前,我有和幾位朋友聊過,這堂課強度相當高,沒做好心理準備千萬不要加選,但從業界回來的我不這麼認為,比起你被當或是分數很低這些事情,我更著有沒有學到東西,因為出社會時並不是看你的成績單來談薪水的,而是根據你過去的經驗和能力來談的,具體一點像是你的專題作品,或是你的作業,都蠻值得花時間好好地把它們做好,如果能力夠好,可以進一步思考如何改良,這都可以幫助自我成長。

還記得第一次來Linux核心設計,我滿懷著學習新知的心態去,第一次上課老師就熱情地點人上來回答問題,而我很幸運的被點到了,一開始回答了一些,但後來回答不出來老師便發出他的獅吼功,其實有嚇到,可能是老師丹田不錯!(口誤XD),最後收到了一本名為 " EN帶你寫個作業系統:來趟RISC-V開發輕旅行 ",其實想想還不錯,因為剛好那陣子讀完作業系統的書,但還沒時做過相關程式,沒想到第一堂就成為幸運兒了XD。

在寫作業時,我一開始沒有想法怎麼做,所以會想去多方觀摩同學的做法,結果不看不知道一看嚇一跳,其他同學都好強寫得好好,因此在觀摩時多少產生了懷疑自己的想法,對於過去讀的書所學的知識,為何在實作時會毫無頭緒,是不是少學了什麼知識,直到老師喊出一句話便是 “作業系統本身就是實作”,我才意識到書並不能只是讀過,還需要配合適當的實作練習,這樣的學習才會完整。因此在作業中可以看見,老師會出些問題,例如 fibdrv.c 存在著 mutex 等關鍵字什麼場景中會需要等等,試圖讓我們去實作並針對實作內容去解說。到後面我也慢慢理解一個道理,實作越多經驗便越多,對於過去書上的內容便能融會貫通。

期中的時候其實同學已經將近一半退選了,老師如往常一樣叫人起來,因為上次被叫起來是因為沒跟老師對到眼,所以被點到,因此這次我便看著老師,結果還是被點到了XD,當時我的心裏蹦蹦跳想著又要被罵了,結果最後收到一本有著可愛喵喵的書“演算法生存法則”,說來也剛好,當時自己學習市面賣的書、網路上的課,仍舊對演算法沒有很好的理解,對於別人的提問,並不能回答得很好,因此這學期我也花了些時間把這本書看完,剛好在這做個心得分享,該書適用於修課學生、準備APCS或是要成為軟體工程師的人,相較於其他書它更著重於常用且實用的部分進行教學(蠻喜歡這點的),對於一些演算法步驟也用圖示搭配數值說明得很好,因為我很常看到書只寫觀念,接著給範例程式碼,對於我來說這樣的學習是沒有效率的,因為我自己是適合,給我一段數值然後手算推出結果的學習方式,對於後續別人的提問,我也可以很詳盡地告訴他人為何該方法較好,好的點在於哪一部分,我其實是蠻感謝老師熱心地給書,下次要多點我(口誤XDDD)。

老師的教材中也包含“每位程式開發者都該有的記憶體知識”學習材料,對於想往記憶體走的我來說,是不可或缺的內容,先前也在一對一提問中問到,未來將發展寫程式的 AI ,我們未來如何在職場中保有競爭力,老師回應我“領域知識”,這點我也相當認同,但對於AI能否擁有領域知識我仍保持著疑問。

自我評量 (1 ~ 10)

該課程我給自己10分,因為我打敗我自己對該課程的恐懼,努力持續學下去,這堂課對於我來說相當有幫助,它滿足了我對知識的好奇,但目前自己對於蠻多部份仍沒有看完或是看不懂,所以也還在學習的路上,課程一開始老師便呼籲大家要誠實的面對自己,關於這點對於我來說也是蠻赤裸的,因為在過去我可能會因為讀完一些書而認為對於該知識有一定了解,在這堂課我發現自己是個剛會走路的小孩,相較 jserv 老師的教材內容,我更覺自己要多加把勁,不能輸了前面很強的人,哪怕自己現在程度沒有很好,仍要持續把這些知識學會。 另一點,過去自己都是在學習已有的知識,較少對一些專案進一步改良,這堂課會希望你盡可能去思考去優化程式,讓我嘗試對一些程式進行實驗,這點是我過去從未體驗的,我喜歡這樣的事情,但做起來很不容易XD,我能做的就是努力學習,成為更好的自己。