---
# System prepended metadata

title: 2023q1 Homework5 (assessment)

---

# 2023q1 Homework5 (assessment)
contributed by < `chiacyu` >


## 課程回顧與自我檢討
在寫作業的過程不斷檢視自己無論是對於工具的熟悉程度，以及不斷的問自己到底知不知道要做什麼事情。而不是胡亂剪貼程式碼硬湊出結果。這邊可以列出主要的進步。

:::success
1. 了解有那些工具可以使用以及如何查詢方法(gdb, GNUPLOT...)
2. 了解正確的查詢資料的方式(manuel page, ISO C standard, The C Programming Language...)
3. 了解大型軟體的合作機制(coding style...)
:::

那我認為在下列幾點是開發上面遇到的困難與瓶頸


:::danger
1. 對於C語言的熟悉程度不足(前置處理器的解讀與運用時機、特殊的資料結構技巧...)
2. 對於使用工具上面的陌生(相關的GNU開發工具...)
3. 時間的部分較為破碎
:::

那針對瓶頸的部分改善方法

:::spoiler 時間不足
1. 上班時間可以聽影片跟看教材提升時間使用率
2. 例假日可以投入百分之九十以上的時間
3. 下班時間亦可全時投入
:::

:::spoiler 工具陌生
1. 透過作業的實作來熟悉工具的使用
:::

:::spoiler C語言與系統程式知識
1. 購買與閱讀相關書籍(the c programming language, Advanced Programming in the Unix Environment...)
2. 閱讀課程的相關教材內容
3. 實作來累積經驗值
:::


## 自我期許

如同老師說的:
**光有興趣是不夠的，在資訊科技的領域若不置身其中，會感受到無比的挫折與難過** 
那我希望可以透過這堂課程達到

:::success
1. 能夠貢獻程式碼到Linux kernel(不限型式)
2. 能夠對老師github裡的專案做一些enhancement
3. 能夠轉職到相關工作(上班下班讀不同的東西真的很累QQ)
:::

針對上述的三個目標我目前的想法與規劃是

:::spoiler 貢獻Linux kernel
1. 針對每周的測驗題的延伸項目來做發想與實驗
2. 想辦法找到註解錯誤與拼字錯誤
3. 想辦法找到未移除之舊程式碼
:::

:::spoiler 專案enhancement
1. 針對有興趣的專案來與老師討論有哪些改進空間(如: 個人很看好RISC-V的發展，可以從 `rv32emu` 中挑出一些 `issue` 來作為客製化作業。
)
:::

:::spoiler 轉職
1. 透過以上兩點來增加履歷的能見度
2. 配合上九月可能會開設的資訊科技產業專案設計課程，一條龍的服務
3. 趁著消費性電子產業低靡以及不確定的升息循環，好好打底等待景氣復甦跳槽。
:::


## 因為自動飲料機而延畢的那一年讀後心得

透過課程的訓練讓我想到在訓練身體的過程，雖然漫長又辛苦，一轉眼自己也能握推破百公斤。最明顯的成長是學期初在看測驗題跟教材時心裡都暗自叫罵 「媽的幹這三小阿」， 但隨著課程進行跟慢慢花時間一字一句琢磨，慢慢發現 「欸好像看得懂的欸」。更可以著手去修改，編譯執行來驗證自己的假設。看問題的維度也跟著提昇。 困難的東西才有挑戰的價值，台灣未已經失去了人口紅利的優勢，在這種狀況下資訊產業的成長會面臨更大的困難。 謝謝老師將幾乎所有教材公開讓任何想要學習的人都可以使用。 我想某個程度也能增加滿足企業招募人才的需求。

過程中讓我想到了 `Peter Norvig` 的 [Teach Yourself Programming in Ten Years](https://norvig.com/21-days.html)， 真的是花大量的時間，慢慢的看，每個概念都搞懂搞清楚，一回頭會發現自己進步許多，真的不需要有fomo心態。

## 許願池

希望老師在講笑話與講古之餘或許可以多說一些產業分析

例如：

`Meta` 提出的 `Yosemite V3` 敘述是把 `CPU` 當成獨立模組，可以單獨取出維修，那假設說上頭執行的是 `Linux` 那它做了哪些特殊的設計呢？

針對 `HPC` 高效能運算的伺服器的特殊架構，例如說 `BMC` 晶片的用量爆增等等以及 `Linux` 做了哪些特殊改動呢？ 