- 相關(guān)推薦
關(guān)于如何面試IOS工程師
關(guān)于IOS工程師,很多人都可能認(rèn)為自己能做基本的IOS開發(fā)工作就行了,殊不知這遠(yuǎn)遠(yuǎn)不夠。那么IOS工程師該如何面試?下面小編教教你。
正文
參加了內(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)營(yíng)監(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ù)庫(kù)框架,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é),僅供參考。
【如何面試IOS工程師】相關(guān)文章:
ios基礎(chǔ)面試題08-07
ios面試常見問題08-04
如何準(zhǔn)備機(jī)器學(xué)習(xí)工程師的面試 ?08-09
面試技巧:面試如何敲門?11-21
面試如何答問的面試技巧08-07
如何讓面試事半功倍09-25
如何克服面試緊張09-26
如何應(yīng)對(duì)競(jìng)聘面試08-06
如何預(yù)知面試結(jié)果?09-25
普通文憑如何面試?08-05