PTT推薦

[心得] Android 2y 資歷面試心得

看板Soft_Job標題[心得] Android 2y 資歷面試心得作者
yc0015139
(YCx)
時間推噓43 推:43 噓:0 →:55

背景:
國立科大本科學士,Android 開發經驗約 2y
前一份工作在一間進入尾聲的新創獨立開發,800K/y


技能樹:
Kotlin, MVVM, MAD Skills, Clean architecture, Android TDD, DI

寫在心得前:
感謝幫我 mock interview 以及花時間 code review 的 Alreadykiss,還有常找我喇賽Android 問題的 SamThunder,以及其他 Android 社群上的大神們,希望自己哪一天
也可以像大家一樣幫助更多人,因此在新工作 onboard 一陣子後分享面試紀錄

求職目標:
因為感覺到獨自開發的視野有限,且導入了協作模式但公司卻沒有新人進來,因此希望
加入有一定人數且跟隨開發趨勢的 Android 團隊,避免陷入技術自滿導致進步緩慢的狀態

面試時間跨 2021 - 2022,有些是在職面試,有些是離職後面試,不依據面試時間排序
全都是中文面試,現職不在心得內
都談年薪 > 1000K/y



--------------------
17 Live (Wave):
(Hunter 投遞)
面試前有作業,難度不高,主要是看你會不會 call api,以及 MVVM + 架構 + RxJava/Cor頂多有 recyclerView 的進階使用方法,比如 load more,個人是用 paging3 解決

面試 (Google meet)
三關都在同一天,技術討論 > Tech leader > HR

第一關
技術討論問了有關 Coroutines 的問題,以及一些技術上的情境題,也有 MVP 與 MVVM
比較的基本問題,對方會用引導式回答的方式詢問,剩下大多是閒聊,因此可以放輕鬆
回答

第二關
Tech leader 問了有關團隊合作的問題、個人優缺點、前一份工作導入 scrum 後的優
缺點,基本上是問團隊適應性

第三關
HR 主要根據你職涯生涯問問題,並說明公司福利

結果:
因為對方希望有 rxjava 改 coroutines 的人選,而個人只會 coroutines,因此
感謝函




--------------------
Funnow:
(Hunter 投遞職缺)

(實體面試)
這間應該是所有面試裡技術關卡最硬的
也是一天三關,總時間約 3.5hrs,技術 > 團隊技術與工作實戰經驗 > 介紹公司與問答

技術關卡
Android Staff + Android Senior
考很細,包含但不限於 kotlin 基本觀念、collection、design pattern、
sealed class、data class 的特性、coroutinesScope 等
Android 的部分包含 activity lifecycle、onStart v.s. onCreate、用過哪些
architecture components、Paging3 的組成與實作原理、memory leak 與成因等,
有印象的問答題約 30 題以上

團隊技術與工作實戰經驗
Android Staff + Android Senior + iOS Staff
詢問履歷上有關的現職經驗,以及工作時會遇到的實戰問題,大多是實作上花時間討論
其中包含了 CI/CD 相關經驗、實作某需求的思考邏輯與如何讓需求完成的更好、
寫出 livedata 的 unit test 等

介紹公司與問答
Android Staff
顧名思義,就是介紹公司與讓你問問題

結果:
透過 Hunter 得知公司目前希望更資深的人選,因此感謝函




--------------------
Digifinex:
(PTT 網友內推)

這間剛好沒寫到紀錄,是剛來台灣設立據點的數位貨幣交易所
面試是線上面試,透過 Lark 視訊面試

一面 (Lark)
有印象的是面試官是在新加坡的兩位中國人,問 Android 相關問題
自我介紹完後,對方要求解釋關於 Android 事件的了解程度,以及對於 memory leak 的處理經驗,由於當時對前者完全一片空白,因此面試上有點尷尬,面試官也坦率的表示他覺得我表現不太好,但還是可以往下作筆試

