[心得] google embedded SWE 面試心得

作者: michael0728n (蒜˙遠古)   2021-02-17 15:56:54
去年面試google時recruiter問要走一般SWE流程還是embedded
當下覺得很難選,上網找又很少embedded SWE面試資訊
事後想想不如自己寫一個吧
板橋辦公室新啟用應該也有些embedded SWE缺吧,面試進來可以把座位填滿XD
主要關注在embedded SWE面起來有什麼差,以及準備過程
不會提到問了什麼題目
======== 背景 ========
一線IC設計廠5年經驗,然後轉戰新創
之前面過兩次google
第一次leetcode刷了大概40題,面到onsite被HC reject
第二次刷了大概300題,onsite不夠好沒送HC
(HC = hiring committee 一個會議決定這個人是否通過,詳情不是很清楚)
======== recruiter 接觸 ========
recruiter直接透過email來詢問,大概是因為之前有面過吧
我回覆有點忙幾個月之後再說,就陸續信件往返了幾個月
想說來面看看,recruiter也有大概說明面試流程
我當時的理解是這樣:
phone interview => (virtual) onsite => team match => 談判跟錄取
事後回來看也是這樣
======== phone interview 準備 ========
recruiter 給的資訊來看這邊general SWE跟embedded SWE沒差
另外先前不知道看哪篇文章說刷題分門別類刷比較有效率
這次嘗試此方法來熟悉一些類別,的確很有效,尤其是找回記憶特別有效
熟悉的方法:
針對要熟悉的類別 (leetcode有幫題目分門別類)
先刷該分類的easy,刷了幾題確定基礎能寫出來
再去刷mid,刷到10~15min能AC就差不多了
分類就array, tree, linklist, DP之類的,常見的資料結構跟演算法都刷一刷
這邊弄完大概一百出頭題
======== phone interview ========
題目大概在leetcode easy~mid之間,follow up有到hard我只有口述想法
面起來感覺的確跟embedded無關
另外題目完全沒看過但很有趣
======== onsite interview 準備 ========
過了幾天recruiter說通過了並轉介給另一個recruiter
先聊了一下並有問說我想要走general SWE流程還是embedded SWE流程
當時得到的資訊是說走 embedded SWE會有一些關是domain interview
面完通過之後team match主要會跟需要embedded SWE的主管談
(這邊印象模糊,不太確定是不是這個時候得到的資訊)
最後可以拿到offer的話job title也會是SWE
當時覺得很難選(所以有了這篇文章)
我選了 embedded SWE 流程,然後recruiter信件給了我一些資料跟說明
有提到面試包含domain interview / general SWE interview
/ system design interview / soft skill interview(?)
資料裡面有提到embedded domain大概要準備哪些知識
列的超多,但大概七八成就是OS課本裡面那些章節
我準備這些知識的步驟是這樣
1. 先上網查相關知識有個概念
最好是能找到一些大學OS網站的投影片看一看概念比較全
2. 想一下它們跟之前工作做過的project有什麼關聯
或是實際上在linux寫kernel driver or user space program怎麼用這些知識
3. 上網搜尋Linux怎麼實作這些知識(或直接看code)
或是各家硬體怎麼運用這些知識
例如我可能想知道Linux怎排程的,或是CPU cache有什麼實作技巧/各層多大之類
4. 試想如果我來面試別人,針對這些知識怎麼問問題
列出這些問題的中英文跟我擬好的回答
(因為我有排到非台灣site的面試官所以英文變更重要)
當時是弄了很久,擬了大概三四十題吧(有些抄網路上的),最後被問得不多但還是有用
我不確定有沒有更好的準備方法
刷題部分我是分類刷一刷後隨機刷
有看 cracking the code interview 我覺得幫助算大
裡面的trick都看過,但就當整理複習
快到面試的時候大概想了一下如果我是面試官我針對embedded SWE會問啥
針對這種問題去刷 (array / bitwise之類的)
面試前看了一下大概三百出頭題 (包含phone interview前刷的)
======== virtual onsite interview ========
因為不能講題目,列點列出一些經驗
* domain interview 寫白板題的時間還是佔不少
寫完對面有問我一些,跟題目有關的 OS 或 embedded 相關問題
然後題目的包裝我感覺都比較像是日常工作會遇到的問題
(幫總統規劃飛去各州演講的最短路徑我感覺就不像是日常工作會遇到的問題XD)
有這樣的題目包裝,蠻容易延伸問 embedded 相關知識
* general SWE interview 那關,對方應該還是知道你是面embedded SWE
我被問到的題目我感覺還是有embedded相關,但不知道是不是general case
* system design 也是 embedded 相關,一樣要花時間寫code
* coding難度(體感),一半的關卡有問到leetcode hard,至少都有問到mid
沒有一題是網路上有看過的
* 有一關軟實力,細節有點忘了,就問一些日常跟同事工作相處的經驗
======== misc ========
* team match 就是了解一下 team 也讓主管了解你
可以趁機問一下部門技術線或風氣之類的
之後如果你要去主管也要你,就再往下走
* 在任何一個stage收到recruiter的信約時間說要short talk / small chat
我認為都沒有正面或負面的意思
有收到reject消息過,也有收到pass往下一關消息過
電話接了才知道
* 整個面完我感覺embedded SWE需要更多一點 embedded or OS 相關知識
但沒有被問到很瘋狂的演算法問題
整體面試差異比想像中小,沒有因為是面embedded就很少code很多知識問答
(只能說我的經驗是這樣,不確定是不是普遍現象)
再讓我選一次我還是選擇走embedded SWE流程
因為跟之前工作有強相關準備起來還是比較有底
* 不用全部都面的超好也有機會上
我virtual onsite有幾關事後知道自己有些地方講錯,還好還是有過HC
* virtual onsite都遠端,我是分幾天面,也有排到非上班時間面
(我排到有幾場是一大早,所以就有猜測到是不同時區面了)
======== 刷題心得 ========
刷題我是leetcode另外開一個session刷,最後寫了三百出頭題
刷的時候卡十分鐘就看討論,看完不寫,書籤起來,隔天寫
寫的出來也一定看討論,看有沒有更好寫法,有更好寫法就比照前面步驟隔天寫
有時候寫完會發現,上次準備面試的自己,也有寫過這題
回去看以前自己的寫法,常常完全看不懂
才有感覺程式的可讀性很重要,前一次大概是太注意刷很多題沒管coding style
這樣是不行的會炸開
但有些hard看完解法之後覺得解法太專一只能用在這題,我就會擺著不管他
有可能你之後真的一輩子沒看過這種解法了,就自然忘記吧
但也有可能又在其他hard看到這種思路
看過兩三次有點印象的話,那我還是會花時間吸收(仔細看懂+寫個兩題)
也因此學了一些思路
刷到面試前我hard大概可以解掉六成
另外刷到一半有體悟,刷題大概要鍛鍊兩個部分
其一是寫程式速度跟穩定性,各種基礎工具寫的越熟速度越穩
例如某題你可能一看就知道是array binary search
寫的不熟會卡一些奇怪的地方,right index要指哪裡,要不要加一之類的
寫的熟你可以很快寫出來,甚至直接呼API看面試官有沒有叫你要自己實作
另個例子是寫tree traversal就會想說recursion截止條件是要怎樣
是要傳進來node是null截止還是node的child是null就不往下繼續呼叫
卡一些奇怪的地方,多想幾分鐘,就比較吃虧
其二則是用什麼資料結構跟演算法解題,也是一般比較會被注重的地方
二很重要,整關炸開通常是二沒想到
但是一也很重要,一做得好,暖身題或題組第一題可以快速解決
等於是幫後面的難題爭取思考時間,也有更多餘力注意corner case之類的細節
另外有空的話找人幫mock interview會有很大幫助
習慣時間壓力是一個點,有人幫你看,你的解釋是否能容易被聽懂,也是重要
要不然就多面幾家練習也行(?)
======== 總結 / take away ========
* 體感來說,選embedded SWE面試,會被問一些 OS / embedded 相關問題
白板題比較像日常工作會碰到的問題,然後借助題目延伸問相關知識
跟general SWE 面試沒有差到太多
* 面embedded SWE 進來就是掛SWE
* google 還在招人
祝大家2021都能快樂工作囉
作者: kyrie77 (NTU KI)   2021-02-17 16:06:00
強者推,刷題的部份說得很細XD
作者: fig498 (一起前進!)   2021-02-17 16:30:00
推強者,感謝分享!
作者: Swark0321 (Swark0321)   2021-02-17 16:32:00
強者,推五星推推
作者: yamakazi (大安吳彥祖)   2021-02-17 16:44:00
我跟你面同一個職位,但刷題第一關考三題middle,第二關都在都問domain knowledge。
作者: shiauji (消極)   2021-02-17 16:59:00
感謝分享
作者: mpjp (mpjp)   2021-02-17 17:03:00
推推 謝謝分享
作者: Csir (張胖胖)   2021-02-17 17:11:00
強者!!
作者: benian   2021-02-17 17:12:00
強哥推推
作者: decheng (bodhi)   2021-02-17 17:15:00
推,可以分享一下怎麼談package 嗎?謝謝
作者: aas5566 (aas5566)   2021-02-17 17:49:00
作者: Inglenook (城市苦守)   2021-02-17 17:51:00
作者: summerleaves (內湖全聯先生)   2021-02-17 18:24:00
作者: wvwvwvwvwv (殺死丁力這個雜碎a~)   2021-02-17 19:40:00
作者: xpasser   2021-02-17 19:41:00
作者: kangan987 (Jon.Snow)   2021-02-17 20:39:00
作者: yislin (YiieSt2310)   2021-02-17 20:49:00
推刷題心得
作者: orz811017 (orz811017)   2021-02-17 21:04:00
onsite題目有那麼難喔QQ 謝謝分享
作者: eju901677 (誠)   2021-02-17 21:47:00
作者: cha122977 (CHA)   2021-02-17 21:54:00
general SWE interview都常都是找SWE來面*通常 所以 題目不見得和embedded相關可能你的見試官有特別選題另外面試官的確看的到你面的職位
作者: kuochuwon (黑輪桑~ YO)   2021-02-17 21:59:00
感謝分享 很有條理
作者: ortuortu   2021-02-17 22:31:00
推!!
作者: aria0520 (紫)   2021-02-17 23:33:00
推 google現在有比較prefer新鮮人之類的嗎
作者: philip80220 (花)   2021-02-17 23:41:00
強,推詳細
作者: wulouise (在線上!=在電腦前)   2021-02-17 23:42:00
好奇原po學校是EE/CS嗎?
作者: bnd0327 (阿噗噗)   2021-02-17 23:45:00
恭喜恭喜
作者: wulouise (在線上!=在電腦前)   2021-02-17 23:50:00
應該說科系,打錯成學校
作者: craig08 (小佑)   2021-02-18 00:22:00
推分享
作者: cha122977 (CHA)   2021-02-18 00:29:00
一直都收不少新鮮人 問題在怎麼得到面試機會絕大部份新鮮人都是白紙 面試資源有限不可能都找去面新鮮人最好的管道是實習 不用和已就業的人競爭機會
作者: e12518166339 (耐綸)   2021-02-18 00:57:00
好奇原po有碰到印度籍的面試官嗎?我去年碰到有點崩XD
作者: Lucifer10896 (我要養貓)   2021-02-18 01:07:00
作者: Gazella (飛雪連天射白鹿)   2021-02-18 02:25:00
謝謝分享
作者: taipoo (要成功要積極)   2021-02-18 02:51:00
推分享
作者: plcc122 (窩顆顆顆)   2021-02-18 07:43:00
作者: GameDemon   2021-02-18 10:02:00
感謝分享!不知道大大可否再多分享一些system design/domain的部分 還要寫code感覺有點難想像會怎麼出題 謝謝
作者: iammuse   2021-02-18 10:44:00
作者: surfingbboy (科科)   2021-02-18 22:12:00
我覺得我認識你耶 蒜
作者: Yujjlin (iam1800mm)   2021-02-18 23:23:00
推推
作者: viper9709 (阿達)   2021-02-18 23:44:00
推分享
作者: kiki86151 (魯飯)   2021-02-18 23:49:00
推分享
作者: NTU5566NTHU (台清56)   2021-02-19 11:14:00
感謝分享
作者: hao1993 (正義的一方)   2021-02-19 11:15:00
推強者
作者: remmurds (Stronghold)   2021-02-19 12:41:00
推分享
作者: codefarmer (自信)   2021-02-19 13:55:00
希望大大能分享更多systems design 的部分
作者: celesti (想念點點)   2021-02-19 18:33:00
恭喜 不過google給的比一線ic設計廠多嗎?可以分享加薪幅度嗎?
作者: zmcx16 (zmcx16)   2021-02-19 21:39:00
推分享
作者: sarsman (DeNT15T♠)   2021-02-19 22:27:00
推推
作者: tomap41017 (絕夢)   2021-02-21 12:47:00
強者
作者: ntddt (滅頂,降公投罷免門檻)   2021-02-21 16:07:00
推faang面經
作者: chiahere (chiahere)   2021-02-23 09:41:00
強者推推
作者: imjeffreylee (昌)   2021-02-23 18:57:00
感謝分享
作者: ppc ( )   2021-02-24 01:35:00
推分享
作者: n1canhelpu (ponder)   2021-02-25 02:32:00
想請問是用C刷題呢? 還是C++ 謝謝
作者: powerccc   2021-03-06 14:42:00
朝聖推推 蒜頭哥萬歲<3

Links booklink

Contact Us: admin [ a t ] ucptt.com