好讀版
零、成績
註 : 成大電機己的數學為線性代數
可以看出我的報考策略非常保守,因為不知道自己程度在哪,很怕沒學校念,所以我都選擇了比較容易的去考,而最後的成績也還算滿意。
一、背景
私立大學資管系應屆生,系排約13%
修過離散、資結、OS、演算法,但幫助不大,六科基礎相當薄弱
大二下萌生出考資工所的想法,所以升大三的暑假開始補習,準備時長為一年半
學校的課並不重,專題也沒有特別投入,所以讀書時間算是很充裕
二、準備方向
各科建議順序 : 資結 -> 演算法 、 計組 -> OS 、 數學比較沒差
我主要是跟著補習班進度念,並沒有額外花時間啃原文書,考試的大部分內容其實補習班都有講到,所以有上過的內容務必要讀熟。另外還要針對沒講過的內容自己去看原文書或OCW,來補足相關知識。
每周上完課後一定要練習講義上的題目,我自己是都有寫完,遇到太難的題目可以先跳過,千萬不要因為趕課所以只聽課不做題,這樣跟沒聽是一樣的。
關於正課筆記,我是自己用 iPad 抄,但真的花了很多時間也很沒效率,所以我建議直接看 w 大的或買網路大神的筆記來看,再自己補充一些常考或者比較特殊的部分,例如特殊矩陣的 eigenvalue、branch decision 在不同 stage 會造成的 stall 情況、Master Theorem 各種類型的整理(根號、減法)、shortest path、MST 的是非題性質等等,這些都是透過刷題時發現的常考點,但筆記通常沒有系統化整理,因此建議自行補充。
另外,在剛開始準備時範圍一定要盡量大,即便是很冷門的內容也要有基本的了解。因為隨著時間越接近考試,讀書的範圍只會越來越小。如果一開始就忽略這些內容,到了後期會很難補回來。
三、讀書方法
我的資質非常普通,且自制力偏差,所以每天都會到學校閱覽室念書,並且固定時間進出、坐在固定的位置,這樣能讓我保持在比較專注的狀態。
在一刷時,我一次只讀兩科,因為要抄筆記又要寫題目,實在無法顧及其他科目。這個階段的重點是打好基礎,確保觀念紮實。
到了二刷,我參考了其他心得文,採用 round robin 讀書法,每天都接觸軟硬體三科,早上寫數學、下午寫軟體、晚上寫硬體,這樣能確保常常會碰到六科內容,比較不容易忘。
因為不想留下遺憾也不想重考,所以幾乎所有時間都砸在念書上面,從考前一年開始,我平均每天讀七個半小時,總時數為 2680 小時(含上課)。坦白說我讀書沒什麼技巧,就只是這樣傻傻地讀,我相信任何人都可以做得比我更好。