筆試 (Lark)
筆試還真的是紙筆測驗,對方派了 HR 在我方便的時間填寫 docx 上的 java 問答題,
以及一些邏輯測驗、數學計算測驗(??)、排列組合計算(???)與簡體中文的用語邏輯
分析(????)

至於線上面試的前後,當時工作上的空降零經驗 PM 一直問工作上的問題,導致沒辦法
好好準備面試又是一個故事(笑)

結果:
不意外的無聲卡




--------------------
Noodoe 拓廣科技:
(PTT 網友內推)

面試前先做作業,一週內完成

作業要求:Kotlin + Single Activity architecture + MVVM + RxJava(or
Coroutines) + Repository Pattern
個人再加了 navigation 與 手動 DI,繳交作業的隔週收到一面通知

一面 (Google meet)
與 Android team 討論自我介紹內容、Android 問題、Kotlin coroutines 特性、履歷問題、作業內容
整體而言很舒服,回答有誤的地方對方會告知

四個工作天後得到二面通知

二面 (Google meet)
這邊剛好沒寫紀錄,印象中是跟主管與 HR 聊一些人格問題
二面後隔週 HR 打電話討論薪資與福利

結果:
HR 覺得不合適,因此以電話告知核薪結果 900K/y 但不給 offer,有點無奈




--------------------
Pinkoi:
(HR 於 CakeResume 邀約面試)
HR 在 CakeResume 訊息上表示可以在面試前介紹公司
剛好 WFH 時有空擋,因此在 Google meet 上聽了對方約 30 分鐘的介紹與閒聊,隨後敲定面試日期

面試前對方要求回答三個問題
1. 自己的 side project
2. 分享過去遇過的技術難題以及技術難點
3. 為什麼良好的技術可以給使用者更好的體驗,以及平時自己在意的使用者體驗
大概回覆自己的想法就好

一面 (技術面試) (Google meet) (共 2.5 hrs)
與 Android team leader 與 Android senior engineer 面試
自我介紹 > 根據自我介紹內容延伸問題 > 延伸到架構問題,看 Code >
介紹架構與自己的想法 > 對方提問 Android 問題 > 給予面試者提

有趣的是,面試官和我也有聽矽谷輕鬆談的 podcast,因此有做為話題小聊一下

當天下午收到二面邀請

二面 (人格特質面試) (Google meet) (共 1.5 hrs)
第一關,CTO
討論有關喜歡這間公司的原因、詢問未來規劃,以及現職同事對自己的看法
接著是開放提問

第二關,HR Leader
先根據履歷問問題,再詢問導入新制度時若公司拒絕時,會怎麼反應以及什麼狀況
願意接受,同時詢問想換工作的原因
也問了有關未來規劃的問題

結果:
未錄取,原因如下
二面後五個工作天收到對方回覆,表示公司正在忙季,因此隔週才能回覆
隔週週三表示目前公司正在組織重組,也希望我能再與重組後的不同的團隊領導者三面,因此希望我繼續等候
再隔隔週,發信詢問對方目前進度
再隔週,對方回信表示公司在組織重組後沒缺人,因此感謝函
心中頓時五味雜陳,嗯




--------------------
[email protected]第二次:
(主動投遞)
數個月後,剛好看到 Pinkoi 在相關社群上有團隊成員表示有缺,因此將履歷交給對方,同時也要繳交上一段提到的三個題目
幾天後收到 Coderbyte 線上測驗邀約

原先以為線上測驗會考 leetcode 題目,但實際上考了有關 Android 相關的問答題
有印象的有 Kotlin 基礎、activity livecycle、android app architecture、測試的
3A 原則、process/thread/coroutines 差異等,其他忘了

幾天後收到面試邀請

一面 (Google meet) (2.5 hrs)
第一階段,與兩個不同 squad 的 Android 成員面試
先自我介紹再根據自我介紹提問
隨後檢討面試時寫的基本概念考卷,不確定的地方對方也會告知
同時也問了多一點有關 coroutines 的問題,比如 dispatcher、flow 的相關 methods
後面討論 Android data layer 時自己主動開 side project 讓對方看 code,藉此討論DI

