求職面試:2017 iOS 面試心得
前言
小叔張進雄的女兒庭慈很優秀,台大資工系學、碩士畢業,資訊業界就業多年,2017年她有意挑戰自己換個新工作,一年內進行了多次應徵iOS Engineer/ Software Developer 的考試與面試。 她費心地把這年內求職經驗記錄下來分享大家。
我認為業有專精,隔行如隔山,專業知識與技能各行各業或有不同,但求職者的面試技巧與應對心態卻是一以貫之,放諸四海皆準: 「求職者應對求才的面試官誠實相對,不耍虛假,求職者不管獲錄取與否,皆能從歷次面試中開拓自己的視野、學習到新知、充實自己的專業技能。」 總之,一技在身,加上正面樂觀態度,不愁找不到自己心目中理想的工作。
作者:Tina Chang 張庭慈
Sometimes you win, sometimes you learn.
Dec. 28, 2017
2017 iOS 面試心得
一直很想發文訓練表達能力,回顧這年在國內外面試不少間公司,現階段的自己比起談技術,對談面試或許更有把握些,加上iOS 面試心得不多,於是就決定將首發獻給尋覓新工作路上的點滴。
個人背景:112 碩畢 / 業界經驗 7 年 / iOS 經驗 2 年
1. Carousell — iOS Engineer
方式:自行從官網應徵
語言:英文
流程:
Phone Interview (Technology Recruiter)
Onsite Interview (Senior Engineering Manager)
應徵後Recruiter不到兩天就透過Skype和我聯絡,詢問我幾題 iOS技術問答題和行為問題(例:工作上碰過最難的挑戰?)就開始約Onsite時間,整個過程約半小時。
Onsite地點在旋轉拍賣位於迪化街的台北辦公室,裝潢承襲商店街一致的紅磚拱廊,當天上樓一開門看到一張床我還愣了一下,隨後面試真的就在這超居家空間的冰箱旁進行。主管拉了兩張小板凳我們相鄰坐著聊天,主要針對履歷提出各種問題(例:目前比較想專注在前端還後端?平常如何充實自己?)過程約40分鐘。
結果:感謝函
2. IntoWow — iOS Engineer
方式:透過 Niche Bridge 仲介應徵
語言:中文
流程:
Online PreTest (Codility)
Onsite Interview (iOS Engineer + Sr. Architect)
獵頭極力推薦的B2B廣告SDK新創公司,他替我應徵後對方很快就寄來 PreTest 測驗連結,內容是透過 Codility — 類似LeetCode 的線上演算法答題平台 — 解題。題目共4題,前三題不難但描述很長,不需要考慮邊界溢位問題,最後一題來不及解完,好險還是順利 PASS 進到下一關。
Onsite 在位於東區的IntoWow 辦公室,由一位 iOS工程師搭配一位資深架構師輪流問問題,前者問了幾題 iOS 背景知識和一題 iOS 相關實作題,後者針對履歷提問和兩題 LeetCode 原題。實作需要將程式碼完整寫在白板上,但不需要死記所有 API,卡關的話面試官會親切提示,感覺比起結果正確性與完整性,對方更加重視與面試官互動討論的過程,歷時2.5小時。
結果:興趣不符婉拒二面
心得:個人在這次面試獲益良多,首先我喜歡和 IntoWow 面試官的各種討論交流,他們友善、知識豐富且用心,無論我問多少問題都不會不耐煩。另外,這是我第一次透過仲介公司找工作,我的仲介 Ash Cheng 替我修改後的履歷重點更加清楚,用詞遣字也專業不少。最後,我發現自己續航力不足,面試16:00開始,我上班到最後一刻才去面試,結果到後面根本無法思考,如果再來一次我會選擇請上整天假。
3. Agoda — Sr. iOS Developer
方式:透過 Niche Bridge 仲介應徵
語言:英文
流程:
Online PreTest (HackerRank)
Phone Interview (iOS Developer)
Homework
公司位於曼谷與最近軟體工作版火紅的 Booking.com 同集團,iOS 開發實力堅強尤其重視軟體工程與測試,共計5千多 Unit Test 和6百多 UI Test。同樣,獵頭幫我應徵後對方很快寄來 PreTest 線上測驗連結,共有14題單選或多選 iOS 知識題,Swift、Objective-C 各半測驗時間20分鐘。當時沒碰過 Swift 有一半題目是用猜的,約5天收到 PASS 通知。
Phone Interview 約在兩週後透過 Skype 面試,面試官打進來彼此先自我介紹、接著閒聊一陣(例:工作中最有熱情最喜歡做的事?反之最討厭的事?)並問了些 iOS 知識(例:你會如何向新人工程師介紹 Core Data?)最後,利用線上共同編輯器 CoderPad 完成 iOS 實作題及相關測試,同樣比起死記 API 更重視是否能清楚闡述想法,測驗隔天收到作業。
作業是重構充斥著各種問題的糟糕程式碼(面試官表示他們在作業上極其惡搞之能事且玩得很開心XD)沒有設定死線deadline但建議一週內完成,作業也同樣是 Swift、Objective-C 參半並採用 VIPER 架構,沒接觸過的新玩具很多,我很興奮的邊學邊寫,沒想到尚未來得及完成,獵頭就通知我人事凍結,最後還是花了兩週改完作業,用力把單元測試寫到覆蓋率70% 送出。
結果:人事凍結
心得:藉面試給自己動力學習 Swift、VIPER 新知很開心,但很遺憾無法和面試官當面討論交流作業的看法,喪失進一步學習的機會。說起來不好意思,當初是我畏於Agoda 面試高難度的威名,一再拖延面試時間想把自己準備得更好再應戰,沒想到最後就因為人事凍結被迫中止面試真是得不償失。親身經歷讓我明白機會真的是不等人的,一定要讓自己處於隨時能面試的心理狀態。另外,我並不是什麼都會的大神,實力不到的情況去面試就會有運氣成分,花再多時間也不會有完全準備好的那天,喜歡的機會來了就去試才是增加 offer 期望值的最佳解。
B1ack3y3 大大的 Agoda — Senior iOS Developer @ Bangkok 有 Onsite 資訊
4. KKBOX (UtaPass) — iOS Developer
方式:內推
語言:中文
流程:
PreTest (Codility)
Onsite Interview I (iOS Manager + Senior iOS Developer)
Homework
Onsite Interview II (All Team+ HR + UtaPass Manager)
KKBOX 是我非常憧憬的公司,自從看過 zonble 大神的 iOS 教材驚為天人後,就持續在關注這間公司的職缺。透過朋友內推後約兩週寄來 PreTest 測驗連結,同樣是題目描述很長的 Codility 演算法共三題限時80分鐘,不難,做完3天後收到 PASS 通知。
Onsite 位於 KKBOX 南港展覽館總部,由兩位iOS 面試官輪流詢問各種 iOS 問題,包含 iOS 背景知識、程式碼除錯和物件導向設計,會議室有白板能輔助回答,物件導向設計偏重概念討論,不需要逐行寫到能動的完成度,結束後5天收到作業。
作業是 iOS App 實作,只要能達成面試官要求的功能,其餘像是語言要 Swift 或 Objective-C、架構要 MVVM 或 VIPER、UI Layout 這些皆能自行決定,期限為5天。我選擇 Objective-C + MVVM 並利用 KVO 實作 Binding,交出後兩週收到二面通知。
二面課題是在 UtaPass 所有 iOS成員、HR、大主管前講解作業,過程中任何人對於程式碼、設計理念有問題都會提出,與我在公司 Code Review 過程沒什麼差異,不需要站到投影幕台前講話格外令人安心。最令我感動的是主管事先把我寫的程式碼一字不漏的仔細看完並提出非常多有用的建議,其他成員也接連提出我沒考慮過的問題。經過二面我更加相信 KKBOX 擁有能讓 iOS 開發者持續成長的學習環境。
結果:Offer Candidate
心得:面試過程讓我學到很多,光是能與眾 iOS 高手討論就感到值回票價,誠心推薦大家試試,KKBOX 真的擁有非常好的工作文化與環境 :)
5. LINE Fukuoka — Software Developer
方式:台北聯招,透過 TOP CAREER 仲介應徵
語言:英文
流程:
Offline PreTest
Online Technical Test
Onsite Interview (iOS Developer + Software Developer)
Final Interview (Manager + HR)
透過朋友介紹認識在 TOP CAREER — 專替日本 IT 企業尋找海外工作者的仲介公司 — 擔任仲介的台灣彭先生,在日本深耕多年的他與我分享不少日本經驗,消彌我對日本 IT 就業各種不明的點於是決定應徵。首先他寄給我 PreTest 文件請我填寫,內容包含演算法、能力評估表格(JAVA 相關項目為主)、個人經驗問答題。PreTest 沒有規定需在多少時間內完成,但當時7月底有 LINE 台北聯招活動,考慮到與面試官當面較好溝通,便趕在6月底前送出,3週後收到 PASS通知及測驗連結。
Online Technical Test 是透過 RemoteInterview.io 線上平台回答約 10 來題技術問答題,內容包含演算法、資訊背景知識、iOS、Android,作答時間 1 小時。雖然問題範圍很廣囊括前後端,但 LINE 並不預期面試者全部回答,實際作答時我直接跳過 Android 和部分後端問題,送出隔天收到 PASS通知。
Onsite 在內湖 LINE Taiwan 舉行,進門印入眼簾就是超巨大熊大,毛很順很好摸 ❤ 熊大身後是整片落地窗採光良好,再加上進駐在會議室咖啡廳各處的 LINE 吉祥物,讓人越來越想在 LINE 工作 XD 。 回到面試內容,我的面試由一位 iOS 工程師(德國人)和另一位工程師(台灣人,後來才知道就是大名鼎鼎的 koji)輪流詢問問題,內容主要為 Technical Test 的延伸問題和 iOS 知識討論。問到後端問題,面試官還非常貼心的提示我「他明白我主要負責 iOS, 問後端只是想多了解」 讓我沒答出來也不至於太低落,過程約 2.5 小時,隔2天收到 PASS通知。
Final Interview 同樣在 LINE Taiwan 以視訊方式舉行,由於主管是用日文溝通,進行同時有口譯人員幫忙翻譯。首先是主管根據我的履歷問問題,純聊天沒有任何技術問題,接著是 HR 和我介紹公司現況、分紅制度、移民輔助云云,結束1週後收到offer。
結果:Offer Get
心得:LINE 面試過程較長,從 PreTest到 Offer約2個月,由於題目不是現場作答也不會考太艱深的演算法,個人覺得比起刷題提升反應速度,持續學習新知增加知識廣度更為重要。
想了解 LINE 更多面試流程與工作文化推薦參考 Freddie 大神的 來日本工作三個月的心得,另外最近還會有一場 台北聯招 喔
6. Amazon JP — Software Developer
方式:內推
語言:英文
流程:
Phone Interview (Software Developer x 2)
Onsite Interview (共 4 關,Software Developer x 2+ Senior Search Engineer + Software Manager x 1)
被科技版 Rabby250 大大的文章與目黑川櫻花釣到決定請他幫我內推,內推過程和聯招不同並沒有 HackerRank 線上測驗,而是由真人透過 Skype 和線上共同編輯器 Collabedit 線上進行Phone Interview。面試官打進來請我簡單自介後,考了兩題演算法和 OO Design、System Design 各一題,3小時後就收到 PASS通知,史上最快。
Onsite 是透過亞麻自家開發的 Amazon Chime 視訊面試,我在面試前 10天收到面試官名單,共 4關 4小時,兩關中間有15分鐘休息時間,事前無法知道有幾關演算法、幾關系統或物件導向設計。實際面試我碰到一關演算法、一關物件導向設計、兩關系統設計,無論哪關都花一半以上時間在 Behavior Question 比重相當高。關於Onsite面試, Recruiter有詢問過我是否要選擇跟台北聯招,當時想盡快答覆 LINE 就還是使用視訊面試,這是非常失敗的決定,不只視訊畫面斷斷續續,線上共同編輯器也狂雷格,加上沒有白板輔助畫圖說明,面試過程很痛苦、自我感覺不良好,面試完1週後收到感謝信。
結果:感謝信
心得:事前就知道亞麻相當重視人格特質,回答要盡量遵循領導原則,但沒想到 Behavior Question 比例如此高,最後還是講到沒梗。然後,面對面加上白板輔助溝通絕對有差,尤其英文非母語的情況,推薦還是參加台北聯招或自己買張機票飛東京面試較妥當。
亞麻詳細請參考 Rabby250 大大的 [亞洲] 日本 Amazon 的 SDE 職缺 FAQ、[亞洲] 日本 Amazon 2017 臺灣徵才- SDE 缺、Re: [亞洲] 日本 Amazon 2017 臺灣徵才- SDE 缺
結語
我開始面試的動機其實不純,我並不是為了換工作,而是隨著年資增長,我失去不依靠公司也能生存的自信,而我不滿意這樣的自己,決定由市場驗證找回自信。2017 年,我透過累積面試經驗,越來越了解自己的市場價值與不足之處,對面試結果越來越看得開,失敗大不了回家努力再挑戰。除了達成最初目標找回自信,也很幸運得到憧憬公司的肯定,決定離開第一份工作迎接新挑戰,總結個人經驗面試能正常發揮的心法如下:
- 誠實面對自己的不足。剛開始我被戳到缺點會下意識閃避,到後來我能侃侃而談自己的缺點(估計面到痲痹了)是因為我發現公司真正想知道的不是我的缺點,而是我如何面對它克服它。另外,人的感覺比想像還要敏銳,在面試官面前真正想法是難以掩飾的,還不如老實說出來。最後,誠實不說謊誇大成就,公司錄取我後才會對我有正確的期待,這麼一來收到offer被肯定的是真正的我,心裡會更踏實些,也會更有自信。
- 力保平常心、放掉得失心。面試是候選者和公司互相了解、尋求合作機會、進而達成雙贏的過程。對公司有任何疑問、想法寧願在面試時勇敢提出來,不要進去才發現不適合浪費雙方時間。同時,這也是能與不同公司大神們當面交流、更加了解公司實情的大好機會,幾次我放膽問都有不錯的收穫。被拒絕不需要太難過,面試絕對有運氣成份,有時候被拒不是實力不足而是時機不對沒有適合職缺。再者,同公司不同面試官出題和喜好不同,再挑戰一次說不定就上了。
- 相信努力的自己。努力被拒很痛苦,這種被否定的感覺就像失戀,而且和失戀一樣大部分公司不會告訴你理由 Orz 我曾煩惱過為何別人總能輕鬆達成目標,那麼別人真的不用努力嗎?前部門有位厲害的大神,我煩惱整天看完解法還是不懂的題目,大神聽完題目立刻就能講解,我覺得這就是天才與凡人不可越的鴻溝。直到某天他給我看自己練習過的數千道題目列表,這是高中時期他犧牲每天午休的結晶,從此在我累到想放棄前總會想起這些比我更努力的天才,在還沒練到一萬小時我根本沒資格放棄。再者,努力得到的東西是屬於我的,即使面試失敗努力也不會白費,例如我在 Agoda 面試學到的架構 VIPER 就令 LINE 的面試官非常感興趣,面試Amazon學習到的知識也在工作派上用場。
- 面試即是練習,做好隨時能面試的準備。我在 Agoda 面試體會到機會不等人,也不會有完全準備好的那天。事實上最好的面試準備就是去面試,如同學習新知最好的方法就是動手作 — To Get your Hands Dirty。面試幫助我了解在市場的優勢、劣勢與價值,並在與不同面試官溝通中,讓我漸漸明白如何簡短有重點的說明經歷、如何回答才能展現自己的人格特質。磨完刀要用,閉門刷題之餘偶爾也出門投個履歷吧。
關於心態,誠摯推薦 Kenji Chao 在 2016/17 美國軟體工程師求職心得 文中的論證分析,非常受用。
" 除了四百個臉書朋友外,還有其他的人事既能嗎?”
--- 全文完 ---