[心得] 111 資工/網媒所心得文暨筆記分享

作者: ntuggkua (英京塚帳)   2022-03-16 00:53:38
[本文為代po]
前言:
寫下這篇的原因主要是為了對台大土地公還願XD,並且鼓勵之後要考資工所的學弟妹們,
考試不是那麼恐怖的東西,但每個人的學習歷程和讀書方法不太可能複製,並套用到其他
人身上就有效,因此建議大家心得文參考就好,心得文看個一兩篇後,放下手機拿時間去
讀書比較實際。
[個人背景]:
112工學院跨考,資工所考科無一學過,全部從0開始自學,也因此,準備初期就將目標定
在台大網媒上,將時間投入在軟硬體四個科目上達到最大利益,但相對的風險也比準備六
科考資工所來得高,畢竟資工所有四大四中二科可以考,因此不建議用像我一樣的投機方
式,時間充裕的狀況下還是乖乖準備六科,不至於把雞蛋放在同一個籃子上,台大考題難
度又非常不穩定。
111年考研成績:數學/軟體/硬體
台大網媒:X / 8x / 7x 正取
交大資工:落榜
清大資工:5x / 7x 正取
如同上述,因為數學沒有準備,清交其實是抱持著一種練筆的心態去考的,但清大計科成
績出乎意料的高,可能是今年離散部分較簡單,對我來說寫起來有點像智力測驗,又演算
法部分我應該
是拿滿的,意外摸到正取。
台大今年考題佛心很多,但我軟體還是粗心一堆,因此考試也是蠻吃考運的,土地公還是
有包我正取XD
[準備方法]:
1. 要不要做時間規劃表?
我討厭排定讀書規劃和時程來催促自己讀書的方式,因為我覺得排出來有種被時間追著跑
的壓力,又因為自己在學就讀中,沒有太多時間可以擠出來讀研究所的書,一天讀的時間
大概就是 6~8 小時,對比板上其他神人差蠻遠的,但我覺得重點在坐在書桌前的時間就
真的要完全善用,如果這 6~8 小時你能有 90% 的時間都知道自己是心無旁騖的狀態,那
就可以了,如果不行,就出去走走呼吸一下空氣。
2. 要不要補習?
我雖然有買資工所課程內容,但實際看完的只有演算法和記組,認真覺得依照你自己的讀
書習慣衡量要不要補習,資料結構和OS看了幾堂後,我就覺得不如自己去翻mage大和wjun
gle大的筆記比較快,這邊也感謝兩位大大提供的資源,除非有筆記上自己看了無法理解
,原文書和google完還真的不懂的部分,我才會真的回去找補習班的影片來看,不過這樣
的機會是蠻少的XD
3. 要不要刷考古?
我自己是連一年都沒有拿出來刷過的,但我有在各個科目讀完一輪後,大致瀏覽過台大5
年內的考古才做出這個決定的,因為台大出考古的機率偏低,刷考古只是幫助自己釐清觀
念而已,但刷考古的時間我可以投資在讀更多的材料,我選擇了後者,相對的,我會在te
legram的資工讀書會上回答其他人的問題,把自己所學內容消
化後輸出成別人能理解的內容並教到會這個學習方式比較適合我,又大家會在上面的問題
通常都是經過篩選了,基本題一般不會出現在上面,在吃飯、空閑時間回答上面的觀念題
和值得討論的題目是一個互惠的過程,也省去了我找考古來刷的時間。
要不要刷考古只能說因人而異,我的方法不一定適用於你,建議自己找到適合自己的
讀書方式就好,我自認我的準備方式不太適合以穩妥上榜為目標的人。
[四科讀書方法]:
下面是我讀各科的方式和一些讀書資源,供大家參考
1. 資料結構
補習班講義搭配Mage大講義 -> 自己做一次筆記 -> CS 6.006 -> CLRS
資料結構的部分我其實只看過兩輪,因為這科老實說不難,只要先搞懂ADT的意義,知道
資料結構是為了讓對某些資料做operation的時間複雜度可以下降或一些特性而有不同設
計,理解他是設計方式後,就開始自己想說,如果是我,我會怎麼設計這些資料結構。
再來將各章節的ADT中的定義和上面的操作搞清楚,並了解其時間複雜度和為什麼要做這
個設計就差不多了,建議去拿mit CS 6.006的quiz 1來寫,裏面會有題目要你針對某些應
用,對某些item去設計資料結構來存資料以達到針對此應用最有效的設計,大概寫完就有
上面的素養了。
還有比較常考的就是sorting,要理解每個是怎麼操作的,什麼情況會用他,具備什麼性
質等等,大致上就沒問題,還有quick sort的證明。
剩下的比較難的就是一些偏定理的部分,這部分大概具備數學歸納法的能力即可應付,很
多資結定理證明都仰賴數學歸納法,反倒是比較難的如hashing的證明是需要在CLRS上才
能讀到,建議某些高等樹和hashing那章直接讀CLRS就好,對於觀念理解比較妥當。
讀書資源:
1. wjungle講義
2. Mage講義
3. 補習班講義
4. 聖經本
5. MIT CS 6.006
6. 何謂資料抽象化(https://reurl.cc/GoRDpZ)
7. Data Structure Visualizations (https://reurl.cc/RjlDer)
2. 演算法
林立宇講義 -> CLRS -> 台大ADA -> MIT CS 6.006 -> MIT CS 6.046 -> CS 6.890
這科和記組是我覺得最有趣的科目,讀的很開心,最一開始是要先學會當遇到一個演算法
時,要如何分析其執行時間,會用一個時間複雜度來分析他的bound,時間複雜度的部分
比較偏數學理論,要完全搞懂,搞懂後只要能抓住前面的觀念就能進到後面的演算法設計
技巧了,遇到問題時,要怎麼設計一個好的演算法來解他,最基本的就是用brute force
,可以先想一個暴力法得到解這個問題的upper bound,再去想要低於這個upper bound的
話要怎麼下去設計,設計策略又有Divide & Conquer、Dynamic Programming、Greedy Al
gorithm等等,要注意題目是否具備使用這些策略的特性如optimal substructure、greed
y choice property和overlap subprob
lem,再下去用這些技巧設計演算法。
其中最常考的是Dynamic Programming,分為四個步驟,定義子問題 -> 寫出子問題的遞
迴關係式 -> 用bottom up的方式建表格填表得原問題的optimal value -> 紀錄額外資訊
得opti
mal solution,寫多了就知道最難的是定義子問題,但考試會出的pattern就那幾種,自
己練看看mit的期中、末即可。
之後是圖論演算法,這邊要會證演算法的正確性,並了解他可以用在哪些應用上,遇到哪
些情況時,可以reduce到這個問題的problem instance用這裡的演算法去解等等,尤其是
flow network那邊,CLRS的證明很精彩,但補習班講義完全沒提到,清大教授也有跟我抱
怨過flow network不該考,因為考了也只是考跑跑實例,但真正要通盤理解得會這裡的證
明。
再來就是NPC了,要先搞懂這些問題的集合,complexity class,還有reduction的含義,
推薦去看CS 6.890,那個證得馬力歐是NPC的天才教授,講的有夠清楚,超級舒服,如果
不像我讀到走火入魔的可以停在第一堂課就好XD
這一科準備方式就是多寫,把邏輯理清楚,對於演算法背後的正確性要會證,其實就沒什
麼問題,下面會附我演算法的筆記連結。
讀書資源:
1. 林立宇課本
2. CLRS
3. CS 6.006
4. CS 6.046
5. CS 6.890
6. Stack overflow
7. GeeksforGeeks
8. Leetcode
3. 作業系統
周志遠線上課程 -> 補習班講義、筆記 -> 恐龍本 -> Linux 核心設計
-> System programming
不好準備的一科,有夠雜,我其實補習班講義只讀過一遍,剩下時間就幾乎拿去讀一些原
文書和不在課本的內容,只能說多想,作業系統其實就是一個很大的abstraction,這裡
要怎麼設計,裡頭的各個module的設計,都是底層硬體知識和演算法、資結內容的結合,
只能多想,多看,有時間的可以去實作玩看看,我是沒時間,剩下的交給土地公。
讀書資源:
1. wjungle講義
2. Mage講義
3. 補習班講義
4. 恐龍本
5. Linux 核心設計
6. Stack overflow
7. System programming
8. 周志遠作業系統線上課程
4. 計算機組織
補習班課程 -> 補習班講義、筆記 -> CMU Computer architecture
2015 -> 原文書 -> paper閱讀
另一個讀的最有興趣的一科,相當推薦看CMU Computer architecture 2015這堂課,老師
講的超級超級超級棒,不只是著重在單一系統的介紹,而是教你如何因為一些考量,決定
你要在哪一層的抽象層上做設計,要做怎樣的設計
,這樣的設計的優、缺點是什麼等等,相當於從設計發想到實作細節到分析設計優劣的整
套流程,尤其是補習班老師我認為沒講很好的第六章(SIMD, Vector Machine, GPU)這
些章節在上完CMU課程後只能說通體舒暢,再去讀該堂課推薦的一些paper,對付手寫題我
覺得游刃有餘了,下面一樣會附我在這邊的筆記。不過不太推薦他2021的課程,好像變成
比較著重在memory上頭的設計,雖然是趨勢但不適合應付考試。
但這裡我是有點讀的太過頭了,單純讀的有興趣會一直讀,如果只是應付一般考試的話,
可以只把張凡課程搞懂,完全弄通保證自己這些東西都不會錯,應該就足以上榜了。
讀書資源:
1. wjungle講義
2. Mage講義
3. 補習班講義
4. Computer organization原文書
5. Computer architecture原文書
6. CMU Computer architecture 2015
7. 一堆paper
[總結和筆記分享]:
總結來說,大家不要太過畏懼考試這件事,其實要上榜不難,可以想說如果是準備資工所
考科的話,認真準備總會有一間可以去的學校的,像我準備時數不知道有沒有1000小時的
考生都能上榜了,你們也一定辦得到,最後感謝一下我的爸媽讓我不用顧慮生活可以好好
準備考試,感謝我的女友考試期間一路陪伴著我,感謝資工讀書會的戰友們,特別是裡面
的幾個,會特別私訊我問我問題,討論的過程中也讓彼此變得更強。
最後預祝看到這篇文的都能上榜!要記得上榜後才是真正的開始,找教授遠比考試還痛苦
的QQ。
下面是計算機組織和演算法的筆記連結,最近找教授還沒有時間整理,考完會再整理的更
精簡的:
https://reurl.cc/yQj4Ny
[找教授心得]
找教授真的是會找到心累,尤其是你是跨考的,可能我原先有頂著112校名,因此沒遇到
直接拒絕我的教授,沒滿的教授都有排到面談的機會,但自認背景或履歷不足的考生,盡
量在考完到放榜的這一個月開始想辦法充實自己的履歷,不要抱持著放榜再來做的心態。
1. 要不要寄罐頭信
我認為這是權宜之計,的確有教授抱怨過罐頭信,但這是制度的問題,不是我們考生的問
題,因為大部分教授篩選人很多用FCFS的標準,時間一慢就滿了,又考完到放榜這些時間
很難把各個教授的領域都摸到最熟,進而寫出適合的信件,只能說那些你們很有興趣的教
授盡量還是自己打,其他的就用罐頭信海投吧,大部分教授都能理解的。
不過也可以用這種方式 自我介紹 -> 專題內容 -> 對教授感興趣部分 -> 謝謝教授,只
改對教授感興趣部分這邊就ok,善用考完的時間調查好教授。
2. 寄信時間
一放榜就寄,不要拖,如同上述,很多教授是以FCFS的方式在挑人,要被這些挑中的方法
只能趁早。
3. 找教授要注意的事項
一、 保持禮貌
二、 別直接敲教授的門,寄信約時間是成人年的禮儀
三、 做好功課再去面談,別浪費彼此的時間
四、 先認識自己要做什麼,找教授的標準是什麼,如:兩年畢業、涼 or 學得到東西、
是否能實習、薪水、meeting頻率等等
五、 誠實以告,別不懂裝懂,教授不笨,何況進去後要長期共事的,騙得了一時騙不了
一世
六、 面談後記得寄一封信回覆你的意願,不論要不要去
4. 敲實驗室事宜
我遇到的實驗室學長姐人都很好,有的還很好笑XD,看了就很想加入他們,實驗室的人很
多時候才是你真正相處的對象,記得先去看看實驗室風氣,還有看看是不是每個人都會被
強制要求待在實驗室,很多問題也只有學長姐們才清楚,也可以打聽到一些八卦,反正敲
就對了, 當然要比較有禮貌的方式是寄信約時間,但學長姐們都經歷過我們這個時段,
相信他們都很願意幫忙的。
5. 如果我真的沒有任何背景,也沒有任何程式經驗怎麼辦?
誠實以告,並且做好你的讀書計畫和future plan這些部分,讓教授知道你是有動力和學
習力的人,能考上研究所的你們都很厲害了!剩下的只要證明自己是有熱忱學習的就好,
讀書計畫的安排就是很好證明自己的方式。
6. 跨考找教授有關係嗎?
我目前遇到的教授都對我很友善,跨考不會是你的阻礙,但是千萬要準備好自己考資工所
的動機再面談,和未來進了實驗室要做什麼,還有自己有沒有程式設計的經驗等等問題的
回答,這些都是教授評估是否要收你的條件,盡可能的表達出自己的優點和要找的教授的
領域的結合,把找教授當作是工作面試一樣,我們挑教授的過程,他們也在挑我們。
下面是一些面談和敲實驗室時可以問的一些問題:
拜訪教授可問的問題整理:
- 想請問老師碩一的時候,主要是修課和看paper嗎?還是也需要幫忙接計畫呢?
- 想請問老師如果接計畫的話,計畫會是碩士論文題目的方向嗎?
- 對碩班生的規劃
- 想請問老師individual meeting和group meeting的頻率?
- 進入實驗室前可先學習什麼
- 進入實驗室後有相關的訓練嗎
- 請問老師暑假時間需要進入實驗室預先訓練嗎?
- 請問老師有推薦哪本書或是期刊可以讓我在開學前先充實自己的能力的嗎?
- 請問老師有什麼和業界合作的案子嗎
- 實驗室主要用什麼程式語言?
可以問學長姐的問題:
- 老師是否親自帶,或是由博班生帶,又或是要自立自強
- 老師常來嗎?
- 老師對碩一生的訓練
- 請問老師對學生待在學校的時間上有什麼特別的要求嗎??
- 請問老師在畢業上有設定什麼門檻??
- 實驗室會定期有什麼聚餐或是活動嗎??
- 實驗室主要研究方向?
- 對研究生有何要求與一般挑戰或障礙?
- 如果有正常跟著進度幾年可以畢業?
- 大四升碩一暑假是否先提前進入實驗室?
- 進實驗室前大四下學期要先做什麼安排?
- 論文題目如何決定?
- meeting方式?
- meeting一週一次?
- 畢業門檻的要求?
- 教授的個性/禁忌?
- 實驗室作息?
- 課業跟研究間如何取得平衡?
作者: kyuudonut (善良老百姓)   2022-03-16 01:19:00
推推,Onur Mutlu 老師真的上的超好。如果覺得自己對架構很有興趣,想實習/正職做 RISC-V CPU 歡迎站內信給我。或是想了解computer architect 的職涯發展,也歡迎找我聊聊。
作者: Liayu822 (Liayu)   2022-03-16 03:06:00
想問一下telegram 群組要怎麼加入~找很久都找不到嗚嗚
作者: Iversonshao (蘆洲戰神)   2022-03-16 13:56:00
作者: pipiLUANAIAI (狗貓咪)   2022-03-16 14:09:00
現在有discord群

Links booklink

Contact Us: admin [ a t ] ucptt.com