第二階段,與 team leader 面試
印象中討論有關團隊合作相關的問題

隔天收到二面邀約

二面(Google meet) (共 2 hrs)
第一階段,與 Engineer Lead、CPO 面試
印象中也是討論團隊合作相關的問題

第二階段與 HR 面試
討論優缺點(指名要個性上的優缺點)、團隊與公司遇到衝突時的解決方法(聚焦很多在這部分),由於雙方都知道彼此面試過,因此提問時自己沒有問太多

結果:
六個工作天(兩週)後收到罐頭感謝函,詢問先前協助投遞的團隊成員後,隔幾天後得知
技術需要更深入外,還有 culture fit 沒通過,看來真的沒有緣分




--------------------
趨勢:
(對方邀請面試)

職稱很特別,叫 Blockchain Security Sr. Android Engineer
當時看職缺敘述是和 Web3 的 mobile app 資安有關

這個應該是最快收到感謝函的面試,面試前於 Codility 寫三題 leetcode 題目,可用
C/C++, Java, Python or PHP, C#, or GO (實際上還有 swift)
(明明有 swift 可以用,為什麼沒有 kotlin,抗議)
最後使用 Java 答題,三題大約介於 easy-medium 之間

結果:
由於只成功答出一題,因此幾分鐘後收到感謝函,沒有後續面試



--------------------
KKCOMPANY
(對方邀請)
有 Codility 線上測驗三題,以 kotlin 實作
第一題是密碼的 filter 實作
第二題是依據需求實作 viewModel 的 function
第三題寫有關 RxJava 的功能,但個人只有使用過 coroutines flow,因此寫下相關註解後留白

最後好像只拿到 50 分,沒想到還是得到面試邀請

HR 安排了兩個 team,分別是 KKBOX 與 KKTV

KKBOX Android engineer
面試官是 Android team leader (Google meet)
一樣先從自我介紹開始,再根據履歷詢問問題
問了有關團隊合作的問題,也要求我打開 github 詢問我某個專案的架構
同時也詢問了與測試有關的問題,由於專案沒寫測試,因此對方詢問我能否當場寫相關的測試 (live coding)
在對方同意我 google 的狀況下,當場針對使用 kotlin coroutines flow 的架構寫了簡單驗證 api 功能的測試
後面對方介紹目前自己團隊的架構,並表明二面會有需要放上投影片介紹的技術面試

結果:
KKBOX 需要的技能樹是 testing 能力比較強的人選,因此 fail
(不過也因此,個人在後面努力補了不少有關 coroutines flow + viewModel unit test 的,算是有收穫)


KKTV Android engineer
Team leader (backend engineer) 與 HR 一起加入面試 (Google meet)

單純介紹自己,對方根據我的介紹提出問題,比較現職狀況與針對團隊合作的部分提問,技術部分頂多看你懂不懂 git flow
team leader 表示他是 backend 的,也不曉得要怎麼問 Android 相關技術,只提到後面這個職缺需要不排斥寫 flutter,可以進來再慢慢學
至於測試的部分,team leader 表示有聽上一關的面試官介紹我的技術能力,不過目前
KKTV 這裡的測試還不用太完善,也可以再慢慢學
團隊人數 10 人,有點像大公司裡的小新創
團隊喜歡在公司裡噴垃圾話,讓同事之間有更多交流
目前僅一名 Android 工程師,太過分身乏術而開缺

後面 HR 問了有關職涯方向有關的問題,結束了面試

結果:
五個工作天後詢問 HR,得到罐頭感謝函




--------------------
CMoney

一面:
自我介紹 > 技術面試 > 提供詢問

先自我介紹,面試官(RD)根據自我介紹內容詢問,再進入技術面試

技術面試,考類似課本題目的問答題,不看 code

