Sr. Android 安卓工程師面試心得 – FB/TikTok/Snapchat/Uber/Lyft/Instacart

avatar 116786
raychien
8178
17
網頁好讀版:aillynotes.com


背景簡介

目前在Square當Senior Android Engineer,今年在職即將滿四年,當年入職簽約拿的股票即將領完,想說出來試試看自己的身價,也順便挑戰一下自己。這次很幸運拿到 6 個 offer: Facebook, TikTok, Snapchat, Uber, Lyft, Instacart,下面來分享一下一些心得,希望可以對未來找工作的人有幫助。


心態
我覺得心態其實很重要,不要把面試結果看得太重,搞得自己患得患失的。剛畢業的時候,每次面試完都趕緊給recruiter發個感謝信。幾天後沒消息,又整天忐忑不安的胡思亂想是不是哪裡沒面好。收到recruiter要約時間給update,但是信裡又沒說是好還是壞又再那惴惴不安。其實後來想想都不是很必要,面試的結果,在你掛完電話或是走出房間的同時,就已經決定了。你寄不寄感謝信,面完有沒有催recruiter給你結果,其實都不會影響結果。


四年前因為被裁員的關係,學生身份被迫要在90天內找到工作,壓力山大。這次在心態上比四年前輕鬆許多,因為在職跳槽,沒有找不到工作就會失業的壓力,表現得比四年前更好。建議大家還是把心態調整好,面完了就趕緊準備下一家的面試,抓緊時間,不要糾結在自己無法控制的事情上。
(當年心得:失業38天 instant.1point3acres.cn)


策略
比較沒經驗的人,或是對自己比較沒把握的人,我建議先從比較不想去的公司開始面,把想去的公司排在最後面面。如果一開始就面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 面試的資料很多,但是少有人去整理,這篇就當作拋磚引玉,希望可以幫助到正在找工作的人!
  • 86
17条回复