那些 BAT 的面試官,都是怎樣面試 iOS開發者的?

前言:

金秋九月,互聯網招聘高潮已經來臨!相信作爲面試官的你,估計開始準備招聘要求或者已經在招聘了!這一篇文章主要想和各位面試官交流一下:我們應該制定一份什麼樣的招聘要求,纔是比較合適的?(* ̄︶ ̄)

iOS面試需要注意

1:面試態度

我們在招聘的時候,面試官經常會犯一個問題:各種碾壓求職者!

我不知道你招聘這一天發生了什麼事情,心情好不好?但是我希望當你去面試的求職者的時候,保持愉悅,給予面試者應該的 -- 善意!

你面試代表你的公司,你的言行舉止都直接影響外界對貴公司的感受

同時作爲一個管理者的你,成功和愉悅的面試過程也應該是你此刻最希望的!

可能現在他還只是求職者,但是興許過段時間就是你工位旁邊的同事!此刻的善意對你後面愉悅的工作的環境大有裨益!

作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流羣:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 大家一起交流學習成長!

如果他無法成爲你的同事,大可不必爲此糾結,茫茫人海,你此刻的善意,未來在某一刻必定能夠兌換!

當然也會有讓你不高興的求職者,那麼就讓他去吧!茫茫人海,江湖再見,興許還能微笑而過!

2:面試題注意事項

我們很多iOS面試官在招聘的時候,很多都是直接在網上找一份iOS面試題就開始面試了!(偷懶)而我覺得這是一個很錯誤的做法。網上很多面試題的確不錯,但是這樣招聘過來的iOS開發人員不一定是非常優秀的,可能是背的面試題,也可能是貴公司的面試題泄漏,導致iOS求職者表現非常好!

1:面試題可以網上獲取,但是我希望面試官認真對待,希望能夠結合你們的公司實際開發,落地到面試題 (這樣也就避免人家吐槽,面試造,開發擰)

2:面試題可以適當變動。根據求職者的簡歷情況,來變動面試題!有的簡歷不錯的,可以適當調難一些。剛好在你的招聘及格線的求職者可以適當降低要求(畢竟要去不一樣,後面薪資以及培養方向也會不一樣)

3:根據貴公司的狀況也考慮:要不要筆試!筆試無好壞,只是一輪刷選,能夠幫你適當刷掉一部分不符合你要求的iOS開發人員!但是貴公司招聘情況很不理想,我覺得可以反思:是不是筆試太難,筆試題目過多...

3:面試流程

我個人比較反感的是:招聘崗位很少,卻叫去很多面試者面試!這個是一種比較嚴重不尊重求職的一種行爲!其實也是對你的一種損失 聯繫過多面試者來面試,這樣的做法你既浪費了求職者的時間,同時也會造成面試成本飆升

希望面試官拿到簡歷,請你快速刷選出你合適中意的簡歷,然後分批安排面試! 對你中意的iOS 高級求職者!我希望能夠多幾次面試流程。一個真正的iOS高級開發對於公司來說非常重要,希望通過幾個流程由不同的崗位 leader 寫出評分,綜合考慮, 切記盲目 同時這樣正規的流程也能讓求職者感受到貴公司的重視,以及入職以後的對於工作的重視!

iOS 高級面試內容

可能衆多面試官還是比較關心面試內容,我這裏從

iOS基礎

Runtime相關

網絡&多線程

數據結構&算法

架構設計

性能優化

等這些方面,給各位面試官準備了一些題,希望能夠幫助到你

iOS基礎

1:講講你對noatomic & nonatomic的理解

2:被 weak 修飾的對象在被釋放的時候會發生什麼?是如何實現的?知道sideTable 麼?裏面的結構可以畫出來麼?

3:block 用什麼修飾?strong 可以?

4:block 爲什麼能夠捕獲外界變量? __block做了什麼事?

5:談談你對事件的傳遞鏈和響應鏈的理解 (這個面試題,如果求職者能夠回答一些實際開發相關的處理,不只是簡單的概念,予以加分)

6:談談 KVC 以及 KVO 的理解?

7:RunLoop 的作用是什麼?它的內部工作機制瞭解麼?

8:蘋果是如何實現 autoreleasepool的?

9:談談你對 FRP (函數響應式) 的理解,延伸一下 RxSwift 或者 RAC!

10:平時開發有沒有玩過 Instrument ?

分析:這裏的內容非常有意思,對於一個iOS高級開發人員,我覺得還有很有必要掌握的!尤其開發3-5年,如果沒有掌握這些內容我覺得是不合格的

在一些合適的地方可以進行延伸!

第二題,第一問是關於 weak 這個面試是非常經典的,只要是個iOS開發都能回答一點。但是後面部分就需要他的學習能力了!

第三題和第四題,側擊一下 MRC 一個資深4-5年開發經驗或多或少都應該要知道一些 MRC 相關的知識!順便可以摸摸求職者的探索能力