四、時程安排
升大三暑假:
上線代及資結正課,我會在下次上課前把前一周的題目都寫完(難題跳過),這樣才不會 delay 到後面的進度
大三上:
上離散正課,這時候其實都還蠻輕鬆的在讀,每天大概念 2 ~ 3 個小時,差不多寒假時把離散及線代藍本題目都做完了(線代只做是非跟easy)
大三下:
上演算法及計組正課,計組內容超多上了很久,而演算法內容雖然很少,但上數位難免想偷懶,所以這兩科都拖到大概 8 月才上完
這段時間我都有在持續複習其他科目,避免太久沒碰全部忘光
暑假:
上OS正課,同時再次複習六科內容,暑假有很多時間念書,我建議在開學前至少六科都要讀過一輪。另外我這時候又聽了一遍線代,來確保我的觀念都是正確的
大四上:
參加題庫班,開始密集的刷題,只做資工所的題目,冷門題不想做就直接跳過,這段時間實力會大幅提升
至於是否要上題庫班,我認為如果實力中等或者有某科已經忘得差不多了,那就可以去。像我在這個階段,資結其實很多細節都忘記了,而題庫班的課程是把正課的重點再複習一遍,很多忘掉的知識都會在這時間補起來。另外,老師還會補充一些正課沒有講到的考點,像是資結有提到紅黑樹最多最少節點數,今年交大就有考出來
12月底到考前:
開始寫考古題並確實訂正,同時調整作息,每天7.30起床、12點左右就寢
考前一周:
到了這個時間點考古題都差不多寫完了,所以我以複習錯題為主,同時寫點題目保持手感。
另外,越接近考試越要去讀那些不熟的內容,已經熟練的部分不需要一直看,因為那些內容根本不會忘。考試最怕的是那種冷門的東西,明明有印象卻想不起來。
五、考古題
考古題主要針對你的目標學校來做,基本上不論考哪間我都建議要刷交大,因為交大的題目非常扎實,通常寫完後訂正就要花上一整天,所以我是抓大概三天寫一份,中間穿插其他學校的題目來調整步調
寫考古的時候其實就要鎖定幾間學校特別準備了,因為每間學校的考風都非常不同。例如交大很愛考 File system,但老師這邊講得不多,我建議直接把恐龍本的相關章節抓出來讀
寫考古的策略只有一個,就是把握住基本題,那麼甚麼題目算是基本題呢?
我認為只要是筆記上有的、上課有講過的都叫做基本題,無關乎題目難易程度
因為沒看過的題目很可能大家都不會寫,而跟別人的差距就是從每一道基本題的熟練度拉開的
關於考古題解答,可以直接跟網路大神買詳解,再自己上網查其他解答來交叉比對,因為大部分學校都沒有公布答案,所以千萬要自己思考解答的正確性
這些是我有寫的年份,有些是上過課才寫的,所以當參考就好
六、各校考試心得
2/5 中山
中山的軟硬體考風每年都不太一樣所以我沒有刷
硬體沒意外的大多都看不懂在幹嘛,分數出來卻比想像中高
資結算簡單, OS 則是考了很多名詞解釋,很吃學生有沒有背書
數學就…到底誰會考數學歸納法的證明啦
2/6 交大
軟體難度我覺得沒有以往高,但選擇題給分方式比較刁,我當時是先寫選擇再寫非選,現在想想應該先寫非選才對,手寫題幾乎都是有教過的演算法去變化,還算有人性
數學離散部分蠻難的,stirling number 我印象中交大近十年都沒有考過這樣的題型,當下很慌,原本寫對了後來被我改掉,但這其實也是很基本的題目,考完試就覺得涼了,還好最後還是有上
硬體則是出了一堆考古題,有好好練習過應該都能 70 up
2/7 中興
這間的題目應該算是最簡單的,但硬體抓了一堆國外的題目,外加每題都倒扣,導致我被送下去
2/8 台科大
資概蠻簡單的,線代也偏簡單
離散考了一堆演算法還有一些機率問題,我寫起來是沒什麼把握
台大跟台科大都可以帶計算機,考前跟朋友借一下,我就有用來算四階行列式
2/10 成大電機己
都蠻簡單的,硬體有需要通靈的題目,數學則是一堆考古
2/13 師大
數學跟軟體我覺得都蠻有水準,寫起來是有壓力的,硬體則是超級簡單
而且完全不看過程,只需要寫答案
2/14 中央
今年軟體我覺得不難,但給分方式同交大,還外加倒扣,所以分數出來蠻低的
數學很難,遞迴還出錯,我在那題花了十幾分鐘結果送分,奉勸各位遇到怪題直接跳過 ==
硬體很簡單,最後一科了大家都提早交卷
七、各科讀書心得
1. 離散數學
參考資源:正課、藍本
離散的題型非常多,常常讀了後面忘前面,所以要多次地毯式複習,保持手感
重點章節為關係、排組、遞迴、圖論,這些都建議額外準備筆記整理起來
另外,證明題要會,尤其是數論的一些經典證明題,證明的關鍵在於起手式與如何收尾,務必要把開頭與結尾熟記,這樣在考試時才會有明確的解題方向
後面的章節我其實都有念,但因為太少考,寫考古時都沒什麼碰過類似題目,今年中山考的狀態機我還是沒寫出來,所以我覺得可以視情況放掉
數學兩科都很推薦補習班講義,我覺得寫得非常好,題目並無過時問題可以放心刷下去
2. 線性代數
參考資源:正課、藍本、交大周志成題庫、線代啟示錄
學習線代務必穩扎穩打,因為前後章節都是有連貫的,學到線代基本定理後腦中會有四大子空間的結構圖,這時候觀念就會變得清晰透徹,回頭再看前面學的就會覺得理所當然。但是線代打通觀念是需要時間的,所以我會建議要早點開始準備。
線代很推薦自己整理筆記,如 Blockwise 矩陣行列式、Ax = b 可解性、rank-1/rank-2 matrix 計算技巧等等。
另外還有很多特殊的技巧都可以在線代啟示錄中找到,像是 ker(A) 速算、運算至 Ref 避免分數出現等等,這些都很實用。
3. 資料結構
參考資源:正課、上課投影片、筆記
這科算是相對簡單且好準備的科目,甚至可能是整張軟體考卷中最穩定能拿分的部分,因此一定要好好把握。
首先,時間複雜度要熟,linklist、stack、queue 的實作也要熟練,這些都是基本中的基本。另外建議把所有學過的 Tree 都整理起來,包括操作方法、操作的時間複雜度、樹高、節點數等等。近幾年開始考一些樹的特性,例如 RB Tree 相較於 AVL Tree 優化了哪些地方,類似這種的都值得注意。至於圖論,可以等演算法課上完後再回來複習,這樣會比較好吸收。
對了,考前我有把程式碼都背起來,雖然今年都沒考,但我仍然覺得這部分值得準備,因為程式碼填空是可以確實掌握的分數。
4. 演算法
參考資源:正課、講義、台大OCW
補習班講義寫得很不錯,搭配考古題練習,其實就已經足夠準備這科了。我自己做了兩遍,收穫很大。
剛開始學演算法時真的會很崩潰,尤其是圖論部分。像是某些題目要求設計一個演算法來解決特定問題,並且限制時間複雜度在 O(V+E) 內,這類題目一開始看到真的會腦袋一片空白。但隨著練習的題目越來越多,學到的演算法也逐漸增加,就會慢慢培養出直覺。例如,看到 O(V+E) 就會很敏感往 BFS、DFS 這邊去想,就會知道這題不過是 graph traversal 的變化題型而已。
這科最重要的章節莫過於 DP,所有教過的 DP 問題遞迴式,考前一定要熟記並能夠默寫出來。
至於 Greedy 和 NPC,我覺得補習班的內容相對淺,建議看台大 OCW 來補一下
5. 計算機組織
參考資源:正課、補習班講義、自製筆記
老師真的把計組教得很好,而且講得很仔細,我會在每周上完課後把投影片內容整理成重點筆記,雖然一開始花費的時間很多,但在複習時,使用自己整理的筆記能大幅提升學習效率。
這科的重點在 pipeline 及 memory,我有針對這兩章整理筆記,很常考的data hazard、control hazard 的 stall 情形,可以針對每個 case 進行分類整理,這樣會在解題時快上不少。另外像是 Page table、TLB、cache 的計算也可以系統化整理,包括每個 entry 會有甚麼欄位、entry 數怎麼計算等等
若要準備交大,則要將第二章及 RAID 讀仔細一點,尤其是符點數極值、加法器、乘除法器等等,這些都要在考前特別複習
在練習題目方面,我總共寫了兩遍正課講義,題庫班的講義則只挑資工所相關的題目來做
由於題目和影片非常多,建議早點開始準備
6. 作業系統
參考資源:正課、講義、恐龍本、周志遠 OCW
OS 是補習班最難以 cover 的科目,常常會有沒看過的題目,建議遇到先去翻恐龍本,很有可能是原文書上抄下來的,另外周志遠 OCW 補充蠻多內容的,很建議聽過一遍。
這科的有很多要背誦的內容,但其實許多機制之間是有連貫性的,一定要理解這些機制的來龍去脈,這樣才不會覺得都在死記。雖說如此,為了應對考試,還是要將常見的考點背下來,可以直接透過大量刷題來檢驗自己的掌握程度,如果是很冷門的題目或者太細的就直接放棄了,不要在上面花費太多時間
我在考前有把同步化的程式碼都背下來,雖然今年也沒考,但還是那句話,我不想錯過能夠掌握的分數
八、結語
感謝家裡的支持與金援,讓我在這條路上無後顧之憂
感謝同校的戰友們,常常一起上課、念書、吃飯
感謝一路上支持我的人,讓我更加相信自己做得到
最後,感謝努力奮鬥一年的自己


