contributed by < charliechiou
>
紀錄閱讀〈因為自動飲料機而延畢的那一年〉的啟發,特別在學習本課程 5 週之後的感想,應具體描述你在課堂、課後創作,和觀摩其他學員的成果時,理解到系統軟體的開發態度、對細節的重視,以及理論和實務的融會貫通。
閱讀完這個系列文我才了解到,真正的開發產品是怎麼一回事,而背後所需要注意到的細節及態度也是超出我的想像的。
誠實面對自己,從選修 Linux 核心設計至今越來越有體會。以前認為自己再修課成績上有維持好一定的水平,在課堂作業上也皆有如實完成,應該是大家所認為的好學生了。然而,誠實面對自己,回顧過往所學。當老師上課詢問到 tanh 的定義時、詢問到中央極限定理時,我回頭反問自己答案為何,心裡得到的答案皆是,我可能還要查一下。甚至上課被老師點到討論問我 uint 可表示範圍時,明明僅是上學期修過的計算機結構的內容都要讓我思考許久。
回顧過去在系統系就讀時所作的畢業專題,當看到作者寫道
最初在我們對現實一無所知,好傻好天真的時候,我們希望做一款能落下杯子、移動杯子,加茶、加糖、加冰塊、加珍珠、再搖一搖、封模,一條龍一氣呵成的設備,操作者只要會按按鈕就行了,聽起來超級屌,簡直就是夢幻般的機器,什麼都不用會擺一台就可以開店了。
心裡也很有感觸,當初在製作畢業專題無人船之前也是這樣天真的認為很簡單,現在回頭想起便是對於細節的不重視,至今回想起仍然可以列出很多當初未經思索所設計的系統可以再更好的地方,而這正也呼應了我在學習上未注重細節導致。
雖然我都用很詼諧的語氣在講述這些過程,聽起來好像很無腦就決定跳下去做了,但實際上我們做了很多調查,取得事實避免依照空想做決策。
老師上課也同時一再強調,切莫舉燭要查閱第一手資訊。在修課過程中也發現很多需要的資訊往往就在規格書中詳列清楚,受到人工智慧發展的影響過去我卻更長訴諸 ChatGPT 並未確實查證,換來的便是撰寫核心模組時候意外的把電腦當掉。
研讀第 1 到第 6 週「課程教材」和 CS:APP 3/e (至少到第二章),紀錄心得和提問。針對自訂題目,例如貢獻程式碼到 Linux 核心,也將自己的構想和規劃記錄下來,隨後與授課教師一對一討論時可運用。
同時,這學期另一項收穫便是對於開源社群的貢獻。雖然目前大多都是對於 typo 或是一些簡單 warning 的處理,但和過去相比已經了解到要如何提交貢獻給其他開源的程式或甚至 Linux 核心。
上課有和老師討論到課堂測驗中 multi-Precision Integers 的實作,而在後來和授課教師一對一討論時老師也提到在 Linux 核心中也不乏有相關的應用,因此我希望能夠在期末專題後去進一步理解 mpi 的操作嘗試貢獻程式碼至 Linux 核心。
比照 2024 年期末專題,簡述你想投入的專案 (亦可建立新專案),至少選出 (或訂出) 二個,過程中可參照其他學員的想法,即 ideas。