第五題和第六題:我覺得如果求職者回答了一些實際開發相關以及文檔能力的應該予以加分

第七題、第八題、第九題以及第十題都是可以拓展更多的內容!

Runtime

1:什麼是 isa,isa 的作用是什麼?

2:一個實例對象的isa 指向什麼?類對象指向什麼?元類isa 指向什麼?

3:objc 中類方法和實例方法有什麼本質區別和聯繫?

4:load 和 initialize 的去唄?

5:_objc_msgForward 函數是做什麼的?直接調用會發生什麼問題?

6:簡述下 Objective-C 中調用方法的過程

7:能否想向編譯後得到的類中增加實例變量?能否向運行時創建的類中添加實例變量?爲什麼?

8:談談你對切面編程的理解

分析:Runtime 這個模塊iOS面試無論初中高都會面試。我覺得這個模塊不光只是僅僅問問關於知識點內容,我更新想要聽到求職者在這裏面的爬坑探索辛歷路程!

網絡&多線程

1:HTTP的缺陷是什麼?

2:談談三次握手,四次揮手!爲什麼是三次握手,四次揮手?

3:socket 連接和 Http 連接的區別

4:HTTPS,安全層除了SSL還有,最新的? 參數握手時首先客戶端要發什麼額外參數

5:HTTPS是什麼?握手過程,SSL原理,非對稱加密瞭解多少

6:什麼時候POP網路,有了 Alamofire 封裝網絡 URLSession爲什麼還要用Moya ?

7:如何實現 dispatch_once

8:能否寫一個讀寫鎖?談談具體的分析

9:什麼時候會出現死鎖?如何避免?

10:有哪幾種鎖?各自的原理?它們之間的區別是什麼?最好可以結合使用場景來說

分析:這個模塊可能是一般開發人員的盲區。因爲一般開發真心沒必要去操心這麼多!面試官你們可以挑去拷問就OK,面試過程中不能對答如流也是正常!當然如果能夠回答上來應該加分!

數據結構

1.數據結構的存儲一般常用的有幾種?各有什麼特點?

2.集合結構 線性結構 樹形結構 圖形結構

3.單向鏈表 雙向鏈表 循環鏈表

4.數組和鏈表區別

5.堆、棧和隊列

6.輸入一棵二叉樹的根結點,求該樹的深度?

7.輸入一課二叉樹的根結點,判斷該樹是不是平衡二叉樹?

算法

1.時間複雜度

2.空間複雜度

3.常用的排序算法

4.字符串反轉

5.鏈表反轉(頭差法)

6.有序數組合並

7.查找第一個只出現一次的字符(Hash查找)

8.查找兩個子視圖的共同父視圖

9.無序數組中的中位數(快排思想)

10.給定一個整數數組和一個目標值,找出數組中和爲目標值的兩個數。

分析:這個模塊是絕大部分開發人員的軟肋!這個模塊是最能測試求職者思維能力的!但是我不建議面試官直接讓求職者手寫 在那樣的面試緊張環境,手寫數據結構或者一些算法代碼,是非常有挑戰的!思維到我覺得差不多!

架構設計

1:設計模式是爲了解決什麼問題的?

2:看過哪些第三方框架的源碼,它們是怎麼設計的?

3:可以說幾個重構的技巧麼?你覺得重構適合什麼時候來做?

4:開發中常用架構設計模式你怎麼選型?

5:你是如何組件化解耦的?

分析:架構設計這一層對於一個iOS中高級開發人員來說。這一塊那是他必須要去思考和感受總結的!如果這位求職者開發4-5年了,一直都在做應用層界面開發,那麼想必他未來的職業晉升是已經落後了的!面試官不妨在這一個模塊單獨設計成一面,就和求職者一起交流討論。畢竟這些思維的設計,也許能夠給面試官帶來一些不一樣的東西!

性能優化

1:tableView 有什麼好的性能優化方案?

2: 界面卡頓和檢測你都是怎麼處理?

3:談談你對離屏渲染的理解?

4:如何降低APP包的大小

5:日常如何檢查內存泄露?

6:APP啓動時間應從哪些方面優化?

分析:現在APP性能優化以及成爲iOS中高級開發人員必須要去關係的東西!這一塊我個人建議結合實際開發去和求職者交流。而不是僅僅停留在知識點問答,因爲沒有實際開發能力的性能優化都只是紙上談兵!

總結

一個優秀的iOS中高級開發 = iOS技術 + 學習能力 + 態度 其中態度和學習能力也是我在面試別人過程中非常看重的!哪怕你技術目前很差,但是你有謙虛誠懇的態度,優秀的學習能力。我也願意帶你!

非常感謝你閱讀到了這裏!前面都是本人的建議,具體你的實施還是需要你根據情況調整!預祝你收穫一個優秀的同事!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章