Fw: [心得] 2018 iOS 面試心得已刪文
※ [本文轉錄自 Soft_Job 看板 #1S2fCbI0 ]
作者: m20021991y (Eddie) 看板: Soft_Job
標題: [心得] 2018 iOS 面試心得
時間: Fri Dec 7 23:34:58 2018
[代 po]
(honestbee / iChef)
最近剛結束一連串的面試
準備過程中受到 Soft_Job 板前輩的文章幫助很大,
不論是面試分享的文章,或是職涯相關的文章,都讓我受用無窮
秉著飲水思源的精神,我也想把面試心得分享出來給大家,希望可以幫助到需要的人。
背景:23y, 私大CS夜間部學士畢, 約 4 年 iOS 開發經驗
第一次分享這樣的文章,不確定把薪資直接寫出來好不好,因此還是先以 N 代替
N = 現職月薪(單位:K),現職年薪 = N * 13
文中拿到的 Offer 年薪皆大於等於 1M
# Honestbee 誠實蜜蜂 (台灣)
[面試獲得方式]
HR 透過 LinkedIn 聯絡
[面試流程]
第一關 技術面試 (三個 iOS 工程師) - 約 100 分鐘
第二關 文化面試 (兩個 Backend 工程師) - 約 60 分鐘
第三關 Engineer VP 文化面試 - 約 20 分鐘
[面試過程]
## 第一關 - Technical Interview
由三位 iOS Engineer 面試,其中一位是 iOS team lead
看了 PTT 以前的幾篇面試分享,有英文也有全中文面試的
不知道現在到底是哪個,所以面試前很抖,
不過我這次的經驗是從開始到結束都是以中文面試
這次面試跟第一次一樣,面試完對於被問了什麼問題大概只記得一半,
不知道這樣正不正常 XD
一開始一樣不免俗的自我介紹,
介紹完畢後開始針對履歷及作品集上的項目提問,
個人覺得主要著重在:
— 基本功
— 過去經歷
— 對架構的了解程度/想法
— 對語言的了解程度/想法(例: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 參與的專案,會讓你對專案的掌握度非常高,
接觸到的「東西」也會相當多,技術方面一定是接觸到最多的,在面試時會很有優勢,
因為你是專案唯一的開發者,對專案非常熟悉,會有很多經驗可以分享;
再來就是和人合作、溝通的能力也會因此而培養,很多公司重視的不只是技術能力,
協作、溝通、表達的能力也是非常重要的一點。
分享到這邊,希望我的文章可以幫助到有需要的人,
如果有覺得哪裡寫得不好的地方有歡迎跟我說。
如果你是正在找工作的人,希望這篇文章有幫助到你,
也希望可以透過這篇文章給你一點信心,
祝福你/妳可以撐下去,找到心目中理想的工作!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.12.61
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1544196901.A.480.html
推
12/07 23:43,
5年前
, 1F
12/07 23:43, 1F
推
12/07 23:46,
5年前
, 2F
12/07 23:46, 2F
推
12/07 23:48,
5年前
, 3F
12/07 23:48, 3F
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: m20021991y (36.227.12.61), 12/07/2018 23:49:39
推
12/07 23:59,
5年前
, 4F
12/07 23:59, 4F
→
12/08 00:09,
5年前
, 5F
12/08 00:09, 5F
推
12/08 00:11,
5年前
, 6F
12/08 00:11, 6F
推
12/08 00:20,
5年前
, 7F
12/08 00:20, 7F
推
12/08 00:54,
5年前
, 8F
12/08 00:54, 8F
推
12/08 01:04,
5年前
, 9F
12/08 01:04, 9F
推
12/08 01:18,
5年前
, 10F
12/08 01:18, 10F
推
12/08 03:23,
5年前
, 11F
12/08 03:23, 11F
→
12/08 03:25,
5年前
, 12F
12/08 03:25, 12F
→
12/08 03:28,
5年前
, 13F
12/08 03:28, 13F
推
12/08 08:35,
5年前
, 14F
12/08 08:35, 14F
推
12/08 08:55,
5年前
, 15F
12/08 08:55, 15F
推
12/08 09:37,
5年前
, 16F
12/08 09:37, 16F
推
12/08 09:48,
5年前
, 17F
12/08 09:48, 17F
推
12/08 10:12,
5年前
, 18F
12/08 10:12, 18F
推
12/08 10:33,
5年前
, 19F
12/08 10:33, 19F
推
12/08 11:29,
5年前
, 20F
12/08 11:29, 20F
推
12/08 11:51,
5年前
, 21F
12/08 11:51, 21F
推
12/08 11:57,
5年前
, 22F
12/08 11:57, 22F
推
12/08 12:04,
5年前
, 23F
12/08 12:04, 23F
推
12/08 13:05,
5年前
, 24F
12/08 13:05, 24F
推
12/08 14:19,
5年前
, 25F
12/08 14:19, 25F
推
12/08 15:01,
5年前
, 26F
12/08 15:01, 26F
推
12/08 17:23,
5年前
, 27F
12/08 17:23, 27F
→
12/08 17:24,
5年前
, 28F
12/08 17:24, 28F
推
12/08 17:33,
5年前
, 29F
12/08 17:33, 29F
→
12/08 17:35,
5年前
, 30F
12/08 17:35, 30F
→
12/08 17:35,
5年前
, 31F
12/08 17:35, 31F
推
12/08 18:11,
5年前
, 32F
12/08 18:11, 32F
推
12/08 22:19,
5年前
, 33F
12/08 22:19, 33F
推
12/09 10:52,
5年前
, 34F
12/09 10:52, 34F
推
12/09 11:46,
5年前
, 35F
12/09 11:46, 35F
推
12/09 14:21,
5年前
, 36F
12/09 14:21, 36F
推
12/10 12:19,
5年前
, 37F
12/10 12:19, 37F
推
12/10 13:01,
5年前
, 38F
12/10 13:01, 38F
噓
12/11 13:23,
5年前
, 39F
12/11 13:23, 39F
推
12/12 12:18,
5年前
, 40F
12/12 12:18, 40F
※ 編輯: m20021991y (60.248.176.241), 12/13/2018 11:25:31
※ 編輯: m20021991y (60.248.176.241), 02/15/2019 14:53:54
※ 編輯: m20021991y (60.248.176.241), 02/19/2019 10:36:54