[代 po]
(Alfred / honestbee / iChef)
最近剛結束一連串的面試
準備過程中受到 Soft_Job 板前輩的文章幫助很大,
不論是面試分享的文章,或是職涯相關的文章,都讓我受用無窮
秉著飲水思源的精神,我也想把面試心得分享出來給大家,希望可以幫助到需要的人。
背景:23y, 私大CS夜間部學士畢, 約 4 年 iOS 開發經驗
第一次分享這樣的文章,不確定把薪資直接寫出來好不好,因此還是先以 N 代替
N = 現職月薪(單位:K),現職年薪 = N * 13
文中拿到的 Offer 年薪皆大於等於 1M
# Alfred 阿福管家
[面試獲得方式]
Yourator 主動投履歷
[面試流程]
第一關 技術團隊 (兩個 iOS 工程師,一個 CTO) + PM 面試 - 約 30 分鐘
第二關 CEO 面試 - 約 90 分鐘
[面試過程]
## 第一關 - 技術面試
由技術團隊 (兩個 iOS 工程師 + CTO) + PM 面試
進去後不免俗的雙方先自我介紹一下,
自我介紹中間還因為第一次面試太緊張有點忘記要講什麼 囧
結束後由 PM 開始面試,由於我自己有做一個 App (下班後的 Side Project)
所以 PM 的話題多圍繞在我做的 App 上,過程中像是在交流 App 的開發
(e.g. 這個功能怎麼決定要做的?A/B Test 怎麼實作?
用了什麼數據分析的服務?舉例一個根據數據來決定的功能?)
中間有穿插約 3 題的 Objective-C 問題,都算是基礎,不難
CTO 也有針對我做的 App 提問了兩個假設性的情境題,
兩題都算是比較偏向團隊合作的問題,感覺得出來很著重在團隊合作這塊
第一關過程約三十分鐘,快結束前由我問了一些公司及團隊的問題後,
就換第二關 CEO 面試。
## 第二關 - CEO 面試
一樣先自我介紹一下,然後就開始面試
面試主要也是圍繞在人格特質、了解過去的經驗、
為什麼想換工作、為什麼選擇唸夜校等
對方表示原本一面前是有 Take home test 要寫的,
但因為看我有一個還不錯的作品,所以團隊討論過後覺得可以直接省略這塊
聊到一半 CEO 說:你好像還不是很了解公司
(我有大致上了解公司做的產品是什麼,也有下載使用,但了解程度的確是很片面沒錯)
當下抖了一下想說完了大概要被請出去了 XD
不過之後 CEO 也和我介紹了一下公司、團隊、主要的營收方式等
但可能因為記性不太好再加上聊了一個半小時聊太多了,有些對話有點想不起來
第二關過程大概一個半小時左右,整體面試下來還滿愉快,
團隊每個人給人的感覺都很好相處,很親切,
CEO 在過程中也給予我相當正面的評價,真的非常感謝他!
[結果]
Got an offer
面試結束後 CEO 直接發口頭 Offer (實在是受寵若驚)
當下有表明非常感謝,但因為同時也在看其他機會,
所以可能不會這麼快回覆 Offer,對方也表示沒問題會等我
約三個工作天後收到 Email 正式 Offer
待遇:(N + 17) * 13
=====================================
# Honestbee 誠實蜜蜂 (台灣)
[面試獲得方式]
HR 透過 LinkedIn 聯絡
[面試流程]
第一關 技術面試 (三個 iOS 工程師) - 約 100 分鐘
第二關 文化面試 (兩個 Backend 工程師) - 約 60 分鐘
第三關 Engineer VP 文化面試 - 約 20 分鐘
[面試過程]
## 第一關 - Technical Interview
由三位 iOS Engineer 面試,其中一位是 iOS team lead
看了 PTT 以前的幾篇面試分享,有英文也有全中文面試的
不知道現在到底是哪個,所以面試前很抖,
不過我這次的經驗是從開始到結束都是以中文面試
這次面試跟第一次一樣,面試完對於被問了什麼問題大概只記得一半,
不知道這樣正不正常 XD
一開始一樣不免俗的自我介紹,
介紹完畢後開始針對履歷及作品集上的項目提問,
這邊跟 Alfred 一樣,面試官有先下載並使用過我作品集上的 App,
一樣也針對 App 裡面的某些功能做提問
個人覺得主要著重在:
— 基本功
— 過去經歷
— 對架構的了解程度/想法
— 對語言的了解程度/想法(例:struct 跟 class 會怎麼選擇?)
— 團隊合作
並且會針對你過去做過專案再一直細問下去,確認你是不是真的會
(例:我有提到專案中用的是 FLUX 架構,對方便請我說明 FLUX 是如何運作)
用了什麼架構?用什麼方法實現某個功能?用什麼方法有什麼優缺點?
說明使用過的架構 etc ...
因此對參與過的專案掌握程度要很高,才有辦法回答每個問題
最後有一題算是上機考吧,給你一小段 code,
請你找出這段 code 所有可能的問題、或是可以優化的地方,並且講出來
個人覺得題目出得不錯也不會太難,大概 5 ~ 10 分鐘就可把問題都抓完
算是把很多語言面 & 實作面的基礎問題都濃縮在一題裡面
不過因為是肉眼 compile 所以有些細節容易漏掉
我就是盡力把我看到的問題都講出來,並解釋為什麼這樣錯了,
應該要用什麼方法,最後還是有一兩個漏掉地方,
在面試官的引(ㄊㄧˊ)導(ㄕˋ)下也有抓出來
最後是發問時間,問完想問的問題就結束一面了
過程中有提到因為是跨國產品,國外也有 Engineering team,
因此會需要英文溝通,可能大部分都是讀 & 寫,少部分口說,問我覺得英文 ok 嗎?
(OS:糟了,這個開場白一定是英文面試的起手式
此時腦袋已經開始高速運轉準備要接招了,但最後還是沒被用英文問到問題 XD)
我表示讀寫一定沒問題,説也ok,不過口說可能還是需要多練習才能講得順
結束後由 HR 簡短說明接下來的流程,如果有二面的話一個禮拜內會通知,
重點會放在文化面試,然後就離開了
## 第二關 - Culture Interview
三天後收到二面邀請,HR 寄信通知後也直接打電話通知我
也說明了接下來的面試會如何進行,以及簡短說明薪資福利,
還有面完對公司的感覺是什麼,感覺得出來很重視面試者
一面完還特別寄信給 HR 說如果被拒絕的話可不可以也寄信跟我說一聲,
看來是多心了嗚嗚嗚
二面由兩個 Backend Engineer 進行,著重在處事上面
兩位面試官剛開始殺氣很重,剛開始有點嚇到,後來發現其實他們人很好也滿有趣的 XD
(例:如果跟成員意見有衝突,會怎麼辦?被排了很多事做不完,怎麼辦?etc ...)
這部分就是照實回答,其實也沒什麼標準答案,平常遇到時怎麼處理就怎麼回答,
沒遇到的就想一下遇到時會怎麼應對。
還有一部分時間在閒聊,相對輕鬆一點,約 30 ~ 40 分鐘就結束了。
結束後由 HR 詢問面試到現在的感覺,以及詢問期望的薪資,
HR 表示幾天後會根據我開出的期望薪資給我一個回覆後,就離開囉
(到這邊終於算是拿到一個口頭 Offer 了!)
原以為面試到此就結束了,
回家後接到 HR 電話表示 Engineer VP 希望可以跟我聊聊,
原本是要排在跟剛剛的面試一起,但因為有會議所以就沒有一起面,
於是展開了第三面之旅
### 第三關 - Engineer VP Culture Interview
三度來到 Honestbee 辦公室
一樣是 Culture Interview,事前有先針對 HR 給可能會被問到的題目做準備
(例:遇到最挫折的事是什麼?有什麼興趣或熱愛的事嗎?)
過程也會直接談到期望的 Offer,說了期待的薪資後,
VP 表示由於我被歸在 Junior iOS Engineer,所以會比我開的數字還要再減 10 萬,
但因為一季會有一次 review,會有加薪及升職的機會,所以也是有機會升到 Senior 的
我也表示 ok。
面試很短,約 20 分鐘而已,VP 人很帥很親切,面試過程很輕鬆,
不會有什麼壓力,VP 會一邊用鋼筆紀錄在筆記本上面,稍微喵了一下,字很漂亮 XD
結束後由 HR 說明接下來流程會怎麼跑,大概會花多久
我詢問完相關的福利之後就結束面試了。
後來問了一下 HR 為什麼以前面試分享的文章都說有四關英文面試,
但我完全沒有遇到,HR 回應說是因為不希望因為英文而錯過真的優秀
但英文或許沒那麼好的面試者,所以才有修改了面試流程。
(我記得沒錯的話是這樣,如果我有講錯請糾正我)
[結果]
Got an offer!
原本 HR 是說一個禮拜內會有答案
不過當天晚上就接到 HR 打來的好消息,表示 VP 覺得我 ok,
送件給新加坡 review 時也意外跑得很快,所以當天晚上就拿到 Offer 了!
待遇:(N + 31.5) * 12
=====================================
# iChef 資廚管理
[面試獲得方式]
主動聯繫 HR (HR 半年前透過 LinkedIn 聯繫,當時表明還沒有找工作的打算。)
[面試流程]
第一關 技術面試 (兩個 iOS 工程師) - 約 160 分鐘
第二關 HR 面試 - 約 20 分鐘
[面試過程]
原本已經約好面試時間,不過因為其他公司的二面結果在 iChef 排定一面之後才出來
想把其他面試排在同一天,所以和 HR 姊姊改時間,
過程中多次打電話反覆確認面試流程、時間相關的細節才終於敲定,
HR 也很有耐心的協助我,真的很對她很不好意思也很感謝。
## 第一關 - 技術面試
一面由兩位 iOS 工程師進行
面試的問題一樣不外乎語言的基礎、用過的架構、用過哪些 Design Pattern、
哪些 Design Pattern 用在什麼時候、有沒有 Refactor 的經驗等
我會在文末整理最常被問到的問題,在這邊就不多贅述
沒有什麼太難或刁鑽的問題,但有些基礎問題還是沒有答對或答得很好
(例:NSString 為什麼要用 copy?),覺得非常慚愧。
面試到一半火警警報器還響起來,後來發現是虛驚一場,算是滿特別的經驗(?
HR 提到會有白板題,原以為會有演算法題目,但後來發現沒有,
只是有時候講解東西會需要用到白板來輔助而已 XD
印象滿深刻的是由於 iChef 是做 B2B 的 POS 系統,但有些店家會沒有網路,
所以 App 必須也要在沒有網路的情況下可以運作,
所以邏輯跟資料儲存都會寫在前端,因此也很重視 unit test,感覺是個很大的挑戰。
## 第二關 - HR 面試
HR 相對技術面試而言就是比較輕鬆的了
主要就是一些滿常被問到的人格特質相關的問題,了解找工作的動機等
(例:用幾個詞形容自己、覺得自己有什麼缺點?etc...)
此時 HR 也會詢問期望薪資,如果有二面的話會跟 CTO 面試
## 第三關 - CTO 面試
(很抱歉這段因為面試完沒有馬上做筆記
幾天後想起來要寫筆記已經忘掉大部分問題了)
一面約三天後收到二面通知!
二面也是一些常被問的問題
(例:遇過最困難的技術上的問題是什麼?介紹一下做過的作品)
CTO 也不吝嗇分享 iChef 團隊內部的情況,團隊的願景、團隊如何協作等
過程像聊天,CTO 人很親切,大概有一半的時間是我在發問,
問完想問的問題後面試就差不多結束了,後續跟 HR 簡單聊一下後就離開了。
[結果]
Got an offer!
兩天後收到 HR 電話通知錄取
待遇:(N+20) * 13
[後記]
面試/準備面試真的是一件很累人的事情,不論是心靈上還是身體上
心靈上要承受著面試後可能被拒絕的壓力,
就算被拒絕後還是要打起精神繼續面試下一家公司
身體上由於只能用下班時間來準備面試需要用的東西,
再加上下班後還有 side project 要顧,
光是履歷 + 整理作品集就花了我兩三個禮拜才真正完成,
更別說要整理出面試常被問到的問題,並且熟悉這些問題所花的時間跟精力有多少了
儘管如此,面了三間公司以後,讓我收穫滿滿
不論是透過和不同公司、不同的人面試,可以知道自己還有哪些地方不足
還是每間公司的面試方式、面試會問的東西、公司在乎求職者的是什麼
在這邊整理一下面試這三間公司以來,最常被問到的一些技術上的問題:
struct、class 差異是?怎麼選擇?
GCD 相關 (dispatch_sync、dispatch_async)
strong, weak, assign, copy 是什麼,分別在什麼時候使用?
retain cycle 是什麼?怎樣造成?怎麼解決?通常最容易發生在哪些情況?
Category 是什麼?
NSInteger、int 的差異是?
用過哪些 Design Pattern?
物件之間溝通有哪些 Design Pattern 可以用?Delegate 用在什麼情況?
Notification Center 用在什麼情況?
用過哪些架構?聽過哪些架構?OO架構的運作方式是?有什麼優缺點?
面到後來發現其實每家公司在乎的都滿像的(當然我樣本數只有三個不夠多)
最重要的一定還是:基本功、基本功、基本功,
如果連最簡單的 Retain cycle 都回答不出來的話,
我想也很難說服人自己可以寫出一個穩定的 App。
再來就是你懂不懂得在哪些時機,使用哪些方法
哪些情況適合用哪一種?哪些又不適合?
(例:Objective-C 中 Category 跟 Class extension 的差異是?
Delegate 跟 Notification Center 分別在哪些時機使用?)
另外有 unit test 的經驗看下來雖然不是必須,但有些公司還是會問有沒有接觸過,
如果有一點 unit test 的經驗我想應該算是有加到分的(亂猜測)
個人覺得至少要懂 Dependency Injection、Mock、Stub 這些概念。
至於演算法白板題,看了以前板上的文章會覺得好像現在刷題已經是基本中的基本,
不管到哪裡一定會考。
但我很幸運的沒有在這三次面試中遇到,不然我可能一面就通通直接被刷掉了 XD
雖然我有因此買了個白板在家自己練習、模擬解題,但在這方面還是非常非常弱,
只寫了約 50 題的 Leetcode Easy。
最後補充一點,我覺得有一個(自己的)完整獨立開發的作品也是相當重要
有一個從 0 到 1 參與的專案,會讓你對專案的掌握度非常高,
接觸到的「東西」也會相當多,技術方面一定是接觸到最多的,在面試時會很有優勢,
因為你是專案唯一的開發者,對專案非常熟悉,會有很多經驗可以分享;
再來就是和人合作、溝通的能力也會因此而培養,很多公司重視的不只是技術能力,
協作、溝通、表達的能力也是非常重要的一點。
分享到這邊,希望我的文章可以幫助到有需要的人,
如果有覺得哪裡寫得不好的地方有歡迎跟我說。
如果你是正在找工作的人,希望這篇文章有幫助到你,
也希望可以透過這篇文章給你一點信心,
祝福你/妳可以撐下去,找到心目中理想的工作!