研發替代役面試心得 (聯發科)
基本上很早就已經決定會找研發替代役的工作,主要是覺得當兵即便是一般替代役,都有種浪費人生一年的感覺,尤其看了一些朋友的心得更是如此。當然,前提是研替找的公司也不能太差就是了,無論是發展性或是薪水,畢竟一簽下去就是綁三年。
找尋目標公司
三月份的時候學校辦了非常多的企業徵才講座還有就業博覽會,當時想說趁著就博會去多認識一些以前不熟悉或沒聽過的公司,不過走了一圈發現好像能去的還是那幾間就是了 XD 話雖如此,還是花了些時間再去更深入研究這些公司有什麼樣的職缺和工作內容,然後把目標的公司列出來。最後選中的目標有:
群暉 (Synology)、聯發科 (MediaTek)、聯詠 (Novatek)、瑞昱 (Realtek)、KKBOX、Garmin、VMFive、趨勢 (Trend Micro)、和沛 (Hope Bay)
這順序當然也是稍微有點意義的,考量了包含公司發展性、興趣、薪資水準等等。一般大家說第一份工作不要太在意薪水,反而應該考量能不能學到東西,但我認為去這些公司應該都能夠提升自己的戰力,所以很現實的薪水的影響力便提高了不少。很可惜的是,以臺灣的現狀來說,純軟的薪水還是沒辦法跟 IC design house 比較 QQ
不過 MmNR 這類 design house 的部分,主要只考慮 Linux Kernel、Android Framework、RTOS 之類的 team,純 driver 或 3gpp protocol 的部分我還是比較排斥的。
說到薪資期望的話,以交大資科碩畢新人來說,我是把目標訂在月薪至少 60K、年薪 100up。上面列出的 9 間公司就我了解,大約有 7 間能符合至少 60K、5 ~ 6 間能破百。
履歷準備
基本上履歷準備沒有花我太多時間,因為從大三開始一路的實習申請都會需要用到履歷,所以我有定期在維護,我自己是以下面幾個原則在寫履歷:
- 濃縮在一至兩頁以內,作品集可當做額外附件
- 條列式呈現、排版乾淨舒服、用字及大小寫精準
- 以由新到舊、重要到一般為排序原則
- 讓履歷看起來不失專業,但也不要吹噓!
- 反覆以 HR、面試官角度檢視履歷
- 適度為公司、工作職缺客製化
至於中英文的話基本上我都以英文為優先,但我在面聯發科時兩個版本都有上傳,結果 HR 印出來提供給主管的是中文版…… 另外,我是認為硬是規定只收中文履歷的科技公司,不去也罷吧。
有興趣的話可以參考我的簡歷 [PDF],作品集內容則跟我的個人網頁上放的大同小異。
面試準備
我是在五月下旬曾經參加過聯發科辦的一個 invite-only 的活動,所以之後拿到所謂「超早鳥面試」的資格,但說實在也是早到讓我措手不及:五月底上傳履歷、六月初安排面試時間,在期末考、期末專題水深火熱的六月底面試……(結果今年聯發科六月底就公開職缺,最後也是沒早鳥多少囧)
因為時間有限,大概只有三四天的時間準備,所以就以爬前人心得文的方式來尋找準備方向:
- PTT Tech_Job 精華區面試心得
- 網路上找的 C 語言考古題
- Jserv「資訊科技產業面試模擬和工作咨詢」上面同學的模擬面試內容
- 快速複習作業系統、計算機組織
- 快速瀏覽自己整理的「Linux Kernel 學習筆記」
如果是面群暉的話,因為面試風格比較接近 FLAG,需要著重的可能是資料結構、演算法的部分,準備方向可以參考我之前面試 Google 實習時整理過的:軟體工程師面試資源整理。
一面
聯發科軟韌體工程師的一面會先有一個 C 語言的考試,題目分成選擇/填充題跟上機考兩部分。選擇/填充題的部分說實在考得滿刁鑽的,滿大比重是 pointer、reference 和 bitwise operation,我承認我猜了好幾題…… 上機考的部分題目不太複雜,用暴力法也能 AC,不過時間還是有點趕就是了(其實我沒解完)。不過好消息是,考古題命中的比率相當相當高,而壞消息是我考古題只看了一兩眼沒有真的下去寫,所以都只是「啊,這好像看過」這種殘念的感覺。
一面我總共被安排了四場,在兩天之內面完。除了一個台北的主管 concall 加入,其他都是竹科總部,一共面了 17 個部門…… 一場表訂是兩小時,而每一場也都真的幾乎有用滿,有一場甚至到兩個半小時,真的是體力、喉嚨的折磨。
一面的流程基本上都是自我介紹 -> 面試官提問 & 技術問題 -> 部門介紹 -> 問題發問,來的主管大多是技術副理或技術經理,極少數部門是派資深工程師。聯發科的面試是可以使用投影機的,所以我有準備一份投影片,主要內容除了學經歷介紹外,放了三個 App(快速介紹而已)、一個專題、三個 course project 和一個黑客松作品。因為我們 Lab 好像都沒這麼早就確定論文方向的,所以沒有特別放論文大綱或研究計畫,而四場下來其實也都只有稍微被問一下研究方向而已。
在跑投影片的同時其實主管就會一直打斷問問題了,作品的部分特別喜歡問團隊分工、遇到的困難、最難 debug 的地方,另外我也常被問到在 Gogolook 實習時負責產品開發的經驗。而被問到的技術問題則通常都是從作品的細節中延伸出來的,而且問題都會一直延伸再延伸,遇到困難主管也都會給 hint。下面就稍微列出我有印象的(特別列出 origin 是指這問題怎麼被延伸出來的 XD):
- App 針對網路、藍芽連線不穩或中斷時所做的處理。
origin: 我有個 App 是整合手機、平板並透過藍芽連線互動
- multi-threaded 的程式需要注意什麼?怎麼做 synchronization?
origin: 專題的架構及特色就是基於 multi-threading
- lock 可以如何實作?spinlock、mutex、semaphore 的差異和實作?考慮 single-core single-thread、single-core multi-thread、multi-core multi-thread 不同情況呢?
- atomic 是什麼?可以怎麼實作?
origin: binder-for-linux project 有提到遇到 atomic 的移植問題
- user mode、kernel mode 的差別?trap 是什麼?簡單解釋 system call 流程。
- TCP 和 UDP 的差別?對 TCP 有什麼了解?
- pipeline hazard 是什麼?cache 是什麼?什麼時機會用到 cache?
- 白板題:隨意寫一個 sort int array 的 function
- 白板題:告訴你一個 protocol 封包的欄位配置,考慮跨平台的情況下應該如何定義 struct 結構?compiler 會做什麼?考慮 Big Endian 和 Little Endian 呢?
這題沒答好,但後來發現其實應該會一點但怕錯不敢講出來……
OS 的部分畢竟 Lab 就是做 system 的,而且修完 OSDI 感覺了解又更深一層,所以應該回答的還可以,主管說「good」真的會讓信心大增 XD
其實我甚至有兩場是完全沒被問到 OS、計組這類的技術問題,可能是因為投影片準備的內容就太多,過去 project、實習經驗也算豐富,反而很愛問我經驗類型的問題。而除了技術問題之外,會問的不外乎就是人事資料表上面那些經典人生題,例如求學過程遇到最大的困難、職業生涯的目標之類的,另外因為有交換學生的經驗,也常被問到是否有出國讀 PhD 或工作的打算。
部門介紹的階段很重要的一點是:請同時簡單做筆記。尤其是我面了 17 個部門,到最後要勾面試回函上確定沒興趣的部門時真的是個艱鉅的挑戰…… 最後的發問時間最好也事先想一些問題,不過我大概也只問了:
- 「聽說」WCT 工時都…… 所以實際上部門工作的狀況是?
Ans: 平均 9–21,沒以前這麼誇張。
- 部門的新人訓練期和 training 方式、內容?
Ans: training 通常至少三個月至半年因人而異,內容有些會是前輩報告的錄影。
- protocol team 所需要的通訊相關知識程度?部門同仁的科系背景?
Ans: L2-L4 其實很多人都沒背景或經驗,L1 則大多都是 EE 畢業的,但他們想找一些資工的人進去。
最後再 highlight 一下,面試回函千萬仔細考慮再開始勾,因為會影響到二面,而且原本說研替最後部門結果可能會是抽籤決定的(也可能主管們會協調)。我最後狠下心來把 L1 PHY 的 team 全都推掉了,protocol team 只勉強留了一兩個 L2-L4,因為我真的很不想讀 spec、寫通訊 protocol 啊 XD
另外很可惜的是,因為我算是所謂超早鳥的計畫,似乎有限定部門(可能因為如此才清一色 WCT modem 相關 team),所以後來請學長幫忙內推比較有興趣的 Android TV 部門最後聽說被 HR 擋下來 QQ
二面
二面依照部門主管需求會安排多益 (TOEIC) 模擬測驗,我個人是完全沒有考過多益的經驗,只有考前幾天稍微看一下有哪種題型就上場了,但最後主管也都沒有提到分數,可能就考得一般一般吧 XD
原本以為二面會是處長級,結果來的也都是經理等級的主管。流程部分基本上跟一面一模一樣,還是有被問到少量技術問題。
特別注意的是,沒二面的部門不一定代表被刷掉了,原本有個自我感覺良好的部門沒有進二面,一問之下才知道是一面就確定錄取了…… 所以有疑問的話可以問一下 HR,甚至寄信問主管之類的,不用像我一開始一樣有點小失落,寄信感謝主管時還順便問是哪些地方可以改進或是不符合職缺需求 XDD
隱藏關卡:HR 電訪
原本完全不知道聯發科有 HR 這關,PTT 上也很少提到(後來有查到一篇),而且更奇怪的是在安排好時間、跟我說電訪完才會知道結果後,隔天我又突然接到錄取通知……!?
原以為可能這通電話大概就是講 offer 了,結果還是照原訂的問了一些過去的學經歷,以及一堆經典人生題,約半小時左右就結束。於是又多煎熬了一個週末……Orz
整體時程
Tech_Job 板上都說發哥要人很快,不過真的自己面試時也是等得很緊張,而且說實在我的面試流程實在被拉得有點長,大概時程如下提供參考:
- D:上傳履歷
- D+7:一面時間確定
- D+22:一面(共四場)
根據 Tech_Job 板鄉民經驗,通常有進二面的話三天內會通知。
- D+27:二面時間確定
- D+36:二面(共兩場)
- D+43:電話通知錄取部門
根據 Tech_Job 板鄉民經驗,有錄取的話通常一週左右會通知,不然就是無聲卡。
- D+44:主管打來介紹工作內容、詢問兩個部門的興趣,後來說會回去再幫我協調一下
- D+45:HR 電訪
- D+48:電話通知改錄取部門、offer 內容
- D+85:收到紙本 offer
錄取部門的部分主管是真的會依據背景協調的,後來甚是還詢問了我的意願之後又重新分配到另一個比較有興趣的 team。
薪資部分早就是公開的秘密吧,應該 PTT 上隨便都查得到……
最終決定
最後決定接受聯發科的 offer。其實本來主要目標就是放在聯發科與群暉這兩間,但後來因為一些考量所以決定直接把群暉的面試推掉了。