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

版本 6762f40f6d47245a06add43888869a913bf5fede

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 核心設計等系統軟體開發相關課程的我,在選修此門課之初可謂吃盡了苦頭… 每到隔週,隨著琳瑯滿目沒聽/學過的新教材的出現,我總會很焦慮地需要追著新進度跑,明明上「幾週」的知識都還未理解完全;上「幾週」的作業甚至也未完成。「要直面自己的缺點」是教授在課程首週強調的觀念,然而,我的作法似乎背道而馳,逃避了它。或許選修此課程的我,初期也有等同的決心想要精進、提升自己對系統軟體方面的素養;然而,第一份作業、每週教材量及「建議花費於本課程的時間」公布後,我徹底懵了-這會是我修過最硬的課。

在 Homework5 閱讀〈因為自動飲料機而延畢的那一年〉文章-作者在研發自動飲料機的每個環節,總是步步為營,模組化每步的「當前目標」,針對該目標再反覆執行「假設-實驗-改進-解決」等迴圈,結合其他夥伴的專業分工,使團隊凝聚且讓進度推進。比如軟體設計方面,作者就列出了好幾個當時遇到的問題,並「一個一個做實驗來印證些想法」;細節上也絕不馬虎。此謀定後動並追根究柢的精神,我想,才是現階段的我該學習模仿的。我認為我在學習態度上「遠有進步空間」,他人在為「無成果收益」的專案焦頭爛額,甚至延畢一年時;我卻只專心在「如何畢業」、作業能否拿高分並「粗淺」交代等對自己完全不負責任的行為,好奇自己還要落魄多久之餘,也思考真的該振作了。引用自作者的文章-「機器現在能做到的每一件事,都是用一次次試誤換來的取捨。」,而不試錯的我,又如何能成大業、做大事呢?

針對本學期「Linux 核心實作」課程,學生實在受益匪淺-針對 C 語言及 Linux 核心相關技術之各種詳細教材、頻率高且深度不淺的每周線上測驗、扎實且需要花費很多時間實現的各項作業;最後,還有與授課教師、別的修課同學互動,相互砥礪並觀摩學習的機會。此課程是一多方面能力、軟硬皆施的「訓練營」,除了最基本的程式技巧、Linux 核心知識;課程中也特別強調「漢語表達」、「如何溝通」與「課程互動」等層面的能力培養,也呼應到人說:「軟體工程師不光只要會寫程式,懂得溝通也是關鍵!」的精神。

碩二甚至出社會後,學生認為自己仍會回頭翻閱 Jserv 的課程教材,針對程式邏輯作更進一步的強化,更有可能利於職場上的使用。

評分:
我給自己 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\)