程式基礎題:
1. 解釋什麼是時間複雜度、空間複雜度
2. call by value, call by reference 的差異
3. 為何電腦的浮點數會有誤差
4. BigDecimal 的使用方式
5. 對於 WeakReference 的了解
6. kotlin var val 的差異
7. kotlin 中修改 mutableList 時,新增與刪除需要呼叫哪兩個功能
8. abstract class 與 interface 的使用時機
9. 解釋併發、併行、同步、非同步
10. Lifecycle of kotlin coroutine job

Android 相關:
1. Lifecycle of Activity
2. Lifecycle of Fragment
3. fragment 的 viewLifecycleowner 的執行週期
4. Activity 傳遞數值的 Bundle,若要傳遞 data class,需要繼承哪兩種資料型態
,兩者的差異為何

後面都在問團隊相關的問題,比如平時 follow Google 官方新政策的方式

結果:
感謝函,信中指出需要對 coroutines 的運作規則再更加熟悉



--------------------
TutorABC
(Hunter 推薦面試)

有名的線上教學平台,聽說目前高層已有大幅改動,因此答應面試
面試前先於線上填寫有點繁瑣的制式履歷

一面(Google meet)
兩名面試官,Backend、Android 的 RD 各一名

java、kotlin 基本能力面試(包含根據 side project 提問) > 根據履歷詢問 > 團隊介紹 > Q&A

基本能力面試考一些 java 與 kotlin 的基本問題,面試官也會在中途引導你不會的點,因此整體面起來很愉快
中間有問到 MVVM 在我專案中的架構講解,因此我開了 side project 講解我的架構,讓人意外的是面試官有問到我對 jetpack compose 的想法,看來他們也有 follow 新技術

不過他們會因為隕石開發而加班,這點比較無奈

面試結果:
從 hunter 得知他們想看更資深一點,及有寫 JNI 經驗的人選,因此感謝函




--------------------

心得差不多到這裡告一段落,其中沒有寫面試紀錄的就不放上來了

寫了這麼多,應該會有人想
欸不是,怎麼都是感謝函,是不是開太高,以及該補強一下自己的實力?

我也這麼想,尤其是幾間 culture fit 沒過的部分讓自己挺失落的,
除了感覺到這陣子不好找工作外,身為前 hunter 的朋友(剛轉職 HR)也建議不要找
太 senior 的缺,以及薪資可以開低一點

正當這麼打算的時候,意外收到現職的 offer,而且團隊規模與薪資都比期望好,也不是灰色產業,團隊成員也非常有實力
最後在 onboard date 前結束了最後一輪的面試,就職現在的公司,目前對現職非常滿意

緣分這種東西,感覺真是奇妙



希望這篇能幫到有需要的人

(寫完才發現暫存檔會被當作貼上,我的 P 幣啊...)

有用手機修正一些文章錯字,結果文章炸掉了,希望推文沒有受到影響
--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.195.254 (臺灣)
PTT 網址
※ 編輯: yc0015139 (101.139.195.254 臺灣), 10/12/2022 23:26:06

xixian6910/12 23:34

viper970910/12 23:46感謝分享

abc092200110/12 23:47KKBOX 原來開發的人這麼少,難怪app那麼難用

KKTV 人比較少,KKBOX 人多很多的樣子

now9910/12 23:56感謝分享~

NTHUlagka10/13 00:18感覺大大很強 結果還是拿感謝函orz

ppc10/13 01:22push

B098869808810/13 04:11現職哪間

hakosaki10/13 08:11推分享 感覺滿多公司職缺都算凍結了..

MoonCode10/13 08:17詳細推

nathanlu10/13 08:28加油,我也到處面,很多無聲卡跟罐頭感謝文

fake0110/13 08:41推分享

htury10/13 08:43沒想到cmoney這麼硬的考題,大概算錢是需要精確掌握數字運

htury10/13 08:43

其實我覺得 funnow 比較硬,但題目列出來會佔太多篇幅,有需要再放上來,或是私訊我

BearFather10/13 09:09幸好17沒上

17 現在是全遠端,不是比較好嗎

spicysushi10/13 09:18推,感謝分享

AoShenFengYu10/13 09:21別氣餒,很多時候是人事的問題,但又不能表明,只好

