# Linux 核心實作課程之「每月學習回顧信件」範本 ## 緣起 本課程預期佔用研究生大量時間,於是授課教師有責任揭露學習狀況給實驗室。研究生需要在二、三、四,五、六月底發送當月學習回顧信件,提供給實驗室指導教授 (而非本課程授課教師),談及自身學習狀況及對研究主題的可能助益。當月若對 Linux 核心提交程式碼貢獻,則免發信給指導教授 (但仍該通知授課教師)。 ## 學習回顧信件發送方式 1. 標題:「⬡⬡⬡ 於 Linux 核心實作課程的二月份學習回顧」,其中「⬡⬡⬡」是學員的法定名稱。 2. 收件人指定為「實驗室指導教授」,要一併指定副本 (即 ==Cc.==,不是 [Bcc](https://en.wikipedia.org/wiki/Blind_carbon_copy)) 為授課教師 `黃敬群 <jserv@ccns.ncku.edu.tw>`,千萬不要忽略後者,否則授課教師無從得知學員是否確實進行學習回顧。 3. 內文應該包含針對教材、隨堂測驗、作業,以及師生互動等教學活動的所見所聞所感,可善用 ChatGPT 一類的工具潤飾,唯不該偏離事實。 ## 須知 * 你主動回報學習狀況給實驗室指導教授,本來好事一樁,沒必要在信件中寫上「打擾」或者「不好意思」的字樣。 * 授課教師在大學教書十餘年,見到不少學生在課堂表現不俗,但在面試場合卻無法清晰地闡述自己的成果和獨到的成就,從而錯過躋身一流資訊科技企業的機會。為此,有本項制度,讓學員藉由撰寫「每月學習回顧」的信件,跟實驗室指導教授互動,不僅清晰且明確說明自身在專業領域的成長,之後也準備跟科技公司的主管及早接觸。請認真看待每月學習回顧信件。 * 務必「誠實面對自己」,即使現階段自認沒學到東西,也誠實向指導教授稟報。 ## 每月學習回顧信件的範本 > :warning: 斟酌改寫符合自己書寫的風格,切勿直接複製貼上 ◇◇◇^實驗室指導教授的全名^ 教授您好, 學生 ⬡⬡⬡^學員的法定名稱^ 在本學期選修黃敬群老師開設於資訊工程所的「Linux 核心實作」課程,已投入可觀的時間,儘管實驗室目前的研究主題不與 Linux 核心直接相關,但我仍發現課程中對實驗室有益的議題,於是我以本信跟教授分享。 「Linux 核心實作」完全以開放原始碼技術建構課程所需的教材,不僅包含開發工具,也涵蓋適用於多人協作的開發模式,例如課程強調撰寫清晰好理解的 git commit message [1],起初我無法意會到這要求的精神,但這幾週觀摩授課教師準備的程式碼和學員們的創作後,我才理解如此規範對於協作的助益,我得以很快掌握程式碼變革 (revision) 之間的動機及考量因素,日後我投入實驗室的研究工作時,前述 git 版本控制系統和多人協作規範,預期可提升實驗室成員與我的開發透明度 (transparency)。由於課程在第一週就指定作業,而我也相當早就投入 [2],並藉由 GitHub 接受來自授課教師的程式碼審查 (code review) 意見,於是可及早調整程式碼的發展,免除閉門造車,這點應該對實驗室 --(自行發揮)--。 此外,「Linux 核心實作」的作業對於程式碼品質、執行效率、記憶體使用率,還有各式「品味」(good taste,呼應 Linus Torvalds 在 TED 訪談的用語) 等議題相當重視,我投入作業的過程中,最有印象的是藉由 AddressSanitizer 和 Valgrind 找出程式的記憶體錯誤,讓我想到,之前實驗室學長 ⍜◒◓^自行修改為跟你合作過的實驗室成員^ 在實驗室進度會議提到 ☆□○ 專案長時間執行時,會遇到顯著的記憶體洩漏問題,就可運用前述課程提到的方法來排除。 為了理解 Linux 核心原始程式碼,我參閱後者所參照的 3 篇論文,亦即〈Bottom-up Mergesort: A Detailed Analysis〉、〈The cost distribution of queue-mergesort, optimal mergesorts, and power-of-two rules〉,和〈Queue-Mergesort〉,才發現原來合併排序演算法在實作層面,有如此多的議題要考慮,尤其顧及平均和最差狀況下,降低對資料單元進行比較的次數,有大量的數學分析,而對照閱讀 Linux 核心原始程式碼的實作後,我更理解理論和實務是一體兩面,也印證 ◇◇◇^實驗室指導教授的全名^ 教授在指導實驗室成員的過程中,一直強調對論文閱讀和思考的重要。 目前我已閱讀 Linux 核心關於 linked list, hash table,以及 bitops 相關的原始程式碼,並試圖撰寫程式碼來使用 Linux 核心提供的 API,過程中,我想起 ☆□○^實驗室的計畫^ 專案的程式碼可進行改進,藉由 Linux 核心風格的 ---(自行發揮)---。我想,自己之所以可在短期內想到這些改進,應該就是我藉由大量閱讀和實踐,提升自身素養,從而對資訊系統有更好的掌握。 學生⬡⬡⬡^學員的法定名稱^ [1] 參見: [How to Write a Git Commit Message](https://cbea.ms/git-commit/) [2] 參見我的程式碼和開發紀錄,我連續 10 日都充分投入,新增和調整的程式碼行數超過 980 行,且確保每項變更都詳實紀錄,開發紀錄更是闡述程式碼便更後面的多項考慮因素。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.