我曾經在 2022 9月時發過一篇請益文,當時有承諾會再發一篇心得文回餽版上。
抱歉,入職後真的太忙,忙到完全忘了這檔事。
最近才想起來,趕快來還債
進入正文
首先第一要點,多面幾家;只要相關的職位,就算不想去,也去累積經驗。
一方面是可以熟悉面試流程,考古題;甚至是從面試官的反應去修正自介的內容
另一方面是拿到 offer 後,比較不會有壓力,也有可以談薪水的本錢。
面試考題
軟韌體職缺的考題的類型都差不多,其實跟板上過往的考古題都大同小異
1. C 語言
* pointer 基本上必考
常見考題:不同 type pointer ++ 時,mem addr 的差別;function pointer
* function 的 call by value 相關考題,通常搭配指標一起考。有的會順便問
c++ 的 call by reference
* static 變數的生命週期
* union struct enum
* bitfield
* volatile
* bitwise 操作
2. 計算機組織
* 解釋 function stack
p.s 除了標準答案之外,有能力可以補充。例如:我被問到 function stack 時
就有提到曾經用 gdb 觀察 stack pointer 變化;還有一些防止 stack overflow
的機制
* 解釋 cpu pipeline
* 解釋 data hazard
3. os
* 解釋 multi-thread multi-process
* 解釋 deadlock,這麼避免
* 解釋 preemptive
4. leetcode
* linked-list 必考, insert remove sort 基本題,有餘力可以看看 leetcode
medium 的題目
* sort
* swap 考到爛了
* array 操作,例如 array 反轉。 2d array 也有機會考
* 群聯三問(之前有看到版上有人提到現在沒有在考了,我自己就被考兩題了XD)
* dp 相關的我是沒被問到,要不要刷看個人
面試公司心得
我面過蠻多家的,一些沒印象的就不提了
就提一些名氣大的跟我印象深的
1. 安霸 (Software Development Engineer in test)
工作性質:開發 test tool,產品是車用電子
部門滿新的
面試氛圍很好,很用心介紹公司文化跟工作內容
我面的只有這家是對方先介紹公司跟部門,才請我自我介紹的。
讓人感覺對方很重視這場面試。
可惜做的東西跟興趣不合,我當下就表明沒有二面意願
2. moxa404 (網通相關軟體)
做 router 等網通相關產品
一面是線上面試,自我介紹 + 考c語言測驗
二面是現場面試,考邏輯問題。給你 a b 兩段描述,問你這段 a 跟 b 的關係;
例如:a 對 b 錯,還是 a b 都對之類的。
公司整體風氣很好,自我介紹對方也很認真聽,討論起來感覺是會聆聽員工的心聲的
結果:offer get
3. 群聯(ssd 韌體)
群聯我一次面4間,都是做 ssd。聽起來只是產品線不同
面試過程就中規中矩,考題蠻相似的,歷屆考題打到幾率挺大
部門風氣感覺普通,9點後下班是常態
結果:4個都有過二面,但 hr 請我挑一個出來。最後有拿到 offer
4. 聯發科(5G 系統軟體工程師)
在面試前有做線上c語言測驗,兩題我都沒通過
面試當下問蠻多系統層面的問題,當下沒回答好就被刷掉了
5. 瑞昱(藍牙韌體)
考 linked-listed 跟 c 語言特性
這間算是我的前幾志願,所以我問的蠻詳細的,面試官也回答的很細。
結果:offer get
6. 聯詠(SoC韌體開發工程師)
這是我體驗比較差的面試,我在自我介紹時,兩個面試官還在我面前咬耳朵。
我認為這很不尊重人,你在別人沒說話時這樣也就罷了。
再加上我當時有 offer 了,當下也就草草結束,連一個問題我都沒問。
總結:
基本的考古題要刷
問公司的問題蠻重要的,一方面可以展示你的企圖心,
另一方面對方也可以從你的問題更了解你這個人,
還有你真的對這個職位有興趣,你應該會想要更了解吧
這邊整理幾個我會問的問題
1. 剛進去有什麼工作內容
2. 進去一年後的工作內容
3. 開發功能跟debug(擦屎)的比例
4. 有用什麼程式管控工具,git CI/CD 等等
5. 分紅
6. 非竹科豬屎屋可以問下班時間
然後最重要的多面幾間公司練習,我面完前面5間後,剩下的完全不緊張了
更新:工作一年心得
工作內容很多跟扎實,要學的面向很廣
* domain knowledge(網通 spec)
* platform 運作
* boot code
* fpga 使用,ic 驗證等等
* uart i2c 等底層周邊運作
ic廠的韌體缺,工作很多樣化,適合新人練功
不過是真的操,9點後下班時常態。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.164.183 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1691075443.A.114.html
※ 編輯: k12s35h813g (111.251.212.28 臺灣), 08/04/2023 20:16:48
... <看更多>
韌體工程師面試ptt 在 [心得] 軟韌、演算法新鮮人面試心得- 精華區Tech_Job 的推薦與評價
網頁好讀版 : https://grchen0827.github.io/2021/09/09/interview/
背景
新竹電機碩畢,論文機器學習相關
排名40%、沒有Side project、沒有比賽得獎、沒有實習
整體就是一個平凡的路人
技能
略懂 : C、Python、Linux shell script
訊號處理、機器學習相關知識
面試前準備
(1) 清華大學 作業系統-周志遠教授(Youtube上的OCW)
(2) 聯合大學 作業系統-陳士杰教授(Youtube上的OCW)
這兩門課的內容其實是差不多的,一開始是看周教授的課
後來當兵同袍跟我推薦,才改看陳教授的課,所以作業系統算是看了兩次
(3) 清華大學 計算機結構-黃婷婷教授(Youtube上的OCW)
這門課在碩班有去電子所修過課,所以主要是複習,從頭到尾完整看過一次
重點章節(Single Cycle Processer、Pipline、Memory)看兩次
(4) C語言教學手冊-洪維恩
複習C語言,這本書優點是簡單,缺點也是簡單
例題難度太低,然後很多深入的東西沒談
完整看過兩次,重點章節(Array、Pointer、Struct)看三次以上
(5) 資料結構使用C-蔡明志
配合聖經本 Fundamentals Of Data Structures In C 看
(6) GeeksforGeeks
https://www.geeksforgeeks.org/c-multiple-choice-questions/
裡面有110篇,看了大約60篇,很多公司的C考卷都跟裡面的題目類似
裡面的觀念做熟,考卷應該就很少有寫不出來的題目
(7) Leetcode
當兵期間一個月+退伍後半個月 寫了80題(50easy 30medium)
從top interview的easy開始寫,寫完後寫面試常考或是easy的延伸題
寫完第一輪之後,有重寫一輪(不看之前寫的答案,開新檔案寫)
大部分題目都寫過2次,經典題3次以上
(8) 網路考古 Ptt還有Google蒐集的題目
(9) GNU C Library
有的公司會考strcpy,strcmp,strlen,memset...等等的function如何implement
所以常用的function都有去了解是怎麼實現的
在看的過程中,也會去想作者的邏輯,因為大部分的code都不太直觀
去思考code為何要那樣寫,以及那樣寫是為了速度還是正確性的考量
(10) 其他
Binary search(upper bound, lower bound)
Stack(Array, Linked list), Queue(Array, Linked List)
Sorting : Bubble, Insertion, Selection, Merge, Quick
Linked List : Creat, Insert(Index), Delete(Value, Index), Free
Linked List Bubble sort、Selection sort、Merge sort
以上這些都練到開一個空白編譯器,可以完整寫出來+功能正確
因為是服替代役,所以當兵期間可以用手機、平板
還沒退伍時,平日一天念書6~8小時(看OCW、想Leetcode題目、念英文)
假日把平日寫在紙上的code,用電腦輸入到Leetcode網站 + Submit + Debug
退伍後一天念書8~10小時,一周休息1天
每天的行程大概是起床後練習程式4~5小時,休息後晚上念書4~5小時
面試公司
緯創、啟碁、群聯(3個部門)、安霸、瑞昱、達發(絡達&創發)
緯創 BIOS工程師
D 主管電話邀請面試
D+11 視訊面試
D+26 確認意願
D+28 Offer
面試過程幾乎都在聊天、聽主管介紹工作內容,大約50分鐘
結果 Offer (舊N+3) * 14 + 分紅
啟碁 5G軟體開發
D 主管email邀請面試
D+10 視訊一面
D+17 視訊二面(人資、一級主管)
D+21 確認意願
D+33 Offer
一面
一開始性向、英文、C測驗,總共大約2個多小時
英文類似多益,聽力部分比多益難,難的點在於語速忽快忽慢
可能上一題念很慢,下一題突然1.5倍速,然後會話不能先看完三題題目
跟多益節奏差滿多的,平常寫多益模擬考都800左右,但測驗考出來只有600多
C語言大部分都基本題(Pointer, Bitwise Operation, Makefile)
比較特別的是考了一題Dead Lock四個特性解釋
寫完考卷後面主管,大部分時間都在閒聊、主管介紹工作內容,過程約50分鐘
結束後當天晚上人資電話約二面
二面
先面人資,問很多人格特質問題、最近面哪幾家、怎麼做選擇
其他時間都在閒聊或是人資介紹公司,過程約50分鐘
一級主管部分,也是問很多人格特質問題、請我遠端分享大學研究所成績單
然後針對碩論問幾個簡單的問題就結束了,過程約30分鐘
結果 Offer (舊N+17) * 14 + 分紅
群聯 三個部門
D 104主動投履歷
D+1 人資確認面試時間
D+11 第一、第二部門視訊面試
D+19 第三部門視訊面試
D+22 人資詢問部門意願排序
D+26 人資視訊面試
D+32 人資電話Offer
D+43 正式Offer
[部門1]
自我介紹、報告碩論,結束後問了大學研究所求學經歷
然後問針對面試做了哪些準備、請我開電腦裡的code給他看
接下來主管分享畫面,開了一個ppt,裡面共17題請我一題一題回答
內容:解釋概念(1/3), 給一段程式問輸出(1/3), 程式題(1/3)
在面試之前知道是演算法部門,想說應該會考Leetcode medium難度的題目
沒想到大部分都是基本題,其中有一兩題卡住,主管也都會給提示慢慢引導
過程中覺得主管很有耐心,卡住的時候會一直跟我解釋題目
然後有一些小錯誤的時候,都會暗示我再看清楚一點
最後順利完成全部題目,大約50分鐘~1小時
結束後,問當完兵了沒、假設發Offer給我,多久後可以上班
然後主管介紹部門、我提問後就結束面試,總共約1小時40分
結果 Offer 群聯新人價 * 14 + 分紅
[部門2]
自我介紹,報告碩論動機、方法、結論
結束後針對碩論問幾個問題、問很多大學研究所求學經歷和人格特質問題
問完之後考了兩題程式,都Leetcode easy等級
第一題大約10分鐘寫完,寫完後主管請我解釋每一行code
解釋到一半發現會錯題意,大約3分鐘改好
第二題一開始先跟主管講我的想法,但主管說這方法會有問題
大約5分鐘想新方法,主管說OK後開始打code
大約10分鐘寫完,寫完後主管請我解釋每一行code
解釋後主管說OK,但有用到額外記憶體,請我想一個in place的方法
大約5分鐘想新方法,跟主管解釋後開始打code
大約5分鐘寫完,寫完後一樣解釋每一行code
但在解釋的時候有一個地方講錯,主管提示後才解釋正確
接下來主管介紹部門,我提問後就結束面試,總共約1小時40分
結果 Offer 群聯新人價 * 14 + 分紅
[部門3]
自我介紹後,主管傳了一個google document連結
總共四題,Pointer、Bitwise Operation、Leetcode easy、基本程式概念
順利寫完後,報告碩論動機、方法、結論
結束後主管問兵役問題、人格特質問題
然後主管介紹部門,閒聊了滿久後結束面試,總共約1小時30分
結果 Offer 群聯新人價 * 14 + 分紅
安霸 嵌入式系統
D 104主動投履歷
D+4 人資確認面試時間
D+16 視訊一面
D+24 現場二面
D+30 視訊三面(一級主管)
D+32 電話四面(人資)
D+33 視訊五面(台灣區經理)
安霸CEO是台灣人,公司在美國上市,產品主要是影像相關IC
一面(三位二級主管)
自我介紹、報告碩論,結束後針對碩論問很多問題,問題都有問到關鍵
然後請我開大學研究所成績單(看超久),他們有興趣的課會請我解釋那門課學到什麼
(問了OS, CA, DSP, ML),結束後問了一些人格特質問題
然後其中一位主管介紹工作內容、我提問後就結束面試,總共約1小時30分
一面結束後一個多小時,人資電話約現場二面
二面(現場)
早上一到公司之後,櫃台帶我到會議室,人資來發考卷(傳說中很難的考卷)
沒有時間限制,先給1.5小時,如果時間不夠跟人資說可以繼續寫
考卷內容很廣,C、OS、CA、Embeded C都有,也考了很多程式優化的題目
總共大概14~15面A4,題目有難度,但不是刻意刁難,有讀過相關內容一定會寫
考卷大約寫了2小時,原本以為寫完考卷還要面一級主管
特地帶了一堆東西(筆電、紙本論文、大學研究所成績單、履歷)
但寫完打電話給人資後,人資來收考卷,就跟我說可以離開了(黑人問號)
兩天後人資電話約視訊三面
三面(兩位一級主管)
第一位主管:
自我介紹、報告碩論,碩論問非常詳細,每個細節都會問到完全聽懂再請我繼續
最後碩論討論了一小時左右,因時間關係,我問一個問題後就結束換下一個主管
這位主管思路很清楚,報告到一個段落的時候
他會跟我總結他的理解,然後問我正不正確,或是哪裡不清楚
報告結束的時候,我感覺他也懂了60~70%
第二位主管:
自我介紹,問了一些人格特質、求學經歷
問的大部分都不是專業問題,如果沒回答到他想聽的東西,會請我補充說明
有談到我對自己的期許、對公司的了解、工作內容、薪水...等等
結束前主管說明薪水組成 : 底薪 + 現金分紅 + RSU + ESPP
然後我問幾個問題就結束面試
兩位主管都有對二面考卷答題狀況做一些評價
第一位主管 : 沒有很好,也沒有很差,就是還好而已
第二位主管 : 以新鮮人來說,算還不錯
我自己寫起來的感覺大概是90%的題目有作答,約70~80%是有把握的
但是寫完考卷搭火車回家的路上,回想題目時發現自己有幾題粗心寫錯= =
三面隔天早上,人資電話約四面、五面
四面(人資)
人格特質、求學經歷、實驗室詳細狀況 總共40分鐘
五面(台灣區經理)
跟蔣迪豪教授面試,自我介紹、看大學研究所成績單、報告碩論
問題都沒有很難,最後問一下其他公司面試狀況
我問一個問題就結束面試,總共1小時
感覺這間公司非常重視成績單,只被當過一科(大學的組合語言),但分數超低
每個有看成績單的主管,都會問我當時那門課是發生甚麼事
瑞昱 藍芽系統設計
D 104+瑞昱官網主動投履歷
D+1 人資確認面試時間
D+17 視訊面試
部門工程師面試,自我介紹、報告碩論
結束後問了幾個問題,工程師就開始介紹工作內容,介紹的滿詳細的
但不知道為何完全沒有考試,認識的去面試其他部門都有考試之類的
結束的時候就知道不會上了,面身體健康的
結果 無聲卡
達發 系統軟體設計
D 104主動投履歷
D+8 人資確認面試時間
D+18 視訊面試
達發是兩家聯發科子公司(絡達、創發)合併,面試主管是M來的
自我介紹後,主管針對修課問很多問題,大部分是計算機結構、作業系統
(問了Pipeline hazard, Memory coherence, Race condition)
每個問題我答出來之後,還會一直深入問下去
印象比較深的一題是談到shared memory會有race condition的問題
我解釋完race condition如何解決後,主管分享他的畫面
給我看一段sample code(兩個function都對同一個變數(a)++)
問我這樣會不會有race condition的問題?
我答:要看這兩個function會不會concurrent的執行,還有++是不是atomic的操作
主管問:如果a++要設計成atomic,用assembly要怎麼寫
這邊我只答得出來a++的assembly,主管跟我解釋後就繼續問其他的東西
後面的問題也都是這種模式,我答出概念後都會再往下深入
過程中感到主管技術非常強,功底非常紮實,任何不確定的地方都會被他察覺
經過大約一小時的問答後,考一題基本程式題,順利寫出後結束問答部分
接下來主管問一些人格特質問題、介紹工作內容、閒聊
聊了滿多他的工作心得、部門狀況、他以前在M帶過的新人...等等
最後我針對工作提問後就結束面試,總共約2個小時
主管最後的反饋是,他覺得我面試準備得很完整、理論觀念很清楚
但他比較有疑慮的點是:我沒有什麼實作經驗,還有抗壓性的問題
這次面試是難度最高的,學習到很多,也了解到自己的弱點在哪裡
像是主管提到的實作經驗,我自己對於OS的理解都是只有看書或是聽課
並沒有實際去看OS底層是怎麼實現的,或是做一些嵌入式相關的project
很感謝這位面試主管。
結果 無聲卡
心得
經過這些面試之後,自己的體悟是找工作很看運氣
當然個人能力還是占大部分,但有太多自己沒辦法控制的因素
也許自己會的東西,跟那個職缺工作內容無關
或是主管想找馬上可以上手的即戰力...等等各種千奇百怪的原因導致被刷掉
回顧這一個多月的面試,大致上還算順利,考題大部分是基本題
遇到的人資、面試官態度也都非常良好,有的面試官客氣到我都有點不好意思
還有一些問題事後回想,覺得自己答的爆爛,也沒有被當場洗臉,真的是運氣非常好
謝謝這次面試之旅的所有人,讓我學習到許多課本學不到的經驗
人生中每次相遇都是一種緣份,感謝上天的安排。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.212.142 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1631153176.A.E2D.html
如果其他競爭者都有,比起來落差就很大
周的ppt還要加很多筆記,陳的寫的比較完整,複習的時候直接看就好
... <看更多>