1 of 10

資訊科技公司面試演練:

LeetCode和台灣IC設計公司軟體職缺常見題目

https://hackmd.io/@sysprog/info2021

黃敬群 (Jim Huang) <jserv.tw@gmail.com>

台灣國立成功大學資訊工程系

2 of 10

Disclaimer/免責聲明

  • 我無意建立「面試補習班」,請勿將後續看作「必考題」
    • 主持「資訊科技產業專案設計」課程的初衷,是我在大學教書的這九年間,看見太多原本不差的畢業生沒有選到能夠發揮自身特性的職缺,面對大好機會卻視若無睹。我希望藉由開課,做點改變
    • 不只有意投入資訊科技產業的學員正在專注本課程,我知道某些科技公司的主管也會留意我所開的課程,甚至從中獲取面試題目的靈感。無論你是否繼續投入本課程,請留意跟你一同競爭的人,正在持續改進自己的缺失
  • 本講座所收集的題目皆取自網路論壇和自行演繹變化,與個別公司的商業機密無關

3 of 10

探討主題

  1. 避免用「筆試」和「比賽」的心態去準備: 留意interview字面上的意思就是「交互」的「意見」,有效的「互動」遠比你背誦大量題目來得重要
  2. 針對開在台灣的職缺,無論是外商或本土企業,其實面試題目和風格和矽谷軟體公司有非常大的差異,我們應當對症下藥
  3. 就像棋局,作為interviewee的我們,不該只是被動回答問題,還要預測interviewer接下來的動作,並適度引導到對自身有利的方向

4 of 10

不要盲目準備

  • 不少台灣的資訊科技公司其實不考LeetCode
    • 面試主管不易鑑定應徵者撰寫的程式碼(當主管就不寫程式)
    • 出題者傾向有「標準答案」而非討論(要給HR批改)
    • 對於「即戰力」的追求
  • 「經驗」只是單方面的「過濾標準」,關鍵仍是「交易」時,能否建立「共識」
    • 10年工作經驗=1年工作經驗重複10次」?
  • 台灣資訊科技公司所開的職缺描述,需要先「揣摩」

5 of 10

面試:客觀來說

  • interview的過程就是探索與瞭解,公司的角度是了解interviewee能否帶給公司特定的目的
  • 精準傳達資訊
    • 履歷與最近的內容開始撰寫
    • 履歷是要快速了解這個人
    • 履歷資訊不足:在公司做了什麼,獲得更多的資訊來讓公司是否適任工作
  • 投遞動機
  • interview不是考試,而是互動探索的過程,且interviewer之所以一直問「為什麼」,動機是更了解你這個人的程度及表達能力
  • 除了回答問題本身以外,分析問題或是產出更好的解決方法(優缺點分析)
  • 薪資是多個面向看待(公司預算、專案的重要性、個人的技能、個人的潛力)
    • 薪資很重要,職涯規劃更重要(公司環境是否能帶來成長的養分)

6 of 10

面試就是一場交易:情蒐/表演/對弈

  • 為何類似的職缺,不同人應徵後,寫出的心得有落差?
    • 面試不是公開競賽,有一定的「不透明」(有「內定」人選很常見,或說,若無「內定」人選,可能某些主管還不知道如何寫職缺描述)
    • 就算應徵者在同樣的題目(特別是coding interview)無法完整作答,當時的氣氛和應對過程會直接影響到interviewer的看法,後者可能給予後續面試的機會
    • 公司通常不會明說正在考慮哪些候選人,但會強調「現在很缺人」
    • 軟體工程師無疑是份專業,但鑑定其他工程師是另一份專業,後者不見得每位軟體工程師都具備
  • 千萬不要接到公司的來電,就急著明天搭車去面試,為自己爭取到準備(含情報收集、衡量利害得失[某些公司規定半年內不得申請同一個職缺]和應對練習)時間後,再確認面試時間。就算面試狀況不理想,仍在當天致謝和補充探討面試題目

7 of 10

台灣科技公司面試風格(常見情況)

  • 或許受到interviewer的翻譯「面試官」的影響,即使interviewer之所以存在於面試場合,是因尋找「未來的同事」,但有時會「官威上身」(可能不是惡意),且相對來說,interviewee過度退讓,會使這樣的狀況更明顯
  • 大部分的interviewer沒做特別的準備,往往在一整天會議的空檔安插面試,使得interviewer就算目標是coding interview,也會傾向較易且不會有多種解法(畢竟要interviewer檢驗,是額外的負擔,開會實在太累)的題目
  • 以「即戰力」為主要訴求,也就是期望interviewee在試用期(勞基法並未明文規定)時,即可展現特定能力,而非後者在內部訓練後,才發現不適用,因此coding interview的要求較為有限(反過來說,某些新興網路服務公司就很在意)
  • 在外商的面試,「閒聊」像是串場,但在台灣某些公司,「閒聊」可能是主場
    • 愛聊天的主管先面試你,才交給其他會寫程式的同仁的狀況也多

8 of 10

IC設計只是產業分類,但難以歸納工作需求

  • 就算你只鎖定台灣前10IC設計公司,也不容易準備,因為需求落差大
  • 通常沒有自設工廠(Fabless,例如聯發科或威盛),設計並銷售自己的晶片但製造卻是委外(晶圓代工廠:台積電聯電)。但部分公司曾自行生產晶片(例如矽統)
  • IC設計公司可不只「設計IC」,包含裡頭的韌體(firmware)、裝置驅動程式(device driver)、軟體堆疊(software stack)、相關的應用程式(如播放器、影像處理、加解密、手機軔體燒錄等等)、量產所用的工具(考慮到secure/trusted boot,會使得狀況更艱難)、安裝到應用場景所需要的軟體(如比特幣礦機就可能安裝到四川的山區中,高濕度且溫差大,需要即時監控)、突破防火牆的遠端監控(排除技術問題和進行客戶支援)、對競爭對手產品作逆向工程、資訊服務和資訊安全,和教育訓練(包含幫客戶在不購入某些昂貴軟體的狀況,依舊能做某些事)

9 of 10

面試題目的蒐集和歸納

10 of 10

Coding Interview