iOS 菜鳥工程師面試經驗 2


繼結業後第一週,我繼續約了滿滿的第二週面試,然後在最後一家被大洗臉(幡然醒悟)

1. 資拓宏宇

是資策會結業發表時,有來徵才的廠商。中華電信子公司、專案公司,業務內容多為政府標案(Ex. 健保快易通),採線上視訊面試的模式。
在我化好妝、正襟危坐的打開視訊的時候,視訊畫面出現我們班建二代的臉(大笑),原來是班上的集體線上面試,瞬間放鬆下。考試內容包含:
  1. 測試版App依據不同的規模人數 (300 ~ 8000),在事前無法提前取得UDID的情況下,如何發布測試版App
  2. TestFlight推播時,使用正式Certification / 測試用Certification
  3. OC語法的正確寫法
30分鐘考完試放棄掙扎交卷,全死。
最後人資用簡報幫我們帶過公司福利的部分,福利滿不錯的,月中提前領薪 + 半價中華電信資費,看了超吸引人,但我前面考試慘烈,我們就別期待了。

2. 百商數位科技

看官網做的App五花八門,應該是接案公司,面試時面試官說他們是專注於財經類的App(應該是股票吧)

面試前頭先寫了半個多小時Swift試題,內容包含:

  1. 印出九九乘法表
  2. 對陣列作排序
  3. 找出1000以下所有公因數?(忘了)
  4. 邏輯測驗(Ex. 金銀銅寶箱,金幣在其中一箱,敘述兩假一真,金幣在哪一箱?)
  5. ViewController Life cycle
其實從這裡開始,就該意識到自己有多麼準備不足,但我沒有。因為Life cycle回答不出來,回去做了複習,並在藍新面試試題中遇到一樣的題目而沾沾自喜。

面試官是個像P的人(有點業務性質加乘)。聊了很多,從如果工程師跟你說這樣的設計無法再開發被執行,你當初是如何處理的,到不會讓底下的工程師說「做不出」這樣的話等等。
  1. 傾向自刻畫面大於使用套件,因為套件有改不動的風險,你無法對客戶說「這是套件,我改不動」
  2. 問為什麼結業專題儲存機制要使用CoreData而不是用UserDefault?因為牽扯到SQLite 的儲存都很慢,相比UserDefault快多了,或使用Encode存成File檔,都比CoreData快
  3. 對於不確定能否實作的功能舉例:曾經有一份需求是方塊圖,公司的資深工程師一開始沒有頭緒,最後面試官查了一下資料、討論了一下,2天就開發出來了
  4. 入職後會有一個月的試用期,會讓新人開發一支App,如果開發不出來,就bye了
整體聊下來滿愉快的,但我筆試慘烈無比,讓我進不去 :(

3. 三竹資訊

同事How哥的太太,從資策會前端工程班畢業後是進這間公司。

面試時先寫了約莫1小時的Swift試題,應該7成都會,印象比較深刻寫不出來的是:

  1. sort的closure簡化寫法 你遲早要會closure的,為什麼不趕快學會 $0 的簡寫法?
  2. optional type nil 和 .none的差別
  3. Array 的 extension的寫法,如何從 myFunction([1, 2, 3 , 4])  變成 [1, 2, 3, 4].myFunction()
面試官是 J,冷靜工程師貌,一邊向我解釋公司的內部流程以及業務類型。

  1. 三竹是國內最大證券 App 交易開發商,維護的 App 大約有4、50支,一個工程師分配下來大約需要維護5支App,大部分是修改客戶的需求,如果有大功能開發,會把功能模組化進Library,讓大家都可以用。
  2. 畫面也是自刻為主,不常使用套件(或拿套件的原始碼來改)
  3. 面試官說還要跟主管討論是否要培養什麼都不會的新人(沒錯,我到這個時間點還是沒意識到我什麼都不會)

結束公司面試離開大樓時,眼角餘光瞄到在UDN Mobile 當設計師時期的 iOS 工程師,跟著其他人正要去吃午餐(原來他到這邊來啦)

4. 藍新科技

應該是最簡單的筆試題目,寫完懷疑在考我閱讀能力。

面試官看我Demo我的排菜單App,提供了一些檔案分類的建議。

  1. 不推RxSwift,認為簡化的寫法而不知道背後的運作機制是糖衣毒藥。
  2. 說明MVC架構和後來MVVM架構(但我還是有聽沒有懂)
  3. 寫程式要寫註解,可以讓你更好維護這份Code
  4. 不要搞死自己


5. 全曜財經資訊 CMoney

壓軸介紹:全曜財經 aka CMoney,面試官M出場後,那個口條就讓我想到HiHi。

M面試前段開始跟我閒聊,想要做什麼產業?認為這是一開始就需要做的選擇,因為不同的產業需要不同的耗費精神時段,比如說:直播、社交類App,可能是下班後的晚上 7:00 ~ 12:00 之間最為活躍,而股票的看盤App則是 9:00 ~ 13:30,而這些時間就是工程師額外要on call的時間。因為人不可能全時段無限集中精神,決定你想耗費時間的產業,可以讓你更容易留在那間公司,認為人應以此為目標去找工作。

想說半小時面談怎麼會先跟我談要去什麼產業,這不是面試嗎?XD

後來M解釋因為他不希望應試者在緊張的狀況下回答問題,他希望閒聊後比較放鬆的狀態測試出應試者的實力。

然後我就被大洗臉了 (艸),後來他問我的問題,每個都好像聽過,但都不是知道的很透徹。

面試官每問完一題,會回來recatch 一下剛剛的題目,並提供解答。

  1. swift有很多種型別,例如 Int、String、Array ...等等等,他們是reference type 還是 value type?
  2. 簡述 reference type 和 value type,class 和 struct 分別是哪一種?
  3. 說出你知道的跨頁面傳遞資料的機制 Delegate、Notification Center 、 Closure***
  4. 承上題,這些機制的使用時機?
  5. 請說出你知道的 access control 
  6. 請說明ARC 和MRC的差別
  7. 在造成 retain cycle 時,weak 要加在哪?
  8. Array 是 value type 還是 reference type?
  9. 解釋交割 大錯特錯,完全跟我認知的不一樣 T+3
最後面試官在回問 Array 是 value type 還是 reference type 時,我還是答不出來,M表示我需要好好去了解一下。
最後結束這場面試,得到有史以來最速感謝信(面試完1小時後)(艸)


算是當頭棒喝嗎?
我這一週就是在大裸考、什麼都沒有準備,以為憑藉著架上App和4個月的資策會文憑,就能拿到一個 Junior iOS 工程師職位,結果被大洗臉讓我看清現實。我根本連 Junior 都還不是,我什麼都不會。不會一般常見的高階函數用法、reference type \ value type 一知半解、不知道 access control 是什麼、sort 函數沒用過、extension 用法一知半解、ARC \ MRC 一知半解,甚至連串資料的json decoder都不熟。

面試完就是呈現一個我真的很爛的狀態,連國泰的面試題目都沒動 😢

後來心情有比較恢復,轉職就是這樣,隔行如隔山。現在像是重新投胎一樣,有產品合作開發經驗,但完全沒有寫code的能力,所以重新開始吧!

留言

這個網誌中的熱門文章

排菜單 Privacy Policy

台灣直播商的客群分析