淺談如何面試iOS工程師
推薦序
私下和很多朋友交流過這個(gè)話題,大部分求職者認(rèn)為,我能做基本的 iOS 開發(fā)工作,就達(dá)到公司的要求了,殊不知公司招聘員工,更希望的是這個(gè)人能夠在關(guān)鍵時(shí)候能夠發(fā)揮一般人做不到的能力。
這篇文章是來自微信讀書的 bang ,我完全同意他的觀點(diǎn)。除了他的這些面試方法外,我還認(rèn)為做比說更重要,所以我更喜歡在面試的時(shí)候,拿出一張白紙,讓求職者寫一段富有邏輯性的代碼,看看他的思維是否嚴(yán)謹(jǐn),對(duì)于一些常見的數(shù)據(jù)結(jié)構(gòu)和算法基礎(chǔ)有了解。
作者介紹:bang,iOS 開發(fā)者,推特中文圈 / JSPatch作者,博客 http://cnbang.net , 目前就職于廣州騰訊。
正文
參加了內(nèi)部面委會(huì)的一個(gè)分享,結(jié)合我自己的方式,說說怎樣面試一個(gè)普通的 iOS 工程師。
一般我傾向的考察分兩個(gè)主要的部分,第一是在簡(jiǎn)歷里提到的項(xiàng)目經(jīng)歷中找挖掘點(diǎn),第二是基礎(chǔ)知識(shí)考察。另外也會(huì)看情況做一些軟實(shí)力的考察和性格特征的判斷。
項(xiàng)目經(jīng)歷
如果順利的話這第一步占的比例會(huì)很大,因?yàn)槊總(gè)程序員都不會(huì)方方面面知識(shí)都熟悉,但至少他寫在簡(jiǎn)歷上的做過的項(xiàng)目是熟悉的,講自己熟悉的東西容易讓他進(jìn)入狀態(tài),展示好的一面。這里主要考察兩方面,一是有沒有在某些點(diǎn)上有過深入研究。二是對(duì)項(xiàng)目整體了解如何。
深入研究
在中大型的公司里比較注重工程師有深入研究的能力,如果能把一個(gè)功能講得很清晰是比較好的加分項(xiàng),這里會(huì)問實(shí)現(xiàn)的思路,通過追問去了解候選人在這塊深入的程度,從思路到方法,從上層 API 調(diào)用到框架流程再到底層實(shí)現(xiàn)。如果候選人在講述時(shí)有一條邏輯主線,例如講述業(yè)界普遍是怎么做的,自己在業(yè)界方案基礎(chǔ)上做了什么改進(jìn),怎樣做到更好,進(jìn)一步改進(jìn)的思路是怎樣,這是最好的。如果還能把解決問題的方法歸納起來運(yùn)用在其他地方,能舉一反三,包裝成通用解決方案,或者做開源貢獻(xiàn),就更好了。
一般會(huì)問候選人哪一個(gè)項(xiàng)目技術(shù)點(diǎn)最能體現(xiàn)自己的技術(shù),然后不停追問技術(shù)細(xì)節(jié),例如做了一個(gè)相冊(cè)項(xiàng)目,覺得列表優(yōu)化是最能體現(xiàn)技術(shù)點(diǎn)的,會(huì)問這里優(yōu)化的思路是什么,怎樣評(píng)估,遇到過什么困難,怎么解決的,如果用到圖片緩存開源項(xiàng)目,說說它具體做了什么事,緩存策略是什么,從下載到顯示的整個(gè)流程是怎樣的,還有沒有更好的方案,追問到一定程度后也會(huì)發(fā)散去問跟這個(gè)話題相關(guān)聯(lián)的問題,例如如果有部分用戶反饋圖片顯示不了,你會(huì)怎樣排查問題,排查修復(fù)后怎樣監(jiān)控,就會(huì)過度到一些網(wǎng)絡(luò)和運(yùn)營監(jiān)控方面的`內(nèi)容,也會(huì)順便問到一些基礎(chǔ)知識(shí)。
整體了解
問完自己職責(zé)范圍內(nèi)的功能技術(shù)點(diǎn)后,還會(huì)看看對(duì)項(xiàng)目里其他的實(shí)現(xiàn)有沒有了解,特別是項(xiàng)目的大致架構(gòu)和核心功能,最好能畫出項(xiàng)目大致結(jié)構(gòu),看情況問問網(wǎng)絡(luò)層和數(shù)據(jù)層是怎樣實(shí)現(xiàn)的,為什么這樣實(shí)現(xiàn),項(xiàng)目最核心功能是怎樣實(shí)現(xiàn)的,例如做讀書的至少要知道項(xiàng)目里的排版引擎的大致實(shí)現(xiàn)方式,做 QQ 的要知道消息收發(fā)的機(jī)制,如果不知道,也可以說說如果自己實(shí)現(xiàn)會(huì)怎么做。這里主要看看有沒有技術(shù)好奇心,會(huì)不會(huì)積極主動(dòng)了解項(xiàng)目里已有的非職責(zé)范圍內(nèi)的技術(shù)點(diǎn),主動(dòng)和好學(xué)這兩點(diǎn)是很重要的。
基礎(chǔ)知識(shí)
如果項(xiàng)目經(jīng)歷里能問出大部分東西,這部分比例就會(huì)比較少了,這是比較好的情況,否則就按套路去多考察一些基礎(chǔ)知識(shí),包括 iOS 開發(fā)的基礎(chǔ)和計(jì)算機(jī)基礎(chǔ),像內(nèi)存 / 網(wǎng)絡(luò) / 存儲(chǔ) / 線程等,例如 ARC 是怎樣做到自動(dòng)管理內(nèi)存的,跟 java/js 的垃圾回收的區(qū)別,網(wǎng)絡(luò) http 協(xié)議是怎樣的,用過什么數(shù)據(jù)庫框架,db 索引是什么,多線程開發(fā)要注意什么,跟 runloop 的關(guān)系是什么等等,這類問題在網(wǎng)上都有很多,就不多說了。數(shù)據(jù)結(jié)構(gòu)和算法在筆試時(shí)會(huì)涉及,面試會(huì)比較少,如果問算法的話只會(huì)問問思路,一般我覺得如果項(xiàng)目經(jīng)歷方面不太好,才會(huì)考慮考考算法作為輔助判斷。
軟實(shí)力
一些通用能力像邏輯思維能力,溝通能力,自我驅(qū)動(dòng)能力等都可以在上面那些問題的交流中表現(xiàn)出來,另外像團(tuán)隊(duì)協(xié)作能力、抗壓能力和性格特征這些也會(huì)看情況考察一下,例如問問如果產(chǎn)品讓你做個(gè)需求,你覺得不靠譜,會(huì)怎樣做,設(shè)計(jì)讓你做個(gè)很難實(shí)現(xiàn)的效果,你會(huì)怎樣評(píng)估?或者問個(gè)低級(jí)問題,故意說個(gè)錯(cuò)誤的答案,看看他的反應(yīng)是怎樣,是表現(xiàn)出嘲笑和攻擊性,還是懷疑自己,還是細(xì)心求證?箟耗芰Φ目疾煊行┤吮容^喜歡,我是覺得面試還是輕松一點(diǎn)好。軟實(shí)力方面的考察在一面會(huì)比較少,或者不會(huì)涉及,實(shí)際上這方面我也沒太多經(jīng)驗(yàn),也在摸索中。
其他
作為程序員,如果有 GitHub 開源項(xiàng)目是最好的,直接可以看到代碼風(fēng)格,代碼質(zhì)量,處理 issue 和 PR 的方式,如果有技術(shù)博客也是很好的,可以提前看到平時(shí)的一些技術(shù)積累,省了很多事。但如果 GitHub 內(nèi)容是培訓(xùn)班的那種仿寫 APP,博客內(nèi)容是摘抄文章什么的就是負(fù)分了。
以上是正常套路,若候選人有特殊經(jīng)歷或技能,例如牛 X 大學(xué)畢業(yè),ACM 冠軍,通讀 linux 源碼,php 源碼貢獻(xiàn)者之類,會(huì)另當(dāng)別論,針對(duì)性進(jìn)行面試,這不是唯一的標(biāo)準(zhǔn)。另外針對(duì)不同的工作年限也有不同的問法和要求,工作年限越高要求越高。
最后
其實(shí)面試就是想低成本找到合適在團(tuán)隊(duì)里一起工作的人,因?yàn)槿绻ㄟ^一起工作一段時(shí)間去判斷是否合適成本太高。這種低成本的代價(jià)就是會(huì)誤判,有些工程師是理論型,有些是實(shí)踐型,面試的方式會(huì)對(duì)實(shí)踐型的人不利,盡管他們?nèi)绻羞M(jìn)來會(huì)是適合的人,而且人會(huì)在不同環(huán)境下會(huì)有不同的表現(xiàn),只根據(jù)過去的經(jīng)歷去判斷有時(shí)是不準(zhǔn)確的。只能盡量采取一些措施去減少誤判的概率,例如提高面試官的判斷能力,或多幾輪面試。一般如果不是急招,策略都會(huì)是寧殺錯(cuò)不放過,所以其實(shí)就算面試被否了,也不一定代表能力不行。
另外每個(gè)面試官可能都有自己摸索出來的一種判斷方式,并隨著面試經(jīng)驗(yàn)的豐富不斷改進(jìn),達(dá)到更準(zhǔn)的判斷概率,這只是我個(gè)人在目前有限的經(jīng)驗(yàn)里的一點(diǎn)小總結(jié),僅供參考。
全文完,感謝作者授權(quán),本文的所有打賞歸 bang 所有。
贊助商:掘金是一個(gè)高質(zhì)量的技術(shù)社區(qū),讓你不錯(cuò)過 iOS 開發(fā)的每一條資訊。長(zhǎng)按圖片二維碼識(shí)別,技術(shù)干貨盡在掌握中。
【淺談如何面試iOS工程師】相關(guān)文章:
ios工程師該如何面試08-03
ios程序員該如何面試08-03
淺談如何巧過英語面試08-08
iOS基礎(chǔ)問答面試題08-28
淺談大學(xué)生面試如何著裝12-05
Ios開發(fā)工程師個(gè)人簡(jiǎn)歷范文09-28
淺談面試禮儀08-21
面試技巧淺談08-07
淺談面試禮儀知識(shí)12-19