【學長姊帶路】軟體工程師(瑞昱/台積電/慧榮)求職心得
原標《[面試] 2022 研發替代役面試心得 — (下)》
文/Alan Hsieh
閒聊
太久沒更新文章了,偶爾上來發現原來我的面試心得可以幫助到人,趁現在還有想到,也還算有空的時候來補一補,之後可能就都在忙工作了QQ
正文
上篇的面試心得只有群聯,這次會更新的公司有:瑞昱、台積電跟慧榮。
之後如果有新文章大概也會偏向跟工作內容相關,那就開始進入正題吧!
瑞昱 (RealTek)
WIFI 系統設計工程師
這是我第一個面的螃蟹,也是個人感覺最硬的,但獲益良多。
面試時間約 90 分鐘
一開始就是自介,但主管蠻想要看你的實力在哪,所以 PPT 內的技術內容不夠吸引主管的話就有點難辦。後來主管直接請我打開 Leetcode 找題目寫。分別是 Leetcode 347. Top K Frequent Elements 與 Leetcode 78. Subsets
蠻像純軟的感覺,雖然我也沒面過純軟QQ
主要都在問怎麼改進、討論作法、討論時間/空間複雜度、看Solution,畢竟我太久沒寫了,全部忘光,寫出來的解都不是最佳解。
後來主管直接表明我在他心中是中間位置,所以他會繼續面試,請我等兩個月左右,但最後是無聲卡,絲毫不意外XD。
心得
主管人不錯,給人感覺很嚴謹但可以看出他是蠻認真的人,面試過程不算是很嚴謹但基本上主管整場就是在找出你的實力在哪。WIFI是帝王蟹部門,可以感覺主管求才若渴,比起基本的C語言知識、作業系統跟計算機組織等等底層知識,主管比較注重資料結構演算法這種程式上解決問題的能力,因此建議想來面這個部門的建議刷題刷好刷滿,如果有上機考想不出來,建議不要太快就放棄,可以跟主管多多討論,主管喜歡不會很快放棄的人。
TV系統設計工程師
這關面試過程中覺得蠻順的,但沒有二面也是蠻迷的,就當個經驗吧
主管說大概面 60 分鐘,最後面試時間約 90 分鐘
一樣一開始做自介,主管沒問啥問題後就出一些 C語言觀念的題目讓我寫,下面是題目,我都盡量把題目記起來,應該是沒記錯。
// 1.
char attr1[20] = "0123456789";
char* p = attr1;
printf("%d", strlen(attr1));
printf("%d", sizeof(attr1));
printf("%d", sizeof(p));
// ===========================================================
// 2.
// 程式在幹嘛、cnt值多少
int a = 0x1011;
while(a)
{
cnt++;
a = a & (a-1)
}
printf("%d", cnt);
// ===========================================================
// 3.指標經典題
// 哪裡錯、為什麼錯、怎麼改
void getMem(char* a) {
a = (char*)malloc(sizeof(char));
}
char *x = 0;
getMem(x);
// ===========================================================
// 4.
// 哪裡錯、為什麼錯、怎麼改
int *inc = 0
*inc = 0x88
// ===========================================================
// 5.
float a = 1.0;
printf("%x %x", (int)a, (int&)a);
之後就是出一題機率問題,我直接回答不出來XD
題目:給你10億個網站,用排序需要24個小時才能找出最多點閱的網站,那如果給你1個小時,要怎麼做才能找出接近最多點閱的網站。
解答:每100萬或1000萬個抽出一個樣本,之後對所有的樣本做排序,最大的就是答案。根據高斯分布,很有機會可以接近最多點閱的網站。
最後就是介紹部門工作內容跟提問環節。
心得
主管人也不錯,會跟你小小閒聊,面試過程也很舒服。主管蠻在意你對底層的知識,如 C語言的基本語法跟指標應用、對底層知識的了解如中斷、mutex、semaphore、spinlock、ISR這種底層很常碰到的東西,主管大概也知道 TV 比較難找到人,因此題目不會出多難,但螃蟹面試好像都很喜歡考益智題(?),感覺二面蠻穩的(自我感覺良好),主管說有問題可以二面再問,結果感謝函,嗚嗚。
Embedded System Linux 系統軟體設計工程師
兩位面試官,都是工程師,本來主管要一起面但主管今天請假
這次面試記的東西就不是太多,就列一下有被問到,我還記得的題目
1. 記憶體階層敘述
2. 為什麼要記憶體階層
3. cache 舉出兩種演算法
4. mutex & semaphore 差異
5. call by value & call by reference差異
6. 請用記事本 or 其他撰寫 swap 三種版本(call by value, reference, address)並解釋
7. interrupt 處理流程
8. interrupt 與 exception 差異
9. 舉出兩個 exception
10. code section, data section, bss section是什麼
11. call function 時 assembly code 如何運作
12. stack 與 heap 差異(不是資料結構)
13. 有碰過 kernel 嗎
14. compiler 與 linker 差異
15. static linker 與 dynamic linker 差異
這次我覺得沒啥重點,就是比較多 OS 與一些 C 語言的問題,因此就沒有心得了,最後一樣是拿到無聲卡。
台積電 (TSMC)
SRAM Compiler Quality Control
一面:一位主管,第一線主管面試 (主管說大概60 分鐘,最後約90 分鐘)
自我介紹&專案:主管會從自我介紹問問題,但比較想看專案的部分
部門介紹
職位屬於DTP部門,台積雖然是主要做代工,但DTP部門比較像是小型的Design House,人數大概1000多人,工作內容主要是負責是幫客戶Design、Tape out SRAM的部分,確保出貨品質。 部門工時大概加班到最晚7~8點、不常加班,要加班之前通常都會事先知道,不會要下班才說, 也有人會WFH加班;不用輪班、不用on call、不用出差,工作壓力沒有設備、製程那些那麼大。
考試&情境題
輸入為一個list例如{1, 2, 3},輸出一個list = {[empty],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]},包含所有的元素組合的集合,用講的不用寫code,大概是這題 Leetcode 78. Subsets
我用遞迴解、小畫家解釋,主管說可以簡單一點,大概如下:
vector<int>list = {1,2,3};
int num = 2 << list.size();
for(int i=0;i
{
vector<int>res;
int tmp = i;
int idx = list.size()-1;
vector<int>res;
while(tmp)
{
if(tmp % 2 == 1)
{
res.push_back(list[idx]);
}
idx;
tmp >>= 1;
}
cout << res << endl; // 每次的res湊起來就是答案
}
情境題
- 如果你進度落後,如果在weekly meeting說出來會被罵、但不說出來還有機會補救,你會選擇說或不說?
答:我會說,因為我做不出來是我的問題,但如果因為這樣沒有說出來有可能會影響到公司,因此我會說出來,然後會提出為什麼進度落後、怎麼改善之類的。(主管有補充,開會時要跟主管要support的人力等等的補救措施) - 當你很努力也很盡力、但常常落東落西、code有些忘記寫、沒寫到,結果一直達不到主管的要求,那你會怎麼辦?
答:這聽起來不像是主管的不合理的要求,比較像是我的問題,但我目前沒有遇到這種問題,我都會做TO DO LIST,規劃之後的schedule。 再問:有被指導教授說過嗎。答:目前沒有。 - 當在分配Project時有細節沒說清楚、派工沒說清楚,你會怎麼做?
答:我會先去釐清這個沒有說清楚的工作,大概是屬於誰的工作,如果是屬於同事的我會去跟他溝通:這部分應該是屬於你的部分,你做比較合適,我做也可以,但你做的話之後code review、或程式要merge或溝通之類的問題都可以比較少,也可以避免整個Project完成的時間被往後拖延。
心得
主管人還算不錯,但開視訊的部分被GG鎖住沒辦法開蠻可惜的。此主管也是跟螃蟹WIFI部門的主管有點像,主要注重在解決問題的能力,但也會問你情境題,主要應該是要看面試者與公司的文化是否符合。從主管的口中大概可以知道學歷蠻重要的,畢竟傳統印象就是學歷越高學習速度越快。
最後主管有說要給我電話讓我詢問面試結果,但我腦弱說有個大概通知的日期就好就婉拒主管電話了QQ,希望主管不是會在意這種事的人,不然DTP部門是GG的少數涼缺,希望可以offer get。
主管表示研替名額是各部門自己搶,不一定有,面試時似乎只有1個。
最後 HR 來信感謝函,表示要找能馬上上工的(?)
慧榮 (SiliconMotion, SMI)
ESL Modeling 工程師
一面:三位面試官,一位主管兩位工程師,結束後人資問有沒有其他問題(約 120 分鐘)
部門介紹
新部門、不用出差。負責驗證FW來的功能,盡量在上FPGA跑之前把FW那邊的issue解決,剩下的issue基本上就是HW那邊的問題。主要用C++,會需要讀Verilog,全部都用OO包起來,會需要懂整個系統的流程、彈性工時。
白板題 — Leetcode
Leetcode 169. Majority Element
第2題是我請他另外出的,因為我直接說我第1題看過
第2題也是說我看過,後來直接討論除了最佳解以外的解法、可以用哪些 STL、時間空間複雜度等等
問問題
1. 碰過Verilog嗎、對Verilog還記得多少
2. Pure virtual function是什麼
3. Pipeline是什麼
4. Write through與write back差異
5. 用過ARM的嵌入式板嗎
6. ++i、i++差異、哪個比較快
7. 對cache coherence 了解
8. 鑽石繼承是什麼(菱形繼承)
9. 為什麼用Swift
10. 遇過的困難怎麼解決
11. 都用什麼編輯器寫Code
12. 為什麼用Git、專案都放在哪
13. 為什麼不用SVN、啊另一個版控呢(忘記叫啥了)
14. 有沒有跟人合作專案的經驗
15. Teamwork結果自己做專案會不滿同學嗎(大學)
16. 喜歡哪個程式語言C++或python、為什麼
17. 神經網路訓練有問題怎麼做
18. 會跟教你的同學有爭執嗎
19. 怎麼debug、會下中斷點嗎
20. 有用過assertion嗎、有看過嗎、在哪看過
21. 接觸過最大的專案大概幾行
22. 在104有看過我們的職缺嗎
23. 用過哪些STL
24. 知道哪些排序演算法、時間複雜度
25. Quick sort與Merge sort差異
26. 為什麼大學C++的分數不高
27. 哪件事讓你做完最爽、最有成就感
心得
無,就是蠻有趣的一次體驗,但其實自己當下也沒有準備的很完全,基本上都是靠臨場反應來面的
三位面試官人都很好,還會跟你說不要緊張,面到後來算是愉快的面談,整體面試氣氛很好
總結
面試心得部分到這邊就告個段落了,之後會找個時間來介紹我們部門相關在做什麼的,來推廣一下我們的工作,之後文章也會是跟 Code 相關或工作相關,股票相關的部分應該不太會出現,如果有人有興趣再留言跟我說吧XD。
只能說在大徵才時代,像我這樣的雜魚也能面到一線IC,真的是在風口上豬也會飛XD。也希望這兩篇面試心得有幫助到大家,雖然過了兩年才整理出來有點晚就是了XD
※本文由 Alan Hsieh 授權勿任意轉載,原文《[面試] 2022 研發替代役面試心得 — (下)》
瀏覽 955 次