版本 8bd96b8017448e7f710c71c7ac4dc9f467065802
User/asd757817
asd757817(錢彥伯)
email: asd757817@gmail.com
簡介:
- 成功大學 電機工程學系107級(2014-2018)
- 成功大學 電腦與通信工程研究所 資訊與系統組(2018~ )
個人評量
作業及筆記
- HW1(筆記心得) Hackmd
- HW2(lab0) Hackmd, github
- HW3
* dict Hackmd, github * review Hackmd * list Hackmd, github - HW4
* clang Hackmd * assessment Hackmd - HW5(bit) Hackmd, github 分組作業:
- dict 深入探討 Hackmd, github
- CS:APP, cache lab Hackmd, github
所見所聞心得
因為聽聞 jserv 老師的課程可以大幅增進自己 C 語言的能力,雖然也聽說過課程的難度、強度是數一數二的高,但想說給自己新的學期新的期望,就決定選修這門課。
先說說回家作業的部分:
前幾周的課堂其實非常痛苦,除了被老師課堂上的刺激外,還有大量的材料需要研讀,影片內容往往需要來回撥放幾次、搜尋額外資料才能理解,花了大量時間閱讀材料與作筆記帶來的成果也是非常可觀的,像是指標的運算、取值、rvalue、lvalue 名詞概念都有更深入的認識;而接下來幾週是實作 CS:APP 教材的實驗內容,像是 linked-list 實作、bit-wise 操作等,作業的要求與難度都不高,但在開發過程中卻往往會忽略一些細節(use after free 等),而這些忽略的細節其實都是老師課堂上有特別強調過的錯誤,為了使自己能夠更加嚴謹,在實作的過程中會有一段的陣痛期,開發的習慣必須從原本 trial and error 的方式轉變為嚴謹思考後再行動,只有這樣才是真正自己的程式,以這樣開發的程式才是可靠的;而後半段幾周的分組作業其實相對前幾周並沒有這麼高的壓力,分組實作的部分多是以一個已經有專案深入探討其原理觀念、進行效能比較、改善部分內容等,一來可以學習不同開發者的開發習慣,二來在探討原理觀念時會發現以前學過的知識逐漸貫通,而這些改善的內容在未來都可能是我們在這圈子中的一種貢獻,至於另外一個有趣的事情是每當自己完成了要求,老師就會再丟一個新的想法、觀點進來,而要解釋那些概念又必須花很長的時間研究。
而課堂的部分:
基本上每一個禮拜都會有考試,而考試題目通常是概念理解,只有概念完完全全清楚才能夠完全答對,這非常考驗對於原理的理解;老師課堂上會不斷地用言語刺激我們思考,也會一直提到一些以前並沒有特別注意過的事情,讓我發現原來「頂尖」軟體工程師跟我想像的非常不一樣,如果只是想要成為一個很普通的軟體工程師,按照原本的節奏也許行的通,但要邁向頂尖勢必得在意更多的細節,老師課堂上會給人許多啟發,或許沒辦法將所有部分都了解、貫通,但其實只要在其種某幾項專精就是別人常說的大神了。
自我評量分數 (1 到 10 級分)
我給自己 9 分
在課程開始前我自認為對 C 語言有一定程度的了解,但在前幾周的誠實面對自己後才發現自己其實一點不了解這個語言,所以我給自己設定了一個目標:絕對不可以中途退選,要盡可能地在這堂課中汲取知識! 回顧自己在這學期所付出的努力與吸收到的知識,雖然部分作業並沒有做到最完美的程度,但在這學期的過程中已經盡可能地做到最好,相比與課程開始前也進步了許多,因此我給自己9分,剩下1分提醒自己不要滿足,要持續進步!
老師的26道問題目前可以直接回答並大致正確的有:a b c d e h i j l m n q r t x y z 而在學期前就能夠回的是:c q t
f g k o p s u v w y