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

jujuegg (杭柏亘)

簡介

  • 國立成功大學 資訊工程研究所
  • GitHub:jujuegg
  • HackMD:jujuegg

2024 Linux 核心實作 春季班 自我評量

成果發表和貢獻

無。

評分:
我給自己 4 分

我在處理授課教師所提供的教材及作業時就已經盡了全力,沒有餘力針對現有的專案或 Linux 核心程式碼做出貢獻,但是我在作業二中有提出一個能夠降低在鏈結串列上實作 Quick Sort 的記憶體使用量的方法,也算是有改善到一點點。

我希望自己在未來能夠從小地方開始嘗試提出 pull request,再讓我磨練個幾年,我才有能力與授課教師討論,給出對得起我自己的貢獻。

作業

評分:
我給自己 9 分

我認為我已經盡力在執行每份作業,儘管我沒有完整的做完每個作業的所有課題,但我認為我自己在此課程之作業的投入程度,有符合我自己在期初時的目標。並且有辦法回答別的同學針對我的開發筆記所提出的問題。

期末專題

評分:
我給自己 9 分

在完全沒有 Netlink 與 Netfilter 的基礎下,我成功在 Linux v6.8 的環境重現出此專案之實驗,並且能夠詳細的講解實際的運作流程與其程式碼的用途。我認為自己在這段時間內非常努力,雖然尚未針對該專案貢獻可搬出檯面的成果,但我未來會繼續著手進行此專案,希望可以加入更多功能或改善其效能表現。

與授課教師的互動

  • 5/9 下午 9:00 一對一討論預約(Messenger 預約,但授課教師未回應)
  • 5/10 下午 4:30 一對一討論預約(Messenger 預約,但授課教師未回應)
  • 5/16 下午 5:00 一對一討論
  • 6/14 下午 3:30 一對一討論預約(Messenger 預約,但授課教師未回應)
  • 6/26 上午 12:10 一對一討論預約(Messenger 預約,但授課教師未回應)
  • 6/26 與授課教師用 e-mail 討論問題

評分:
我給自己 9 分

雖然只有進行一次一對一討論,不過學生有發出許多邀請,表達自己想進行討論的積極性。並且在討論時有明確的告訴授課教師自己想執行的主題,且事先找好資料與閱讀必要的教材,我認為自己有做到主動找授課教師討論這件事,並且我也不害怕與老師進行一對一討論,這樣反而能夠讓我更好地意識到我需要加強的地方。

所見所聞所感

當初選擇修習這堂 Linux 核心實作課程對我來說是一個相當勇敢的決定,早有耳聞這堂課非常的扎實,且授課教師對於許多細節會表現得很嚴格,不過還是想要挑戰看看自己的極限在哪,於是抱著期中可能會退選的心態選了下去。

剛開始的每個禮拜都有作業的時候,我開始懷疑我有沒有辦法撐下去,因為我在大學 4 年從沒有修過教材內容如此多,作業安排如此緊湊的課程,那時候每天都要寫這堂課的作業,才有辦法在時限內完成。很多時候都是上周的作業還沒做完,下周又指派了一個大的專案要執行,同一時間有 3 周以上的作業在身,更別提還有其他課程的作業了。不過我想這也是授課教師給我們的考驗之一,畢竟他也說過,我們在挑老師,而他也在挑學生,授課教師要的是能夠對 Linux 核心有貢獻的學生,想當然產出的強度及效率不能太低。所以我還是硬著頭皮寫完了第一次作業。

完成第一次作業後,我感受到前所未有的成就感,雖然我沒有做出實質的貢獻,不過我想我又離我理想中的自己更近了一步。藉由這堂課,我才有辦法跳脫我原本的舒適圈,接觸到我本沒有機會寫的到程式碼與專案主題,才知道原來我以為簡單的事情,背後有如此多的設計原理,以及存在著我沒有想過的,卻又是我應該要想到的問題。

