[心得] 矽谷 Sr. Android 面試心得
網頁好讀版:https://aillynotes.com/android-interview/
【背景簡介】
目前在Square當Senior Android Engineer,今年在職即將滿四年,當年入職簽約拿的
股票即將領完,想說出來試試看自己的身價,也順便挑戰一下自己。這次很幸運拿到6
個offer: Facebook, TikTok, Snapchat, Uber, Lyft, Instacart,下面來分享一下
一些心得,希望可以對未來找工作的人有幫助。
【心態】
我覺得心態其實很重要,不要把面試結果看得太重,搞得自己患得患失的。剛畢業的
時候,每次面試完都趕緊給recruiter發個感謝信。幾天後沒消息,又整天忐忑不安的
胡思亂想是不是哪裡沒面好。收到recruiter要約時間給update,但是信裡又沒說是好
還是壞又再那惴惴不安。其實後來想想都不是很必要,面試的結果,在你掛完電話或
是走出房間的同時,就已經決定了。你寄不寄感謝信,面完有沒有催recruiter給你結
果,其實都不會影響結果。
四年前因為被裁員的關係,學生身份被迫要在90天內找到工作,壓力山大。這次在心
態上比四年前輕鬆許多,因為在職跳槽,沒有找不到工作就會失業的壓力,表現得比
四年前更好。建議大家還是把心態調整好,面完了就趕緊準備下一家的面試,抓緊時
間,不要糾結在自己無法控制的事情上。
(當年失業心得:https://aillynotes.com/every-cloud-has-a-silver-lining/)
【策略】
比較沒經驗的人,或是對自己比較沒把握的人,我建議先從比較不想去的公司開始面
,把想去的公司排在最後面面。如果一開始就面dream company,假使被拒了,後面很
可能心態就崩了。心態崩了面試也很難成功,導致負向的循環。先拿不怎麼想去的公
司練手,可以先練習手感和節奏,心態上也比較沒有壓力。如果拿到offer了,還可以
增強自己的自信心。
有offer在手的氣場去面試,跟跪求你給我offer的氣場去面試,兩者的表現是差很多
;就算沒拿到offer也無所謂,反正本來就不想去。不管結果如何,每場面試都要虛心
檢討,被問倒的地方、回答起來不是很有把握的地方、寫起來卡卡的地方等等,面完
就趕緊去補強自己不足的部分。
【準備】
Coding
刷題這招已經被講爛了,要怎麼刷網上很多資訊可以參考。比較沒經驗的建議剛開始
可以照題目類別來刷,這樣比較好做系統性地整理複習。做到最後通常會發現:比較
不熟的都是某些特定的類別,譬如說我覺得DP特別難,我就針對DP類型的題目多加練
習。等複習的差不多即將開始面試的時候,就可以開始針對不同公司的tag開始刷高頻
題,從最高頻的一路往下刷,這樣做會比較有效率。
LC現在1600多題,一般普通人是沒有時間刷完的,刷太多也很容易刷後面忘前面,或
是導致自己錯亂,而且面試要遇到原題的機率其實不算太高,大多數都會有些變形,
所以就算你全部刷完也不保證你coding會過關。
我認為掌握每個類型的考點是比較重要的,把類似的題目一起刷,就可以發現解法都
是類似的,歸納出方法後,遇到這類的題目就可以有一個比較清晰的思路。
Design
Design 的面試主要考核的是你對 large scale mobile app 架構的理解,通常會考你
design 一個大家常用的 app,例如 Instagram、Whatsapp、Robinhood、Airbnb、Gmail等等。大家有空不妨打開手機,看看自己常用哪些 app,試著想想看如果是自己來寫
這個 app,會怎麼設計,哪邊自己不清楚怎麼做,可以網上查一下資料,對增加自己
的深度廣度很有幫助。
在 Design 面試中,你可以想像你的角色是一個 tech lead,你要帶領你的團隊打造
一個全新的 app,所以你要在台上解釋給底下的人聽,這個 app 要怎麼建,需要哪些
component,要用到哪些 library,有哪些 trade off,跟 server 要怎麼溝通等等。
你可以假設你有一個完美的 backend 團隊,可以做出任何你需要的 endpoints 來提
供你資料。
Design 面試最重的點就是,你是主導者,要 drive 整個 communication,面試官在
講完 app 的需求後,剩下超過九成的時間都是聽你講解,如何有條理地把整個 app
的架構完整的分析一遍,是這個面試的重點。
Mobile development 上有很多種 design pattern,最常見的三種就是 MVC、MVP 以
及 MVVM,建議先把這三種的優缺點先複習一遍。面試的時候可以挑自己喜歡的一套出
來用,一步一步地把每個 component 串起來然後講解它的功能,看你要 bottom-up
從 server 取資料講到 UI,或者 top-down 從 UI 講回如何從 server 取資料都可以。整個架構畫完之後就會有一個清晰的 data flow,也就有了基本分。
後面面試官會針對特別的情況展開討論。例如:
- 資料如何存儲?有哪些存儲資料的方法?
- Device offline 或者 network 很慢無法從 server 取資料了怎麼辦?
- App 被 system kill 了 cache 都不見了怎麼辦?
- 資料太多了一次傳太慢了要怎麼辦?
- 圖片和影片要怎麼存?圖片要太大 load 很久要怎麼處理?
- Real time communication 要怎麼建?
- RecyclerView 很卡的原因可能是什麼?要怎麼優化?
- etc.
以上這些都是我面試中實際被問過的問題,每個問題可能都有不同的解法或 libaray
可以用(廣度),你要能分析各種解法的優缺點 (深度),然後根據這些分析說明你為
什麼選了這個解法。如果這些 follow up 都能答上來的話,design 這輪基本就穩了。
Behavioral / Leadership
Behavioral 的面試比較不像是面試,像是在閒聊,面試你的人通常會比較資深。這輪
面試的重點在於你過往的經驗,例如:
- 你做過最具有挑戰性的 project 是什麼?
- 你做過最自豪的 project 是什麼?
- 你最近一個與其他組合作的 project 是什麼?
- 你收到最 critical 的 feedback 是什麼?收到後你做了什麼改變?
- 你怎麼 lead 一個 project?
- 底下的人意見不合你怎麼處理?
- 你跟主管或其他人意見不合你怎麼處理?
- 你怎麼 mentor 新來的人?
- etc.
過往經驗一定要是真實的經驗,最好不要憑空捏造,不然很容易幾個深入 follow up
就把你問倒了。經驗只能經年累月而得,沒辦法速成,回答的方式最好可以搭配一個
過往經驗來舉例,再搭配 SOAR 法回答:
- Situation: 背景介紹,事件如何發生。
- Obstacle: 遇到了什麼困難。
- Action: 做了什麼解決上述的困難。
- Result: 結果如何,有什麼 impact。
用這個方法回答問題可以讓整個回答非常有條理,面試官可以迅速地抓到重點。練習
的時候可以把常見的高頻問題先寫下來,想想看過往經驗中有什麼例子可以往上套,
然後再把例子用 SOAR 法說出來。同個問題可以有好幾種例子,每個例子也可以通用
於不同問題,練習久了之後你就會建立自己的一套例子庫,遇到問題就從例子庫裡拿
出回答就行了。
【結語】
網上關於 mobile 面試的資料很多,但是少有人去整理,這篇就當作拋磚引玉,希望
可以幫助到正在找工作的人!
--
感謝分享
推
推
Ray哥必推
感謝分享
推推
推
推
分享推
推
推~
推
棒棒
謝謝分享!!
感謝分享,想知道問題您都怎麼回答的XD
我列的問題其實沒有標準答案,都是根據自身經驗回答的 我這篇想要分享的是準備的方法和答題的思路,這個我覺得是比較有幫助的
感謝
感謝Ray,很有用!
讚 很多問題其實平常就可以思考 這邊對沒面試的人也很有
幫助 謝謝分享
這邊(x)這篇(o)對沒面試的人也很有幫助
推,感謝分享!
推推
推
四年股票領完,難道SQ沒有發refreshers 嗎?
SQ有發refresher,但是refresher四年疊起來也不會有你當初簽約的多 這也是矽谷這邊有些人每過幾年就會跳槽的部份原因,因為跳槽漲薪會比較快 我舉個例子:你如果是一畢業就進FB,拿的是E3,過了幾年你升到E5 你的薪水會比一個直接從外面空降新進的E5低,而且可能還低不少 有時候公司為了挽留你,會在第四年的時候特別給你比較大的refresher 不過這種都是case by case,每個人的境遇差很多 你也可以出去面一輪拿了offer回來要求公司幫你漲工資,然後繼續待著
推經驗分享
推 所以你有參與squre third party的開發囉!
沒想到app也要刷題
這個看公司,有些公司會直接上機叫你照需求寫app,有些就是單純考你算法
推
痾 哪種coding不用演算法的?
感謝分享
回原PO,我的refreshers還不少,所以可能看公司跟職位
了
矽谷大家跳槽未必是因為薪水啦
非常同意,我好像打得太快了,沒有注意用字遣詞,確實我也不是單純為了薪水出來面的
好帥 <3
神串,收藏收藏!
推分享
推推
感謝分享
爆
[面試] 2021跳槽面試: Google/Linkedin/Oracle左思右想,身在科技業還是該承擔起分享面試經驗的責任 以下簡短介紹拿到面試途徑, 面試難易度評價及心得 跳槽職位介於SDE mid ~ senior level ------------------------------- Google (Offer)爆
[心得] Facebook/Robinhood/Coinbase/DoorDash矽谷資深軟體工程師後疫情時代面試心得 Facebook/Robinhood/Coinbase/DoorDash Medium 好讀版 Apple Podcasts Spotify 2020 年是個動蕩不安的一年,因為疫情的關係,很多公司都在年中進行了規模不小的裁58
[面試]心得分享(Intel/Amazon)大家中秋連假快樂。 今年初規劃想要轉換跑道,所以陸陸續續面試了幾家外商。 今天分享一下Intel和Amazon的面試經驗,職位都是Account Manager(非技術職)。 本人背景: 私大畢業 (多益850/JLPT N1)55
[心得] 2022 北美sde跳槽面試分享(Google/MSFT/Amazon/Uber/Nv/...)Medium好讀完整版(歡迎follow): 之前有在板上分享過找實習心得,這次想來分享菜鳥的跳槽心得,希望能給同樣情況 的同學們一些意見參考~ 我目前在一家做cloud computing的公司做Software Engineer (1 yoe)15
[心得] 學店生前端轉職面試心得如題,自學期間每每低潮時總會上來PTT看看前輩們的心得。 希望也能有機會幫助到正在轉職中的人 文非常長,建議可以配歌比較看得下去 看看我多廢,笑一笑也能對自己產生信心XD11
[心得] COVID期間拿到Google/FB/微軟 Offer Part2Medium 好讀版: 2020年 第二次跳槽(累積三年工作經驗) 背景 我真的很喜歡 Indeed,也非常推薦大家面試看看 Indeed。Indeed 是真的關心員工,WLB 非常好,PTO 也沒有限制,一般來說你請假主管都不會擋。疫情期間,Indeed 也祭出了許9
[心得] COVID期間拿到Google/FB/微軟 Offer Part1Medium好讀版: 哈囉大家好!來美國算一算也六年了!工作快四年,這幾年也跳槽兩次。想說用這篇統整 我這四年來在美國換工作的經驗,和如何在今年 COVID 期間拿到 Google、FB、Microsoft 三間公司的 Offer。希望我的經驗能幫助更多台灣人在美國找到工作。 此文章會有三個部分:5
Fw: [心得] COVID期間拿到Google FB 微軟 Offer Part1作者: ghostreporty (ghost) 看板: Soft_Job 標題: [心得] 我如何在COVID期間拿到Google FB 微軟三個Offer(Part 1) 時間: Tue Nov 17 12:44:52 2020 Medium好讀版: 哈囉大家好!來美國算一算也六年了!工作快四年,這幾年也跳槽兩次。想說用這篇統整2
Fw: [心得] COVID期間拿到Google FB 微軟 Offer Part2作者: ghostreporty (ghost) 看板: Soft_Job 標題: [心得] COVID期間拿到Google FB 微軟Offer Part2 時間: Tue Nov 17 12:53:38 2020 Medium 好讀版: 2020年 第二次跳槽(累積三年工作經驗)- 小弟最近也遇過一樣的狀況,由於我在職中,面試時間很寶貴,也希望先知道對方有沒有 預算請我,但我的經驗是 問不到的,只要是hr找我的,我沒有一次成功問到,這篇文章1-3回答我都收到過 我的建議是 1. 如果沒特別想去,期望不大可以問,但結果99%會是這樣