
金秋九月,互聯(lián)網(wǎng)招聘高潮已經(jīng)來臨!相信作為面試官的你,估計(jì)開始準(zhǔn)備招聘要求或者已經(jīng)在招聘了!這一篇文章主要想和各位面試官交流一下:我們應(yīng)該制定一份什么樣的招聘要求,才是比較合適的?(* ̄︶ ̄)
iOS面試需要注意
1:面試態(tài)度

我們在招聘的時(shí)候,面試官經(jīng)常會犯一個(gè)問題:各種碾壓求職者!
我不知道你招聘這一天發(fā)生了什么事情,心情好不好?但是我希望當(dāng)你去面試的求職者的時(shí)候,保持愉悅,給予面試者應(yīng)該的 -- 善意!
你面試代表你的公司,你的言行舉止都直接影響外界對貴公司的感受
同時(shí)作為一個(gè)管理者的你,成功和愉悅的面試過程也應(yīng)該是你此刻最希望的!
可能現(xiàn)在他還只是求職者,但是興許過段時(shí)間就是你工位旁邊的同事!此刻的善意對你后面愉悅的工作的環(huán)境大有裨益!
如果他無法成為你的同事,大可不必為此糾結(jié),茫茫人海,你此刻的善意,未來在某一刻必定能夠兌換!
當(dāng)然也會有讓你不高興的求職者,那么就讓他去吧!茫茫人海,江湖再見,興許還能微笑而過!
2:面試題注意事項(xiàng)

我們很多iOS面試官在招聘的時(shí)候,很多都是直接在網(wǎng)上找一份iOS面試題就開始面試了?。??偷懶??)而我覺得這是一個(gè)很錯(cuò)誤的做法。網(wǎng)上很多面試題的確不錯(cuò),但是這樣招聘過來的iOS開發(fā)人員不一定是非常優(yōu)秀的,可能是背的面試題,也可能是貴公司的面試題泄漏,導(dǎo)致iOS求職者表現(xiàn)非常好!
1:面試題可以網(wǎng)上獲取,但是我希望面試官認(rèn)真對待,希望能夠結(jié)合你們的公司實(shí)際開發(fā),落地到面試題 (這樣也就避免人家吐槽,面試造??,開發(fā)擰??)
2:面試題可以適當(dāng)變動。根據(jù)求職者的簡歷情況,來變動面試題!有的簡歷不錯(cuò)的,可以適當(dāng)調(diào)難一些。剛好在你的招聘及格線的求職者可以適當(dāng)降低要求(畢竟要去不一樣,后面薪資以及培養(yǎng)方向也會不一樣)
3:根據(jù)貴公司的狀況也考慮:要不要筆試!筆試無好壞,只是一輪刷選,能夠幫你適當(dāng)刷掉一部分不符合你要求的iOS開發(fā)人員!但是貴公司招聘情況很不理想,我覺得可以反思:是不是筆試太難,筆試題目過多...
3:面試流程

我個(gè)人比較反感的是:招聘崗位很少,卻叫去很多面試者面試!這個(gè)是一種比較嚴(yán)重不尊重求職的一種行為!其實(shí)也是對你的一種損失聯(lián)系過多面試者來面試,這樣的做法你既浪費(fèi)了求職者的時(shí)間,同時(shí)也會造成面試成本飆升
希望面試官拿到簡歷,請你快速刷選出你合適中意的簡歷,然后分批安排面試!對你中意的iOS 高級求職者!我希望能夠多幾次面試流程。一個(gè)真正的iOS高級開發(fā)對于公司來說非常重要,希望通過幾個(gè)流程由不同的崗位leader寫出評分,綜合考慮, 切記盲目同時(shí)這樣正規(guī)的流程也能讓求職者感受到貴公司的重視,以及入職以后的對于工作的重視!
iOS 高級面試內(nèi)容
可能眾多面試官還是比較關(guān)心面試內(nèi)容,我這里從
iOS基礎(chǔ)

