金秋九月,互聯(lián)網(wǎng)招聘高潮已經(jīng)來臨啊研!相信作為面試官的你者祖,估計開始準(zhǔn)備招聘要求或者已經(jīng)在招聘了!這一篇文章主要想和各位面試官交流一下:我們應(yīng)該制定一份什么樣的招聘要求恍飘,才是比較合適的?(* ̄︶ ̄)
iOS面試需要注意
1:面試態(tài)度
我們在招聘的時候谴垫,面試官經(jīng)常會犯一個問題:各種碾壓求職者章母!
我不知道你招聘這一天發(fā)生了什么事情,心情好不好翩剪?但是我希望當(dāng)你去面試的求職者的時候乳怎,保持愉悅,給予面試者應(yīng)該的 -- 善意前弯!
你面試代表你的公司蚪缀,你的言行舉止都直接影響外界對貴公司的感受
同時作為一個管理者的你,成功和愉悅的面試過程也應(yīng)該是你此刻最希望的恕出!
可能現(xiàn)在他還只是求職者询枚,但是興許過段時間就是你工位旁邊的同事!此刻的善意對你后面愉悅的工作的環(huán)境大有裨益浙巫!
如果他無法成為你的同事金蜀,大可不必為此糾結(jié)刷后,茫茫人海,你此刻的善意渊抄,未來在某一刻必定能夠兌換尝胆!
當(dāng)然也會有讓你不高興的求職者,那么就讓他去吧护桦!茫茫人海含衔,江湖再見,興許還能微笑而過二庵!
2:面試題注意事項
我們很多iOS面試官在招聘的時候抱慌,很多都是直接在網(wǎng)上找一份iOS面試題就開始面試了!(??偷懶??)而我覺得這是一個很錯誤的做法眨猎。網(wǎng)上很多面試題的確不錯抑进,但是這樣招聘過來的iOS開發(fā)人員不一定是非常優(yōu)秀的,可能是背的面試題睡陪,也可能是貴公司的面試題泄漏寺渗,導(dǎo)致iOS求職者表現(xiàn)非常好!
1:面試題可以網(wǎng)上獲取兰迫,但是我希望面試官認(rèn)真對待信殊,希望能夠結(jié)合你們的公司實際開發(fā),落地到面試題 (這樣也就避免人家吐槽汁果,面試造??涡拘,開發(fā)擰??)
2:面試題可以適當(dāng)變動。根據(jù)求職者的簡歷情況据德,來變動面試題鳄乏!有的簡歷不錯的,可以適當(dāng)調(diào)難一些棘利。剛好在你的招聘及格線的求職者可以適當(dāng)降低要求(畢竟要去不一樣橱野,后面薪資以及培養(yǎng)方向也會不一樣)
3:根據(jù)貴公司的狀況也考慮:要不要筆試!筆試無好壞善玫,只是一輪刷選水援,能夠幫你適當(dāng)刷掉一部分不符合你要求的iOS開發(fā)人員!但是貴公司招聘情況很不理想茅郎,我覺得可以反思:是不是筆試太難蜗元,筆試題目過多...
3:面試流程
我個人比較反感的是:招聘崗位很少,卻叫去很多面試者面試系冗!這個是一種比較嚴(yán)重不尊重求職的一種行為奕扣!其實也是對你的一種損失 聯(lián)系過多面試者來面試,這樣的做法你既浪費了求職者的時間毕谴,同時也會造成面試成本飆升
希望面試官拿到簡歷成畦,請你快速刷選出你合適中意的簡歷距芬,然后分批安排面試!
對你中意的iOS 高級求職者循帐!我希望能夠多幾次面試流程框仔。一個真正的iOS高級開發(fā)對于公司來說非常重要,希望通過幾個流程由不同的崗位 leader
寫出評分拄养,綜合考慮, 切記盲目 同時這樣正規(guī)的流程也能讓求職者感受到貴公司的重視离斩,以及入職以后的對于工作的重視!
iOS 高級面試內(nèi)容
可能眾多面試官還是比較關(guān)心面試內(nèi)容瘪匿,我這里從
- iOS基礎(chǔ)
- Runtime相關(guān)
- 網(wǎng)絡(luò)&多線程
- 數(shù)據(jù)結(jié)構(gòu)&算法
- 架構(gòu)設(shè)計
- 性能優(yōu)化
等這些方面跛梗,給各位面試官準(zhǔn)備了一些題,希望能夠幫助到你
iOS基礎(chǔ)
- 1:講講你對
atomic
&nonatomic
的理解 - 2:被
weak
修飾的對象在被釋放的時候會發(fā)生什么棋弥?是如何實現(xiàn)的核偿?知道sideTable
么?里面的結(jié)構(gòu)可以畫出來么顽染? - 3:
block
用什么修飾漾岳?strong
可以? - 4:
block
為什么能夠捕獲外界變量粉寞?__block
做了什么事尼荆? - 5:談?wù)勀銓κ录膫鬟f鏈和響應(yīng)鏈的理解 (這個面試題,如果求職者能夠回答一些實際開發(fā)相關(guān)的處理唧垦,不只是簡單的概念捅儒,予以加分)
- 6:談?wù)?KVC 以及 KVO 的理解?
- 7:
RunLoop
的作用是什么振亮?它的內(nèi)部工作機(jī)制了解么巧还? - 8:蘋果是如何實現(xiàn)
autoreleasepool
的? - 9:談?wù)勀銓?
FRP (函數(shù)響應(yīng)式)
的理解双炕,延伸一下RxSwift
或者RAC
狞悲! - 10:平時開發(fā)有沒有玩過
Instrument
?
分析:這里的內(nèi)容非常有意思妇斤,對于一個iOS高級開發(fā)人員,我覺得還有很有必要掌握的丹拯!尤其開發(fā)3-5年站超,如果沒有掌握這些內(nèi)容我覺得是不合格的
在一些合適的地方可以進(jìn)行延伸!
- 第二題乖酬,第一問是關(guān)于
weak
這個面試是非常經(jīng)典的死相,只要是個iOS開發(fā)都能回答一點。但是后面部分就需要他的學(xué)習(xí)能力了咬像!- 第三題和第四題算撮,側(cè)擊一下
MRC
一個資深4-5年開發(fā)經(jīng)驗或多或少都應(yīng)該要知道一些MRC
相關(guān)的知識生宛!順便可以摸摸求職者的探索能力- 第五題和第六題:我覺得如果求職者回答了一些實際開發(fā)相關(guān)以及文檔能力的應(yīng)該予以加分
- 第七題、第八題肮柜、第九題以及第十題都是可以拓展更多的內(nèi)容陷舅!
Runtime
- 1:什么是 isa,isa 的作用是什么审洞?
- 2:一個實例對象的
isa
指向什么莱睁?類對象指向什么?元類isa 指向什么芒澜? - 3:
objc
中類方法和實例方法有什么本質(zhì)區(qū)別和聯(lián)系仰剿? - 4:
load
和initialize
的去唄? - 5:
_objc_msgForward
函數(shù)是做什么的痴晦?直接調(diào)用會發(fā)生什么問題南吮? - 6:簡述下
Objective-C
中調(diào)用方法的過程 - 7:能否想向編譯后得到的類中增加實例變量?能否向運行時創(chuàng)建的類中添加實例變量誊酌?為什么旨袒?
- 8:談?wù)勀銓η忻婢幊痰睦斫?/li>
分析:
Runtime
這個模塊iOS面試無論初中高都會面試。我覺得這個模塊不光只是僅僅問問關(guān)于知識點內(nèi)容术辐,我更新想要聽到求職者在這里面的爬坑探索辛歷路程砚尽!
網(wǎng)絡(luò)&多線程
- 1:HTTP的缺陷是什么?
- 2:談?wù)勅挝帐只源剩拇螕]手必孤!為什么是三次握手,四次揮手瑞躺?
- 3:
socket
連接和Http
連接的區(qū)別 - 4:什么時候POP網(wǎng)路敷搪,有了
Alamofire
封裝網(wǎng)絡(luò)URLSession
為什么還要用Moya
? - 5:如何實現(xiàn)
dispatch_once
- 6:能否寫一個讀寫鎖幢哨?談?wù)劸唧w的分析
- 7:什么時候會出現(xiàn)死鎖赡勘?如何避免?
- 8:有哪幾種鎖捞镰?各自的原理闸与?它們之間的區(qū)別是什么?最好可以結(jié)合使用場景來說
分析:這個模塊可能是一般開發(fā)人員的盲區(qū)岸售。因為一般開發(fā)真心沒必要去操心這么多践樱!面試官你們可以挑去拷問就OK,面試過程中不能對答如流也是正常凸丸!當(dāng)然如果能夠回答上來應(yīng)該加分拷邢!
數(shù)據(jù)結(jié)構(gòu)
- 1.數(shù)據(jù)結(jié)構(gòu)的存儲一般常用的有幾種?各有什么特點屎慢?
- 2.集合結(jié)構(gòu) 線性結(jié)構(gòu) 樹形結(jié)構(gòu) 圖形結(jié)構(gòu)
- 3.單向鏈表 雙向鏈表 循環(huán)鏈表
- 4.數(shù)組和鏈表區(qū)別
- 5.堆瞭稼、棧和隊列
- 6.輸入一棵二叉樹的根結(jié)點忽洛,求該樹的深度?
- 7.輸入一課二叉樹的根結(jié)點环肘,判斷該樹是不是平衡二叉樹欲虚?
算法
- 1.時間復(fù)雜度
- 2.空間復(fù)雜度
- 3.常用的排序算法
- 4.字符串反轉(zhuǎn)
- 5.鏈表反轉(zhuǎn)(頭差法)
- 6.有序數(shù)組合并
- 7.查找第一個只出現(xiàn)一次的字符(Hash查找)
- 8.查找兩個子視圖的共同父視圖
- 9.無序數(shù)組中的中位數(shù)(快排思想)
- 10.給定一個整數(shù)數(shù)組和一個目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個數(shù)廷臼。
分析:這個模塊是絕大部分開發(fā)人員的軟肋苍在!這個模塊是最能測試求職者思維能力的!但是我不建議面試官直接讓求職者手寫 在那樣的面試緊張環(huán)境荠商,手寫數(shù)據(jù)結(jié)構(gòu)或者一些算法代碼寂恬,是非常有挑戰(zhàn)的!思維到我覺得差不多莱没!
架構(gòu)設(shè)計
- 1:設(shè)計模式是為了解決什么問題的初肉?
- 2:看過哪些第三方框架的源碼,它們是怎么設(shè)計的饰躲?
- 3:可以說幾個重構(gòu)的技巧么牙咏?你覺得重構(gòu)適合什么時候來做?
- 4:開發(fā)中常用架構(gòu)設(shè)計模式你怎么選型?
- 5:你是如何組件化解耦的嘹裂?
分析:架構(gòu)設(shè)計這一層對于一個iOS中高級開發(fā)人員來說妄壶。這一塊那是他必須要去思考和感受總結(jié)的!如果這位求職者開發(fā)4-5年了,一直都在做應(yīng)用層界面開發(fā)寄狼,那么想必他未來的職業(yè)晉升是已經(jīng)落后了的丁寄!面試官不妨在這一個模塊單獨設(shè)計成一面,就和求職者一起交流討論泊愧。畢竟這些思維的設(shè)計伊磺,也許能夠給面試官帶來一些不一樣的東西!??
性能優(yōu)化
- 1:
tableView
有什么好的性能優(yōu)化方案删咱? - 2: 界面卡頓和檢測你都是怎么處理屑埋?
- 3:談?wù)勀銓﹄x屏渲染的理解?
- 4:如何降低APP包的大小
- 5:日常如何檢查內(nèi)存泄露痰滋?
- 6:APP啟動時間應(yīng)從哪些方面優(yōu)化摘能?
分析:現(xiàn)在APP性能優(yōu)化已經(jīng)成為iOS中高級開發(fā)人員必須要去關(guān)系的東西!這一塊我個人建議結(jié)合實際開發(fā)去和求職者交流即寡。而不是僅僅停留在知識點問答徊哑,因為沒有實際開發(fā)能力的性能優(yōu)化都只是紙上談兵!
總結(jié)
一個優(yōu)秀的iOS中高級開發(fā) = iOS技術(shù) + 學(xué)習(xí)能力 + 態(tài)度
其中態(tài)度和學(xué)習(xí)能力也是我在面試別人過程中非炒细唬看重的!哪怕你技術(shù)目前很差著蟹,但是你有謙虛誠懇的態(tài)度墩蔓,優(yōu)秀的學(xué)習(xí)能力梢莽。我也愿意帶你!
非常感謝你閱讀到了這里奸披!前面都是本人的建議昏名,具體你的實施還是需要你根據(jù)情況調(diào)整!預(yù)祝你收獲一個優(yōu)秀的同事阵面!
PS:可以關(guān)注筆者轻局,后面會更新本篇相關(guān)iOS面試題的答案
如果你覺得這一篇博客對你有些許的幫助的話,麻煩點個贊把样刷!Thanks?(?ω?)?!
和諧學(xué)習(xí)仑扑,不急不躁!我是Cooci ~~~ 一個iOS重度熱愛者置鼻!