--- title: "115資工所本科重考無補習心得:台大正取經驗分享與勸世文" description: "分享從 115 本科重考、無補習成功正取台大資工所的心路歷程。內含詳細準備時程、參考書單、考古題策略及心態調適,給資工所考生的攻略。" robots: index, follow tags: 資工所考研, 台大資工, 重考心得, 無補習, 115資工 --- # 115資工所本科重考無補習心得:台大正取經驗分享與勸世文 ## 一、警語 - 我只考台大。 - 如果學校環境對你影響不大,那就賭一賭推甄,或者多報幾間學校的考試,**給自己留點後路**(可見我多討厭新竹)。 - 錢與時間不可兼得。客觀而言,為了**省錢不補習結果重考一年不太值得**。但重考路上啟發了我對新領域的興趣,甚至完善了自己的學習方法。我不認為以一年前的狀態,進實驗室的自己,那個迷惘的自己,有辦法在研究所得到一樣的體驗。因此對我來說,這份經驗是值得的,足以跟這條冤枉路打平,因此**見仁見智**。 - 我大四下選的課都很硬,而且畢業後一個月就去當兵,期間也沒在讀書,因此重考準備不到130天。如果自覺**心臟不夠大顆的話,請不要,不要學我!** - 資工六科請在大學時就認真點學,至少考研不會那麼累 >< - 備考期間沒有讀原文書,但如果能重來,奉勸**考台大務必讀原文書,特別是資料結構與演算法**。 ## 二、背景和動機 - 113 本科非應屆,系排6X%。 - 起初目標明確就是台大,因為家住台北且想逃離新竹,所以唯一的出路就是考試。 - 重考一年,準時畢業,退伍後才開始當全職考生。 - 沒有補習,但有買補習班的書、幾位前輩的筆記、以及解答參考,同時大量依賴 GPT,前後花在學習的錢: - 書本筆記大概兩萬五 - 訂閱GPT大概 700 x 14 個月,大概一萬 - 共三萬五 ## 三、成績 ### 在校六科 |線性代數|離散數學|資料結構|演算法|計算機組織|作業系統| |---|---|---|---|---|---| |B-|B+|A|A+|B-|A-| ### 考試成績 |學校|數學|資演|計系|英文|總分|最低正取|結果| |---|---|---|---|---|---|---|---| |114台大|80|45|46|80|179|191|落榜| |115台大|70|72|80|90|231.0|221.2|正2x| ## 四、日程安排 ### 第一年 (2024.6 ~ 2025.2) 2024 6~8月: 數學讀完並寫過課本後面的題目 11~12月: 資演讀完,來不及寫題目 2025 1月~1月中: 計系讀完,來不及寫題目 1月底~2月: 寫完並檢討完近5年台交考古 #### 檢討 成績會說話,數學有練習題目足夠,所以考試就有得分,其餘兩科沒練習的整個炸裂。 ### 第二年 (2025.6~2026.2) 2025 6~7月: 資料結構讀+題庫寫完70% 11月W2: 資料結構讀+寫題庫剩餘30% 11月W3: 演算法讀+題庫寫完 11月W4 ~ 12月W1: 線性代數讀+題庫寫完 12月W2: 離散數學讀+題庫寫完 12月W3 ~ W4: 作業系統讀+題庫寫完 2026 1月W1 ~ 1月W2: 計算機組織+題庫寫完 1月W3 ~ 2月W1: 台近6年+交近2年考古+錯題筆記 #### 為何如此規劃 - 關於考古: - 我不擅長記題型,所以即使重考,台大考古有些刷了兩遍還是沒印象,沒有過擬合的問題。 - 關於計系: - 很多前輩的分享文都會建議先讀計組,再讀OS,連大學的必修安排也是二下計組,三上OS。 - 但是我的學習脈絡是習慣 Top-Down 的,也建議有同我習慣的人優先讀 OS 再讀計組,更建議在大學時期也該照如此順序修課。 - 我發現如此學法除了更能快速掌握這些底層架構外,也意外的讓曾經在大學排斥這計系兩科的我,接納甚至對此產生興趣,特別是在刷台大近幾年的應用題時。 ## 五、每日安排 08:00 起床 08:30 早餐 + 手遊 09:30 大號 + 洗碗 10:00 讀書 12:00 午餐 + 手遊 (每週自己煮一餐) 13:00 洗碗 13:30 讀書 14:30 滑手機 + 睡午覺 15:30 讀書 17:00 公園跑步+散步(雨天找YT影片做居家運動) 18:00 洗澡 18:30 晚餐 + 手遊 19:30 洗碗 20:00 讀書 23:30 睡覺 - 我應用了一些忘記出處和名稱的學習方法,包含: - 以半小時為單位切割時間 - 盡量只在餐桌上玩遊戲 - 洗碗後進入讀書狀態 - 透過固定時間的大號發呆、午覺和洗澡進入發散思考(所以洗很久) - 每隔一段時間就檢討進度 - 進度太慢就調整方法,最常見的就是跳題寫,或者挑重點跟考點讀,又或者直接跳下科讀,否則會習慣拖延而身陷惡性循環。 - 進度超前就找個週末獎勵自己,出門找朋友玩、看電影、吃大餐等等。 - 運動很重要,但我不愛運動,所以就報了兩場日期正好在備考期間的半馬。透過準備比賽作為藉口,反向逼自己習慣每天運動。 ## 六、各科準備方式 ### 概括而言 我有買一位學長做的補習班筆記,六科加總大概4500頁的A4雙面筆記,詳細到連補習班老師講的雞湯都抄上去的那種,可惜他賣完了。 讀書主要就嗑那些,可以掌握考試要用的知識以及梳理脈絡,看不懂或不理解就問GPT,問到每個觀念都雞蛋裡挑骨頭的程度才算理解。另外問題的問法也很重要: - 「我不會。」這句話,太輕浮。「你他X又教錯了。」這句話,太沉重。「我對A觀念的理解是xxx但是答案卻是ooo,這是我的思考脈絡...。」 這句話,剛剛好。 剩下就是刷題庫、訂正題庫、跟整理錯題筆記,這些也會搭配GPT處理。 ### 數學 就是練習題目,線代很吃觀念,離散很吃熟練。前者需要足夠掌握全域知識,因此要讀到融會貫通;後者需要機械化的練習,特別是生成函數與遞迴。不過排列組合的讀法就跟線代的稍些類似,比方說115年台大第一題就很吃觀念整合。 我是個很容易因為數學題目焦慮的人,只要5分鐘想不出方法就會狂冒手汗跟心跳加速,然後陷入情緒起伏中。由於會考和學測吃的兩次大虧,使我深切的體會到,比常人更多的練習量以及複習頻率,是我克服心魔的一帖良藥。所以兩次備考我都花超過1/3的時間在數學上。 ### 資演 兩者緊緊相連,所以通常都會建議一起讀,但資料結構與演算法的知識又分成三種: - 技術類: 比方說高等樹和堆的各種 Operations、DFS 找 SCC 的步驟、Dijkstra 的步驟、Hash 的各種 Open Addressing 等等,這些操作要練到肌肉記憶裡。 - 數學類: 比方說 Akra-Bazzi Method 和 Master Theorem 的理解、高等樹(AVL,紅黑,B)的節點、高度、度數之間的關係、建構二元樹的方法數,這些數學推導要熟稔。 - 觀念類: 什麼時候要用dp、怎麼定義該題的狀態轉移的遞迴式、怎麼把題目轉化成圖論並引用定理,這些觀念就是吃一塹,長一智。 ### 計系 如先前所述,我覺得先 OS 再計組的讀法很適合自己,這讓我對於 Program to Process 整個週期的相關知識有著更深刻的認知。 計系兩科是個觀念與計算並重的科目,但絕大部分繁瑣的計算,像是 cache 和 memory 的各種計算、各項排程演算法、Pipelined CPU 的 hazards 等等,都建構在觀念的理解上。因此每次的計算錯誤,像是排程結果與耗時算錯,都有可能是因為自己對 process 的 management 不夠理解。 所以讀這兩科時,我花了很大比重的時間在跟 GPT 對話,因為唸到最後我所剩下的癥結點,不見得是 OCW 看一看就可以解決的,啃原文書又需要花時間定位出問題的章節次目,這對短時間備考的人來說不太實際。另一種較好的選擇是請教社群上的大佬來解說,但大佬畢竟是人,GPT不需要飲食睡眠或著上線。不過人的優點還是說人話,大佬解題的思考脈絡還是一個值得學習的精華。 台大最近幾年對於計系主要的考法都趨向於熱門應用面,特別是 113年 和 115年 的考題值得被注意。如果真的對這兩科提不起勁的人,建議看一下 115 年的第 9, 10, 12 這三題,或者 113 年的那些要命的閱讀題,再看看詳解怎麼說明,或許會發現計系兩科並沒有過去印象中如此生冷(但這幾題都蠻難的不要因此信心受挫)。 我很常問 Gemini 一堆白癡問題,像是發明一堆新的名詞來描述我的問題,但我想 LLM 擅長的就是解決白癡問題,我也不必擔心對方會不會被我搞得一頭霧水,舉段對話當例子: ![image](https://hackmd.io/_uploads/rJdrKc0FWg.png) ![image](https://hackmd.io/_uploads/SyeDtcRF-x.png) ![image](https://hackmd.io/_uploads/ryiut90K-l.png) ![image](https://hackmd.io/_uploads/Sk-sF9Ct-g.png) ## 七、關於錯題筆記 - 我不喜歡寫字和做筆記,所以我用打字寫錯題筆記。 - 做筆記大推 Obsidian。Obsidian 可以為筆記與筆記間建立雙向連結,雙向連結甚至有可視化的結果,要做快速複習時有助於回憶跟思考。 - 在做錯題筆記前,我會建立屬於該題對應觀念的 note。 - 錯題筆記的內容大抵包含: - 題目 - 關鍵名詞或關鍵敘述 - 錯誤觀念,內容盡量少而短,否則容易重蹈覆轍 - 觀念更正,要特別強調,因為概括性比較高,可以用 rewrite 正確觀念的方式增強記憶 - 更正的結果 ### 何時建立雙向連結 這部分有點 case by case,我做的比較隨興,但大部分作雙向連結的包含這兩種結構: - 若P觀念,則Q觀念,反之亦然or並非如此 - 線性代數常有,比方說實對稱矩陣是正規矩陣,這樣就可以建立一個連結,我會把連結記在P觀念,在複習Q觀念時看到反向連結就去做回想。 - 有的時候為了強調若Q則P為非,我會記在Q底下。(隨興在這裡) - 多種做法的差異 - 比如 fork child 和 spawn thread,我會把差異記在一個 mechanism 的 note 底下,其餘的用連結導過去。(隨興在這裡) - 或者是一種演算法的各種 data structures 實作版本,連結全部記在演算法這邊,其餘就是反向連結。 ### 看錯題目的偏誤 - 計算錯誤可以全部放在另外一本錯題筆記,但不要太常複習,這樣更容易陷入同樣的 Pattern 而持續計算錯誤。 - 分清楚粗心跟觀念錯誤很重要,不要一味的把觀念錯誤大而化之成粗心二字。像是看錯名詞跟搞錯名詞是截然不同的問題,前者可能是眼殘或者英文很爛,後者就是沒把觀念釐清,視A為B。 - 題目的理解取決於知識的掌握,還有更重要的:英文閱讀水平。可以再準備一本筆記,把不會的單字、片語、句構、文法寫上去。 ## 八、關於題庫、考古與原文書 這兩次考試我都只有寫過台大跟交大的考題,大部分又都只寫台大的。因為縱然都考六科,各校的出題範圍仍然存在差異。 不妨用機器學習的視角來看考古與考試: - 只練單校考古很容易過擬合 (Overfit),會有因小失大的疏漏。 - 練多校考古可以提升泛化能力 (Generalization Ability),但有領域偏移 (Domain Shift) 的風險。 這些問題的取捨,取決於自己的訓練方法和調參(通靈)技巧: - 提升泛化能力應該是在題庫階段就要達成的,可類比成模型訓練的預訓練 (Pre-Training)。 - 因此相對而言,考古就是微調 (Fine-Tuning)。模型微調可以透過學習率下調,或者凍結部分神經網路層等等減緩模型參數變動的做法,來達成特定領域的專精。 所以寫考古很重要,但不能夠過於依賴考古。溫習題庫錯誤的內容,以及由上到下整理六科觀念,有助於減緩過擬合的問題。 我想讀原文書的內容或題目也會很有助益,特別是想考台大的朋友。這是因為只寫題庫也會產生領域偏移,且台大近幾年的資演題目很多都出自原文書,但原文書我只有略略寫過幾題,沒有時間做更多實驗,因此這份建議僅供參考。 ### 考古的寫法 另外進入考古階段時,每天都應該模擬考試當天情境來操練,幾點開寫幾點結束都要拿捏好。不過我有固定的生理時鐘了,所以只能做到每天寫一年的卷子,且照科目順序寫並計時,時間就無法完美與考試時刻表對上。一份100分鐘的考卷,我會抓80分鐘一個鈴聲,20分鐘再一個鈴聲: - 80分鐘內寫完且檢查完,代表難度容易 - 剩20分鐘檢查完,代表難度適中 - 剩20分鐘寫完並略略檢查,代表難度偏難 - 剩20分鐘寫不完以至於用猜的,代表難到爆 對我來說用這份客觀數據,搭配歷屆的錄取分數,比單看後者來得更容易看清自己的程度。 先把考古寫完再改考卷,不要寫一科改一科,如此不會影響心情。寫完大概一天會剩下 1.5 ~ 2 小時左右的時間訂正,我通常會訂正得很仔細,往往會訂正不完,所以每 3~4 天我會留一整天用來補齊錯題筆記。 最後不要相信奇蹟,考古週的表現就是考試當天的表現了。第一年我就覺得大概在備取最後徘徊,果不其然離備取最後一名差小數點;第二年考古大概都比正取門檻高10~20分,最後亦是如此。 ## 九、心態調整 - 是過去的決定造就現在的自己,所以未來想過得好,請少犯一些白癡錯誤。 - 萬念俱灰的人最強。 - 推薦一支影片叫[考研是一種簡單遊戲](https://youtu.be/-JbxdPWK9H4?si=GoH7I-rI4uabfWwk),影片提到的觀念和計算理論的 P/NP 有點相像。獻給所有未來的考生,以及過來人。 ## 十、結語 - 謝謝整個家族的全力支持,特別是我的父母與外祖父母,讓我能住得好也吃得好,心理也獲得充足的依怙。 - 謝謝在這段期間傳訊息打氣的同學與學弟們、把我拉出門的朋友們,特別是陪我跑完半馬的兩位朋友。 - 謝謝當兵認識的每位弟兄,我很幸運的在新訓認識一群支持我的同袍,使我重拾了落榜後遺失的信心。 - 謝謝這兩年放手一搏的自己。 - 謝謝兩年前逝世的祖母,這段契機不斷推著我走到今天。 ## 後記: 上榜後 ### 選教授與實驗室 嚴格來說這件事情在考試前就可以做了,讀書讀累了就用瑣碎時間蒐集並做排名。 選教授與實驗室不外乎幾點: - 有興趣的領域 - 有前途的領域 - 實驗室氛圍 - 教授人品 - 幾年畢業 ### 即時寄信 上榜只是起點,成功配對到實驗室與指導教授,才算碩士生第一階段的結束。研究所考試放榜都會有固定時間,像台大通常是中午12點正式公告錄取名單,然而江湖上都會有不成文的偷跑,各大學偷跑比比皆是。所以想拔得頭彩請務必早個至少一小時緊盯網頁,就像搶演唱會門票一樣。 為什麼會想要拔得頭彩呢? 請想像自己是位長年奔波於自身研究、實驗室運作、學生指導、學術會議、以及各項行政雜事的學者,在某個風和日麗的上午突然來了一封陌生學生的信件,隨後才想起來今天是考試生錄取日,接著又收到好幾封陌生名字的信,這時你決定從第一封開始讀,接著讀下一封... ...一直持續到下班那時,原本那天你還要上課,還要咪挺,還有許多工作要忙,甚至要想一下怎麼回應早上的信件... ... 身為教授的你會對以下哪些信件或內容有印象: - 第一封信 - 第十九封信 - "我對貴實驗室有興趣" (就寫這樣) - "我對XXX教授,您的研究領域有興趣" (不是自己的名字) - "我對OOO領域有興趣" (不是自己的研究領域) - "可以找教授聊一聊嗎" (就寫這樣) 答案應該呼之欲出,如果每位同學的信件內容都長這副鳥樣,身為教授頂多記得第一封信寫了什麼鬼話吧。 所以請務必即時寄信,當不了前幾封信也無所謂,只要內容盡量做到客製化、誠懇與(盡量)專業,我想教授也會願意設法找時間與你約談,或者誠實的回信婉拒,而非草草無聲。 不過無聲也有可能是教授真的太忙了,不妨隔天再寄一封信去確認,或者直接登門拜訪實驗室或辦公室都是個辦法。 ### 信件內容 - 個資: 名字+畢業校系+正取or備取 - 相關領域經驗: - 投A專業的教授就花篇幅講A專業的經歷 - 不要講太多B專業,牛頭不對馬嘴 - 選擇實驗室的原因: - 具體講為何教授的專業與自己的志趣相符 如果你沒有A專業的經歷,但是想投A專業的教授怎麼辦呢? 以下是我的經驗,建議考後開始做: - 找線上資源學習,YouTube 和 GPT 都是應該要習以為常的自學工具。 - 做個相關的小專案,可以是線上課程的作業,或者找開源專案貢獻,或者做個小工具出來,但都要跟A專業密切相關。 - 找幾篇實驗室發表的 Paper 來讀。Paper 不限於頂會,也可以是學長姊的碩論。 考後到放榜通常有一個月的空檔,撇開過年算兩週好了,一週拿來做小專案,一週拿來讀幾間實驗室的 Paper,以我的經驗是綽綽有餘。不要考完就一直躺平耍廢,考試已然過去,實驗室的兩年生活才是將來,所以給自己一段假期後就要認分的實踐目標。 ### 自身經歷 我的例子算很幸運所以僅供參考。 放榜前: - 倒數第二週找了一個 OCW 看完前幾堂課,並完成一份作業,報告放在 GitHub。 - 倒數第一週決定名單並讀 Paper: - 一共想投 10 位教授,並事先排好名。 - 每天瀏覽 1~2 間實驗室各 1 篇 Paper,請 GPT 幫忙做一些技術筆記,認真想一下這是不是自己的興趣所在。 - 最後一天開始擬定客製化的信件 - 剛開始寫比較生疏,把最優先的3封信擬好,並請 GPT 潤稿。 放榜日當天: - 早上看到名在榜上的當下,就在3封信附上錄取通知並寄出。 - 中午收到1封面邀,與教授敲定面談時間。 (A教授) - 下午熟悉撰寫模式後再寫3封信寄出。 - 晚上收到1封面邀與1封額滿,面談的教授先敲好時間了。 (B教授) 放榜日隔天: - 早上再寄1封信,隨後與A教授面談,談得很順利且滿意,所以當下就告訴教授已決定是他這間。但教授已經跟其他學生有安排隔天的面談,所以要等結果。 - 中午收到1封面邀,但教授沒講面談時間。 (C教授) - 下午再寄1封信出去,截至目前已經寄 8 封出去。 - 後來評估了目前的狀況,覺得剩下兩位教授的領域真的不感興趣(有點飄了),且自覺為時已晚就暫緩不寄。 - 隨後再寄信給3位發無聲卡的教授。 - 晚上收到1封額滿。 放榜日再隔天: - 早上再寄信給C教授並主動告知一整天都有空,教授說改線上但又忘記定時間,猜測是職務關係所以行政瑣事較多。 - 下午完成B教授指定面談前要交的文件,隨後寄出。 - 傍晚再寄信給3位發無聲卡的教授,有點急了,開始擬第9封信,同時再寄信給C教授。 - 晚上同時收到A教授的收留通知,以及B教授小改時間的通知,最後決定進A教授的實驗室,並寫信婉拒B與C教授。 最終結果: |面邀|無聲|額滿| |---|---|---| |3|3|2| 整體而言自認是奇蹟中的奇蹟,從放榜到找好實驗室,前後三天心情就跟雲霄飛車一樣跌宕起伏。以一個重考且轉領域的人來說,這樣的成果著實滿意。我想除了學歷與過去兩週的準備外,真的是祖墳冒了九尺青煙。