Runtime相關(guān)
網(wǎng)絡(luò)&多線程
數(shù)據(jù)結(jié)構(gòu)&算法
架構(gòu)設(shè)計(jì)
性能優(yōu)化
等這些方面,給各位面試官準(zhǔn)備了一些題,希望能夠幫助到你
iOS基礎(chǔ)
1:講講你對atomic&nonatomic的理解
2:被weak修飾的對象在被釋放的時(shí)候會發(fā)生什么?是如何實(shí)現(xiàn)的?知道sideTable么?里面的結(jié)構(gòu)可以畫出來么?
3:block用什么修飾?strong可以?
4:block為什么能夠捕獲外界變量?__block做了什么事?
5:談?wù)勀銓κ录膫鬟f鏈和響應(yīng)鏈的理解 (這個(gè)面試題,如果求職者能夠回答一些實(shí)際開發(fā)相關(guān)的處理,不只是簡單的概念,予以加分)
6:談?wù)?KVC 以及 KVO 的理解?
7:RunLoop的作用是什么?它的內(nèi)部工作機(jī)制了解么?
8:蘋果是如何實(shí)現(xiàn)autoreleasepool的?
9:談?wù)勀銓RP (函數(shù)響應(yīng)式)的理解,延伸一下RxSwift或者RAC!
10:平時(shí)開發(fā)有沒有玩過Instrument?
分析:這里的內(nèi)容非常有意思,對于一個(gè)iOS高級開發(fā)人員,我覺得還有很有必要掌握的!尤其開發(fā)3-5年,如果沒有掌握這些內(nèi)容我覺得是不合格的
在一些合適的地方可以進(jìn)行延伸!
第二題,第一問是關(guān)于weak這個(gè)面試是非常經(jīng)典的,只要是個(gè)iOS開發(fā)都能回答一點(diǎn)。但是后面部分就需要他的學(xué)習(xí)能力了!
第三題和第四題,側(cè)擊一下MRC一個(gè)資深4-5年開發(fā)經(jīng)驗(yàn)或多或少都應(yīng)該要知道一些MRC相關(guān)的知識!順便可以摸摸求職者的探索能力
第五題和第六題:我覺得如果求職者回答了一些實(shí)際開發(fā)相關(guān)以及文檔能力的應(yīng)該予以加分
第七題、第八題、第九題以及第十題都是可以拓展更多的內(nèi)容!
Runtime

1:什么是 isa,isa 的作用是什么?
2:一個(gè)實(shí)例對象的isa指向什么?類對象指向什么?元類isa 指向什么?
3:objc中類方法和實(shí)例方法有什么本質(zhì)區(qū)別和聯(lián)系?
4:load和initialize的去唄?
5:_objc_msgForward函數(shù)是做什么的?直接調(diào)用會發(fā)生什么問題?
6:簡述下Objective-C中調(diào)用方法的過程
7:能否想向編譯后得到的類中增加實(shí)例變量?能否向運(yùn)行時(shí)創(chuàng)建的類中添加實(shí)例變量?為什么?
8:談?wù)勀銓η忻婢幊痰睦斫?/p>
分析:Runtime這個(gè)模塊iOS面試無論初中高都會面試。我覺得這個(gè)模塊不光只是僅僅問問關(guān)于知識點(diǎn)內(nèi)容,我更新想要聽到求職者在這里面的爬坑探索辛歷路程!
網(wǎng)絡(luò)&多線程

1:HTTP的缺陷是什么?
2:談?wù)勅挝帐?,四次揮手!為什么是三次握手,四次揮手?
3:socket連接和Http連接的區(qū)別
4:什么時(shí)候POP網(wǎng)路,有了Alamofire封裝網(wǎng)絡(luò)URLSession為什么還要用Moya?
5:如何實(shí)現(xiàn)dispatch_once
6:能否寫一個(gè)讀寫鎖?談?wù)劸唧w的分析
7:什么時(shí)候會出現(xiàn)死鎖?如何避免?
8:有哪幾種鎖?各自的原理?它們之間的區(qū)別是什么?最好可以結(jié)合使用場景來說
分析:這個(gè)模塊可能是一般開發(fā)人員的盲區(qū)。因?yàn)橐话汩_發(fā)真心沒必要去操心這么多!面試官你們可以挑去拷問就OK,面試過程中不能對答如流也是正常!當(dāng)然如果能夠回答上來應(yīng)該加分!
數(shù)據(jù)結(jié)構(gòu)

