[心得] 2018 iOS 面試心得

作者: m20021991y (Eddie)   2018-12-07 23:34:58
[代 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 參與的專案,會讓你對專案的掌握度非常高,
接觸到的「東西」也會相當多,技術方面一定是接觸到最多的,在面試時會很有優勢,
因為你是專案唯一的開發者,對專案非常熟悉,會有很多經驗可以分享;
再來就是和人合作、溝通的能力也會因此而培養,很多公司重視的不只是技術能力,
協作、溝通、表達的能力也是非常重要的一點。
分享到這邊,希望我的文章可以幫助到有需要的人,
如果有覺得哪裡寫得不好的地方有歡迎跟我說。
如果你是正在找工作的人,希望這篇文章有幫助到你,
也希望可以透過這篇文章給你一點信心,
祝福你/妳可以撐下去,找到心目中理想的工作!
作者: h5904098 (LBJ IS GOD)   2018-12-07 23:43:00
推推
作者: fidelity77 (小柚)   2018-12-07 23:46:00
23歲..太神了
作者: ID3238 (默默)   2018-12-07 23:48:00
作者: orange0319 (喵喵喵)   2018-12-07 23:55:00
好猛,強者,談到的薪水也不差的說
作者: molopo (mmm)   2018-12-07 23:57:00
推 超神
作者: popcool (我不懂)   2018-12-08 00:12:00
想問一下,為何四年年資還是被歸類為junior 啊?
作者: fortinet (fortinet)   2018-12-08 00:29:00
Senior或Junior跟面試出來成績有關,跟年資沒關係。各公司會有自己的認定標準,當然小公司較容易title亂給,總之不會是大約N年就一定叫Senior
作者: sharek (...)   2018-12-08 00:32:00
年資跟資深本來就是兩回事
作者: duck10704 (duck)   2018-12-08 00:34:00
好強 推
作者: LinuxKernel (Linus Torvalds)   2018-12-08 00:36:00
薪水這樣寫其實沒什麼參考價值啊
作者: art1 (人,原來不是人)   2018-12-08 00:50:00
有自己的專案就能了解各種技術的使用時機嗎? 感覺不出來
作者: starburs (星爆氣流斬)   2018-12-08 00:57:00
N+31.5是什麼概念…是他們很敢給還是你原本的N太低阿
作者: frejy (故事人)   2018-12-08 01:00:00
推分享不過也想知道31.5是公司敢給還是原本太低
作者: OhGNM (OhGNM)   2018-12-08 01:10:00
如果N+20*13也有破百的話,那N大概可以推出@@
作者: Argos (Big doge is watching u)   2018-12-08 01:21:00
三間都還在問ObjC喔?都沒打算用Swift嗎 XD
作者: rxhivzero (rx)   2018-12-08 01:53:00
給推23歲這樣真的猛
作者: stkoso (Asperger)   2018-12-08 02:22:00
23破百給跪了
作者: GX90160SS   2018-12-08 02:30:00
N應該是60K左右+31.5的原因很明顯,就是外商拉高月薪沒保證年終想看私下上架的作品XD
作者: popcool (我不懂)   2018-12-08 02:36:00
算了一下N差不多是60k,第一次看到破百的junior,果然職稱是給爽的嗎XD
作者: GX90160SS   2018-12-08 02:43:00
這行除了第一份工作,基本都是看實力不看學歷了
作者: stkoso (Asperger)   2018-12-08 02:46:00
第一份工作也才高中畢業 實在很難想像
作者: jlhc (H)   2018-12-08 03:08:00
startup真的很敢開
作者: DrTech (竹科管理處網軍研發人員)   2018-12-08 08:29:00
心態正確,表達充滿系統與邏輯。真棒
作者: Chris926926 (Jan Egeland)   2018-12-08 09:21:00
我媽問我為什麼跪著滑手機...
作者: menshuei (紅茶)   2018-12-08 09:23:00
真強者
作者: Linares (TaeyeonSone)   2018-12-08 11:16:00
23歲私大 猛
作者: iamyiz (Gigahertz)   2018-12-08 11:39:00
跪推強者
作者: gofigure (平行世界)   2018-12-08 13:34:00
讀死書和不會讀死書的差別 呵呵
作者: clamperni (肥宅牛牛)   2018-12-08 13:38:00
第三間面好久喔
作者: lk2986706we   2018-12-08 15:18:00
真的很厲害 推
作者: devilkool (對貓毛過敏的貓控)   2018-12-08 15:44:00
好厲害
作者: chocopie (好吃的巧克力派 :))   2018-12-08 16:39:00
作者: chongruei (POPO)   2018-12-08 17:01:00
推推
作者: ZuiYang (Zui)   2018-12-08 17:05:00
原po是寫4年ios開發經驗不是工作經驗吧,看起來是學生時期就開始學,不過私大學士23就破百也是跪了...
作者: s12358972 (Spice)   2018-12-08 17:32:00
23歲私大夜間破百強者
作者: sp063439 (Isk)   2018-12-08 18:00:00
腿軟惹
作者: siriusu (かがみは俺の嫁。)   2018-12-08 18:10:00
推推
作者: x3795566 (恬靜與快樂)   2018-12-08 18:42:00
有機會可以分享進步的心路歷程嗎? 覺得你好厲害
作者: koka813 (shift)   2018-12-08 22:01:00
真的太神了23歲就這樣!
作者: clamperni (肥宅牛牛)   2018-12-08 22:42:00
感謝面試分享 若有學習經歷就更棒了
作者: VisualStudio (2015)   2018-12-08 22:51:00
作者: justill   2018-12-08 23:16:00
作者: winld (永遠在跟時間賽跑)   2018-12-08 23:25:00
真的太厲害了
作者: ks0518 (Ao)   2018-12-09 01:06:00
推 覺得厲害
作者: whitecolor (白色)   2018-12-09 01:38:00
作者: kyrie77 (NTU KI)   2018-12-09 01:49:00
太猛了...
作者: lgates (衰神附身的男人)   2018-12-09 04:14:00
23歲在台灣這樣談到破百我還不跪著看
作者: galapous (墨)   2018-12-09 12:02:00
膝蓋碎了
作者: THEWORLDS (天下)   2018-12-09 12:32:00
這有啥參考價值? 4年 然後n 高潮啥
作者: t64141 (榕樹)   2018-12-09 14:28:00
年薪皆>=1M, 很容易推算出 n 的最小值, 樓上有啥好崩潰的而且這麼詳細的面試過程與內容, 參考價值很高阿
作者: GX90160SS   2018-12-09 14:46:00
整天推leetcode卻連N都推不出來嗎XD
作者: shady1023   2018-12-09 21:01:00
感謝分享
作者: rocooshiang (water_crazy)   2018-12-09 23:42:00
推!
作者: Argos (Big doge is watching u)   2018-12-10 09:36:00
所以現在那些學歷基本教義派的是不是又要出來講原PO特力屋
作者: bilibo (找尋最初的感動)   2018-12-10 11:02:00
23歲真的很猛!!
作者: THEWORLDS (天下)   2018-12-10 11:19:00
4年100沒啥好參考價值阿 又是寫app 到底懂不懂?
作者: femlro (母豬教謀神異端審問官1.5)   2018-12-10 11:20:00
噓的通常都沒破百 幫QQ
作者: THEWORLDS (天下)   2018-12-10 11:25:00
lol .... 抱歉...我真的沒破百大概稅後10多萬而已一年
作者: AriesX (Aries)   2018-12-10 11:30:00
原來寫出薪水才叫有參考價值喔?文內心得超豐富有沒有看到光這些心得就可以幫助到很多要面試的人了
作者: THEWORLDS (天下)   2018-12-10 11:32:00
可能我沒說清楚吧 我只是覺得寫了4年了 又平均月破百去面試這幾間野雞公司竟然沒有主管職 我很驚訝而已
作者: AriesX (Aries)   2018-12-10 11:33:00
覺得薪水沒參考價值,不代表其他東西沒參考價值ok?
作者: THEWORLDS (天下)   2018-12-10 11:34:00
整個面試下來只是依照年資跟過往薪水開價而已 確實 LOL我app沒有特別懂啦^^ 但至少沒到很菜是真的
作者: AriesX (Aries)   2018-12-10 11:36:00
補推,真的看不懂在噓啥,眼裡只有薪水,分享跟心得都無視
作者: THEWORLDS (天下)   2018-12-10 11:38:00
樓上你還看不懂嗎 你如果有這個年資跟過往薪資 去面試然後只打了這些基本流程 真的就沒參考價值你根本沒辦法以這篇當作目標去準備我要表達的只是這個 可能我常寫api有這毛病吧
作者: eggli (eggli)   2018-12-10 11:46:00
"竟然沒有主管職" <-- 我還以為這個版是Soft_Job
作者: rxhivzero (rx)   2018-12-10 11:48:00
...這幾間已經算有知名度了 某人不會以為小公司破百很難吧 一定要主管職?
作者: THEWORLDS (天下)   2018-12-10 11:49:00
小公司破百還好 我朋友開的一堆破腦袋也是給200多我只是單純覺得 這篇不能夠當作目標去準備 就這樣
作者: Argos (Big doge is watching u)   2018-12-10 13:22:00
B and Q 特~力~屋~
作者: CodingDuck (框框)   2018-12-10 13:22:00
樓上領多少我不知道,但從來沒在軟工版貢獻過任何一篇面試文倒是真的,還能在軟工溫情版也能被噓爆也是一種人才。樓樓上la為什麼要 truncate 我QAQ
作者: Argos (Big doge is watching u)   2018-12-10 20:28:00
樓下一篇 破200?根本小家子氣 這邊基本新人都300萬起跳
作者: frankshih (阿翰)   2018-12-11 08:06:00
強者,推個
作者: hellomotogg (你好機車)   2018-12-11 13:29:00
膝蓋好痛
作者: bill750121   2018-12-11 16:25:00
請問有上架的作品或github嗎
作者: a2470abc (D.F.)   2018-12-20 02:01:00
真的強者 怕

Links booklink

Contact Us: admin [ a t ] ucptt.com