AoShenFengYu10/13 09:21包裝成人選不適合婉拒面試者,原po加油!

謝謝,其實拿這麼多感謝函,也大概領悟到這點了

realbout10/13 09:28KKBOX真的難用,之前面試當場吐過....

starburs10/13 09:32推 不管有沒有上都不影響分享文的價值

xevisu10/13 09:40這篇實際多了,二年要百萬除非超級強,不然大概只能找不

xevisu10/13 09:40知道什麼能撐多久的新創

littlebroken10/13 10:05他看起來對最後拿到的offer挺滿意 應該>100?

littlebroken10/13 10:05看下來覺得多試幾間準沒錯

NTUTM0410/13 10:21culture fit有時候標準很謎,不過還是恭喜上岸

ohmylove34710/13 10:48謝分享,想請教rxjava被問到的多嗎?只學coroutines

ohmylove34710/13 10:48有點抖

個人目前覺得 coroutines 是趨勢,大多公司不是已經改好就是正在改用 coroutines

shieldsky10/13 11:55好厲害!兩年經驗就突破百萬了,感謝分享面試經驗,恭

shieldsky10/13 11:55喜找到適合的工作!

sck92110/13 12:05推,恭喜

aaa123413610/13 12:20感謝分享

air402810/13 13:00感謝分享!

hydradevil10/13 13:38推分享

hegemon10/13 14:42HR決定no hire的話應該不會核薪呀

rabbitu0410/13 14:44有核薪結果但不給offer是啥鬼...核開心的嗎???

woow122510/13 16:04原po跟我面過的有不少間有重疊耶 還是恭喜找到工作

touurtn10/13 16:34不錄取你 但還是想在你身上貼個建議售價?

解釋一下,第一通電話裡 HR 表示他們團隊先發 offer 但 HR 正在思考要不要錄用 因此先告知我核薪狀況,要我隔週等他電話,看我是否接受 offer 結果隔週電話裡,HR 一開始就表示他最後決定不發 offer (嗯,那讓我苦惱一週是為了什麼,直接發 email 感謝函還比較省事吧) HR 覺得在和我對談時,某句話的用字遣詞 HR 不喜歡,因此在沒有 reference check 的 狀況下不發 offer 給我,幫我內推的網友也覺得很無奈 當然,最前面的電話裡 HR 一直想壓低薪資又是一回事 不過這種狀況下只能當作沒有緣份,當時其實感覺那間公司的 Android 團隊還挺不錯的

※ 編輯: yc0015139 (36.226.90.248 臺灣), 10/13/2022 18:18:22

robber123410/13 17:55不去這些公司才好,問一堆coroutine結果是給多少$

robber123410/13 17:56還有早期某些安卓人最愛秋的rxJava, 現在誰還要用

robber123410/13 17:57看到要會rx的公司直接略過,問我會不會rx直接說不會

robber123410/13 17:58目前公司一堆爛code, 超過一半都是rx造成的

Lhmstu10/13 19:30感謝分享

hellomotogg10/13 20:09culture fit真的很謎

soarcat10/13 20:28各產業人事凍結 下次會更好

codepo10/13 23:04強者學弟 推推 學弟

rickykai10/13 23:49推分享

anson2666610/14 00:46感謝分享!

touurtn10/14 03:49遇過有些HR說你要接受offer才會發offer給你 真的白爛

※ 編輯: yc0015139 (101.138.213.147 臺灣), 10/14/2022 10:27:54

jobintan10/14 10:28樓上,這很正常,估計是被人撕offer給撕怕了。

※ 編輯: yc0015139 (220.136.13.199 臺灣), 10/14/2022 10:50:41

Alreadykiss10/14 10:53推推,分享好多細節,努力終有回報~

BearFather10/14 12:30遠端影響你對工作的喜好,有人愛有人不愛。但整個文

BearFather10/14 12:30化跟面試時的感覺比較影響你工作的真實感受。文化差

BearFather10/14 12:30的話遠端也一樣爛而效率更差

