開章
一天下午軒老板突然釘釘聯(lián)系我,告訴我我們事業(yè)部要招一個iOS,要我準(zhǔn)備一些筆試題和面試題。當(dāng)時我的第一反應(yīng)是:啥?iOS竟然還能有HC,不是iOS沒人要了么?雖然我的心中有各色疑惑,但是我還是非常鎮(zhèn)靜的回復(fù):好的。
不過其實(shí)這也不是我第一次當(dāng)面試官了,遙想實(shí)習(xí)當(dāng)年,由于公司只有我一個iOS,所以當(dāng)公司需要招聘一個iOS的時候,就只能帶上我來面試了,不過由于我當(dāng)時還只是一個實(shí)習(xí)生,對自己的技術(shù)也極度的不自信,在那時候的面試完全屬于打醬油的角色,我的作用大概就只有坐在jason和加成旁邊,裝出一副看起來很靠譜的樣子,然后實(shí)際上心里慌得一批。
不過現(xiàn)在快兩年過去了,雖然心里還是有點(diǎn)忐忑但是我還是比較有信心能做好這件事情。這次我們的招聘目的是事業(yè)部內(nèi)新起一個項(xiàng)目,要求候選人可以從0開始hold住一個項(xiàng)目,所以我在筆試題中所出的也都是日常開發(fā)中用到的基礎(chǔ)題,并沒有偏門的理論知識。
經(jīng)過一輪的面試之后,最終我們一致選擇了一位很有靈性且適合的同學(xué),同時我也想借這個機(jī)會站在面試官的角度上總結(jié)一下面試中的雷區(qū)以及后續(xù)的想法。
筆試
首先第一步是篩選簡歷,粗略算了一下簡歷的通過率是17.6%,再一次印證了大環(huán)境之差,不過相比較于隔壁的Java似乎又好過一些,要知道,Java只有8個HC但是在短短的兩三天里收到了500多封的簡歷,“百里挑一”此言不虛啊。
但是即便是通過了這簡歷的這些“人中龍鳳”,在筆試的過程中還是出現(xiàn)了一些讓人意想不到的狀況。有一位候選人拿到面試題之后只做了前幾道選擇題就跑了,我對天發(fā)誓,筆試都是一些諸如創(chuàng)建分支然后推遠(yuǎn)程之類的基礎(chǔ)題目,難不成這位大佬還是“天之驕子”?頭鐵就是不愿做筆試題?不過還好,總共來了八九個人,只有這一個悄無聲息的跑路。
不過筆試部分實(shí)在是寥寥可言,普通的公司也不會拿出太難的筆試題來為難候選者,只要打好自己平時的基礎(chǔ),面試之前大致復(fù)習(xí)一下諸如計(jì)算機(jī)網(wǎng)絡(luò),Git等基礎(chǔ)知識就好。
總之,只要過來做完筆試題的同學(xué),無論筆試題做的如何,我們也都會進(jìn)行面試,進(jìn)一步了解面試者。
面試
(一)交流
要表現(xiàn)的自信
大多數(shù)的面試都是自我介紹開始,從雙方交流的初始就能感受到對方的緊張到極點(diǎn)的心態(tài)。有的同學(xué)剛張口說話就感覺汗如雨下,雙手不自覺的放在嘴邊(這是一種典型的不自信的表現(xiàn)),說話的時候磕磕巴巴戰(zhàn)戰(zhàn)兢兢。面試完成之后我去衛(wèi)生間看了一下自己的臉龐,除了24歲長得像34歲之外也沒什么兇神惡煞的地方啊,兄弟啊,不至于。反之,面試表現(xiàn)不錯的同學(xué),即使是略帶緊張也是全程目視著面試官,抬頭挺胸,器宇軒昂,啊....還略帶一些小可愛。印象自然是不錯。
要善于抓重點(diǎn)
有些人的自我介紹總是讓我覺得很奇怪,我只是要招個iOS,上來自我介紹噼里啪啦說一堆家里幾畝地,屋里幾頭豬,拜托大哥,我又不是想找個好人家嫁了。從面試官的角度來說,自我介紹其實(shí)是把主動權(quán)先交給面試者,讓面試者可以先將自己的閃光點(diǎn)拋出一二,然后再之后的面試中可以深入的了解面試者。個人介紹的過程中比較不錯的點(diǎn)我能想到的大概有:之前在哪家公司,工作的亮點(diǎn)內(nèi)容(除了日常業(yè)務(wù)CRUD畫畫UI之類的工作),如何自學(xué),喜歡看哪些書,最近在研究哪個方向(比如說FP,跨平臺開發(fā),OpenGL等等)。其實(shí)自我介紹的時候抓不住重點(diǎn)也不是什么致命的問題,要命的是在之后QA的時候還是抓不住重點(diǎn),問他SDWebImage是如何實(shí)現(xiàn)內(nèi)存緩存的,他回答你他在上家公司的時候經(jīng)常使用SDWebImage,這個東西非常好用巴拉巴拉。聽到這樣的回答之后,emmmm.....好吧,打擾了。
(二)實(shí)用技術(shù)扎實(shí)
一般來說,面試過程中也會問一些通用工具問題,比如說,本地的改動還未形成一個commit的顆粒度,這個時候我需要切換到其他的分支,要怎么處理?其他的都是廢話,我只想聽到git stash,然而現(xiàn)實(shí)是殘酷的,大多數(shù)人告訴我的是諸如新建一個分支然后commit之類的奇技淫巧,對于工作了兩三年的開發(fā)來說,git stash都沒有聽說過,那就必然是減分的了。倘若變態(tài)一些的面試官,說不定動不動問你Git Hook?cherry pick?Git的設(shè)計(jì)哲學(xué)是什么?Git的原理?不過我覺得對于這個崗位來說,如果能說出后面的問題就已經(jīng)是瘋狂加分了。當(dāng)然除了Git以外,諸如CI/CD也屬于實(shí)用技術(shù),但是最實(shí)用的肯定還是Git,一個每天都在打交道的工具,一個任何語言都需要的工具,一個學(xué)了之后穩(wěn)賺不賠的技能,所以我們還在等什么?
其實(shí)也不光是對Git命令的熟悉,還有科學(xué)使用Git的姿勢,比如什么時候建feature分支,什么時候合develop,曾有一個面試者告訴我只要開發(fā)完成一個功能就合入develop。emmm........那bugfix在develop上豈不是很容易沖突?如果遭遇功能砍掉或者暫緩那該怎么辦?總之,科學(xué)的使用
Git Flow也是我們開發(fā)人員必備的技能,網(wǎng)上有很多相關(guān)的教程不再贅述。
(三)做一個有靈性的人
好的面試者就會給人一種靈性的感覺,起碼他能知道現(xiàn)在有哪些新的技術(shù),有哪些趨勢,什么Flutter,RN,組件化,熱更新方案之類的。沒有靈性的面試者的表現(xiàn)就是:???哦....好像看到過,不知道?!澳瞬恢袧h,無論魏晉”!
有靈性的面試者就截然相反了,他總能抓住談?wù)搯栴}的重點(diǎn),即便是對于他不知道的問題,他也能根據(jù)已有的知識進(jìn)行合理的推測,在交談的過程中總能似有似無的體現(xiàn)出他對新技術(shù)的熱誠以及高效的自學(xué)能力。
我們最后入職的那位同學(xué)就是我們覺得很有靈性的同學(xué),從筆試開始就展現(xiàn)出了靈性,飛速做完題目交卷之后還順手指出了考卷上的出題錯誤點(diǎn),自我介紹的內(nèi)容全部和崗位相關(guān),且隱隱透露出了對這個行業(yè)的喜愛。
(四)不要對面試題死記硬背
面試到一個女生,面對經(jīng)典的面試題的時候滔滔不絕,什么Runloop,什么事件循環(huán),什么派發(fā)機(jī)制,然而一旦細(xì)細(xì)追問或者切入實(shí)際場景的時候就緘口不言漏洞百出。這樣面試官就會想,你是不是背題的,一旦覺得你是背題的,印象就很差很差了。我不太了解其他的面試官,但對我而言,我覺得面試者說“不知道”這是很正常的一件事,每個人都有自己知識面的短板,但是如果想要依靠背題來蒙騙面試官,除非是外行,否則一旦認(rèn)為你是背題,基本就和offer無緣了。
(五)歸納和總結(jié)能力
如果在面試中能發(fā)現(xiàn)面試者有很強(qiáng)的的歸納和總結(jié)能力,那么一定是瘋狂加分的。比如面試中常常會問到MVC和MVVM的區(qū)別,能說出為ViewController瘦身,將數(shù)據(jù)獲取處理的邏輯放到ViewModel,還有什么雙向綁定之類的都是基本要求了。但是在這些架構(gòu)的演進(jìn)過程中,我們可以看到其實(shí)這些都是職責(zé)劃分、單一職責(zé)和項(xiàng)目規(guī)模演進(jìn)過程中的必然產(chǎn)物,這些都是在軟件工程書籍中靜靜躺了幾十年的知識,只是突然它站在我們面前,我們的神情卻稍稍顯得恍惚了。
(六)細(xì)節(jié)
說起來,面試真的跟找對象差不多,我們肯定都想跟帥哥美女做同事,顏值有加分作用是一件很正常的事情(我的領(lǐng)導(dǎo)會因?yàn)檫@個人簡歷上的照片看著不屬于而斃掉這個人)。不過對于技術(shù)人員來說,核心的技術(shù)能力才是征服面試官的殺手锏,現(xiàn)在的面試幾乎都會問源碼,我也會問一些,但是我不會拋出一個我指定的框架,而是讓面試者自己說閱讀過哪些源碼進(jìn)而提問,這樣一來不會出現(xiàn)問一些可能跟他業(yè)務(wù)無關(guān)的框架源碼,二來面試難度,三來提問最熟悉的框架的實(shí)現(xiàn)細(xì)節(jié)也更能體現(xiàn)面試者對于學(xué)習(xí)的態(tài)度。
比如,八個面試者,幾乎所有的面試者都告訴我閱讀過最熟悉的框架是SDWebImage,然后就開始講框架的組成部分,但是有的面試者,一旦追問它是如何實(shí)現(xiàn)內(nèi)存緩存的時候就啞了火,支支吾吾說不出個NSCache,更不用說常見的LRU算法以及這個算法的主要理念和實(shí)現(xiàn)思路。
細(xì)節(jié),打敗面試官。
(七)主動權(quán)
大家都知道,在感情生活中,一直主動的那一方會比較累。其實(shí)面試也是一樣,面試官巴拉巴拉一直提問也是很累,大多數(shù)情況之下他都是主動的一方,但是他主動不是因?yàn)樗胫鲃樱且驗(yàn)樗敲嬖嚬偎仨氁鲃?。其?shí)面試官絲毫不介意你來主動的展示自己,面試官看起來毫無表情,但實(shí)際上心理再說:
來啊,自己動
主動什么呢?你什么牛逼動什么啊,你要是精通動畫,那就時不時扯點(diǎn)CoreAnimation啊渲染優(yōu)化什么的;你如果懂編譯,那就找機(jī)會跟他扯什么編譯優(yōu)化,什么SIR,什么遞歸下降手撕Parser;你如果熟悉函數(shù)編程,就跟他扯什么Monad transformers、引用透明、純函數(shù)。勇于亮出自己的閃光點(diǎn),這跟相親的時候拋出幾十本房產(chǎn)證沒什么區(qū)別。
(八)更加寬廣的路
大環(huán)境的使然,使得應(yīng)用人才的招聘越來越嚴(yán)苛,很多初中級都發(fā)出了“iOS沒人要”的吶喊,當(dāng)然也有人說“高級人才”永遠(yuǎn)都缺,這兩種聲音不絕于耳,何處是歸途?在我看來,所謂的“高級人才”其實(shí)也不是特指的“iOS”領(lǐng)域的高級,而是這些“高級人才”的CS素養(yǎng)和學(xué)習(xí)能力。隨著未來中美對抗的加劇,必然會有CS領(lǐng)域的競爭,但同時也會有很多機(jī)遇,我們會希望永遠(yuǎn)只有iOS和安卓么?高貴的iOSer就只能在iOS的象牙塔下報(bào)團(tuán)取暖期盼著iOS永遠(yuǎn)武運(yùn)昌盛?當(dāng)時代的浪潮來臨的時候,iOS和安卓到底是熱土還是囹圄?
不得而知。
只有持續(xù)的“刻意練習(xí)”,持續(xù)的理論學(xué)習(xí),持續(xù)的高CS素養(yǎng)和行業(yè)前瞻才能讓人有一絲心安吧。
最后
以上僅代表我作為面試官的思考,僅供參考和娛樂。