1.數(shù)據(jù)結(jié)構(gòu)的存儲一般常用的有幾種?各有什么特點(diǎn)?
2.集合結(jié)構(gòu) 線性結(jié)構(gòu) 樹形結(jié)構(gòu) 圖形結(jié)構(gòu)
3.單向鏈表 雙向鏈表 循環(huán)鏈表
4.數(shù)組和鏈表區(qū)別
5.堆、棧和隊(duì)列
6.輸入一棵二叉樹的根結(jié)點(diǎn),求該樹的深度?
7.輸入一課二叉樹的根結(jié)點(diǎn),判斷該樹是不是平衡二叉樹?
算法

1.時(shí)間復(fù)雜度
2.空間復(fù)雜度
3.常用的排序算法
4.字符串反轉(zhuǎn)
5.鏈表反轉(zhuǎn)(頭差法)
6.有序數(shù)組合并
7.查找第一個(gè)只出現(xiàn)一次的字符(Hash查找)
8.查找兩個(gè)子視圖的共同父視圖
9.無序數(shù)組中的中位數(shù)(快排思想)
10.給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。
分析:這個(gè)模塊是絕大部分開發(fā)人員的軟肋!這個(gè)模塊是最能測試求職者思維能力的!但是我不建議面試官直接讓求職者手寫在那樣的面試緊張環(huán)境,手寫數(shù)據(jù)結(jié)構(gòu)或者一些算法代碼,是非常有挑戰(zhàn)的!思維到我覺得差不多!
架構(gòu)設(shè)計(jì)
1:設(shè)計(jì)模式是為了解決什么問題的?
2:看過哪些第三方框架的源碼,它們是怎么設(shè)計(jì)的?
3:可以說幾個(gè)重構(gòu)的技巧么?你覺得重構(gòu)適合什么時(shí)候來做?
4:開發(fā)中常用架構(gòu)設(shè)計(jì)模式你怎么選型?
5:你是如何組件化解耦的?
分析:架構(gòu)設(shè)計(jì)這一層對于一個(gè)iOS中高級開發(fā)人員來說。這一塊那是他必須要去思考和感受總結(jié)的!如果這位求職者開發(fā)4-5年了,一直都在做應(yīng)用層界面開發(fā),那么想必他未來的職業(yè)晉升是已經(jīng)落后了的!面試官不妨在這一個(gè)模塊單獨(dú)設(shè)計(jì)成一面,就和求職者一起交流討論。畢竟這些思維的設(shè)計(jì),也許能夠給面試官帶來一些不一樣的東西!??
性能優(yōu)化

1:tableView有什么好的性能優(yōu)化方案?
2: 界面卡頓和檢測你都是怎么處理?
3:談?wù)勀銓﹄x屏渲染的理解?
4:如何降低APP包的大小
5:日常如何檢查內(nèi)存泄露?
6:APP啟動時(shí)間應(yīng)從哪些方面優(yōu)化?
分析:現(xiàn)在APP性能優(yōu)化以及成為iOS中高級開發(fā)人員必須要去關(guān)系的東西!這一塊我個(gè)人建議結(jié)合實(shí)際開發(fā)去和求職者交流。而不是僅僅停留在知識點(diǎn)問答,因?yàn)闆]有實(shí)際開發(fā)能力的性能優(yōu)化都只是紙上談兵!
總結(jié)
一個(gè)優(yōu)秀的iOS中高級開發(fā) = iOS技術(shù) + 學(xué)習(xí)能力 + 態(tài)度其中態(tài)度和學(xué)習(xí)能力也是我在面試別人過程中非??粗氐?!哪怕你技術(shù)目前很差,但是你有謙虛誠懇的態(tài)度,優(yōu)秀的學(xué)習(xí)能力。我也愿意帶你!
非常感謝你閱讀到了這里!前面都是本人的建議,具體你的實(shí)施還是需要你根據(jù)情況調(diào)整!預(yù)祝你收獲一個(gè)優(yōu)秀的同事!
**PS:可以關(guān)注筆者,后面會更新本篇相關(guān)iOS面試題的答案! **
作者:Cooci
鏈接:https://juejin.cn/post/6844903951171584008