pkro1234510/14 12:41Noodoe不是拓連科技嗎?有改名?

Belieeve10/14 13:41好奇culture fit都往哪個方向回答,其實沒和他人協作過

Belieeve10/14 13:41的人這部分真的容易踩坑

baobomb10/14 17:38樓上怎麼這麼氣Rx xD Rx造成爛code是寫的人的問題不是Rx

baobomb10/14 17:38的問題xD

jay123peter10/14 22:31分享推,謝謝你願意分享

YaXuan199710/15 00:49恭喜

fanatics556610/15 07:13感謝分享,合作過2個N家出來的工程師不論是開發上

fanatics556610/15 07:13還是溝通協調的能力我覺得都不錯,可惜敗在HR

angusyu10/15 13:15有人說不是rx造成的,意思就跟java容易NPE不是它造成的是

angusyu10/15 13:15寫的人的問題,科科

baobomb10/15 17:20防NPE可以用Optional阿 所有語言,Framework,libs都有優

baobomb10/15 17:20缺點吧 但往往對其不熟的人才會覺得很難用 RxJava的Learn

baobomb10/15 17:20ing curve的確很陡 但真的熟練的話在大型Mobile專案裡可

baobomb10/15 17:20以帶來很大的好處

angusyu10/15 17:45都2022就不用再吹rx了,不然為什麼面試的都在換coroutine

angusyu10/15 17:48您要吹也是無妨,個人經驗確實就是個拉基,還好我不用深

angusyu10/15 17:48入學

hicoy10/15 21:02碰到coroutine之後 馬上棄坑rx 技術無限 時間有限

hicoy10/15 21:02知道什麼東西要投時間去鑽研也是一門學問

baobomb10/15 21:13我是不知道大大的環境是什麼 不過很大一部分人只是把Coro

baobomb10/15 21:13utine & RxJava拿來當作Threads switching的工具 那兩者

baobomb10/15 21:13其實只是coding style的差別而已而且完全沒有真正利用到

baobomb10/15 21:13這兩者的益處 Rx真正的好處在於模組化跟React Programmin

baobomb10/15 21:13g 這點Coroutine其實也是用Flow給出一樣的解決方案 沒有

baobomb10/15 21:13說Rx沒缺點 Coroutine的好處是學習曲線比較平衡 跟Rx相

baobomb10/15 21:13比也是各有優缺 沒有必要踩到底啦xD

sharek10/15 21:26重點還是reactive programming 的概念,就算用Coroutine

sharek10/15 21:26也是要學Flow。會因為用rx就把code弄得一團亂,改用Corou

sharek10/15 21:26tine不會好到哪裡去

baobomb10/15 21:26當然兩者的效能有差 這點Coroutine 的確是贏過RxJava 而

baobomb10/15 21:26且Coroutine如果Flow用的好 的確是可以寫出效能佳又Solid

baobomb10/15 21:26的code 不過我體感上Coroutine 因為更好上手 反而造成很

baobomb10/15 21:26容易被寫爛 當然這我個人感受啦 各有所好 :)

baobomb10/15 21:28sharek大大跟我想的一樣 沒錯 很多人用Coroutine 跟Rx

baobomb10/15 21:28 都沒有真正用到React/Flow programming 只是拿來切線程

baobomb10/15 21:28...

baobomb10/15 21:30Style上來看 Rx因為強迫使用者一定要React programming

baobomb10/15 21:30所以很多人覺得難用難學 Coroutine沒有強迫用Flow 所以

baobomb10/15 21:30很多人覺得好用 但Coroutine不用Flow的話 那真的是暴殄

baobomb10/15 21:30天物...

howhowyang10/19 22:391M/y的話… 某石頭店很缺人,而且上述主流技術通通不

howhowyang10/19 22:39需要會…

shietsd10/30 22:29所以看起來不要因為一時失敗而降低標準,最後總能遇見,

shietsd10/30 22:29恭喜happy ending

vcidt11/04 01:12謝謝分享