但令我印象最深刻的,卻不是這些程式碼以及教材,而是授課老師跟我們的互動。他在我們的開發筆記中不斷地強調「漢語表達」,且要使用標準的詞彙去撰寫任何訊息,在未來的工作中,工程師大部分時間都是團體合作,人與人之間的工作反而是更重要的課題,如果沒有有效的溝通,那我們根本不能清楚地知道我們面臨的問題,那根本就無從下手去解決。Git commit message 也非常的重要,我學習到如何撰寫清晰且易於閱讀的訊息,以前都只覺得自己的東西只要自己看得懂在寫甚麼就好,開始接觸到開源程式碼後,才知道沒有完整的敘述解釋,即使程式碼再怎麼優秀,也不會有人要採用。

在本學期的最後一個作業 - 期末專題中,感謝授課教師讓我堅持我的想法,並且沒有因為我甚麼基礎都沒有就不讓我執行與網路有關的期末專題,這也算是完成了我一個小小的夢想,我在大三接觸到電腦網路的課程,從那時候開始就一直對相關的課題感興趣,卻也一直沒有機會去執行與網路有關的專案,只能從學校的作業去慢慢學習。在跟授課教師一對一討論的過程中,雖然被電得很慘,但也讓我深深的體會到自己的不足,也讓我下定決心要更認真的去執行我的期末專題,一方面是想向大家展示我有這個能耐,一方面也是想要嘗試突破自我。

謝謝授課教師留下這麼多第一手的教材給我們閱讀,我想以後出社會的時候,我還是會時常回來翻老師的教材,畢竟這些東西我可能永遠都學不完。

最後,「品質是價值與尊嚴的起點」,這句話我應該一輩子都不會忘記。

評分:
我給自己 9 分

研究生發信時間

  • 二月份學習回顧 (2024/03/01 下午 3:05):
    這學期選修了黃敬群老師的「Linux 核心實作」課程,儘管研究主題與此無關,但學到許多有價值的知識。課程要求撰寫清晰的 git commit message 和接受程式碼審查,提升了我寫程式的品質與溝通效率。透過作業練習了 pointer to pointer 等技術,理解了底層架構的重要性。閱讀並實作 Linux 核心程式碼後,希望在未來研究中應用所學,提高最終成果的品質。

  • 三月份學習回顧 (2024/04/06 下午 8:28):
    與授課教師的 code review 互動,讓我深刻認識到自身的不足和需要改進的地方。課程中學習到的講話節奏、精準表達和有效回應問題的方法,對未來的面試非常有幫助。老師布置的作業與未來可能接觸的知識相關,並可能在面試中被詢問,這使我更加重視提升自己的能力。我深刻體會到「品質是價值與尊嚴的起點」這句話的意義。

  • 四月份學習回顧 (2024/05/11 下午 5:32): 修習了半個學期的「Linux 核心實作」課程,我從授課教師提供的教材中學到了很多知識,不僅包括 Linux 核心的並行程式設計,也複習了 C 語言的底層邏輯,嘗試用更精簡的程式碼實現功能。授課教師強調,做出成果後,要通過比較和證明自己的方法比其他人更好,才能說服別人使用我們的作品,就像寫論文一樣,需要使用工具計算程式碼的各項指標。目前,我正籌備期末專題,希望在有限的時間內為社會做出一點程式碼貢獻。

  • 五月份學習回顧 (2024/06/30 下午 5:14):
    本學期的「Linux 核心實作」課程即將結束,我從中學到了許多專業知識和處事態度。授課教師強調,若自己不想進步,努力再多也沒有用。在期末專題中,我實作了一個 Linux 傳輸層防火牆,雖然與研究主題無關,但讓我熟悉了未來工作中可能用到的工具和程式碼。透過閱讀第一手教材,我節省了找資料的時間,避免了錯誤資訊。感謝授課教師提供與業界主管互動的機會,這對未來找工作面試非常有幫助。

評分:
我給自己 10 分

我認為我在寫學習回顧時非常的認真,並且把許多授課教師告訴我們的重點寫進心得中,我從中學到了如何更好地將自己所學到或是完成的作品展現給別人看,如果我們的進步只有自己看的見,那還有甚麼意義?

自我評量 (1 ~ 10)

  • GEOMEAN:\(\sqrt[6]{4*9*9*9*9*10}=8.0015\)
  • 方案 B:\(1+\lfloor 8.0015 \rfloor=9\)