市面上有很多關(guān)于面試的文章,但是基本都是從應(yīng)聘者的角度去分析問題的,從招聘官的角度去分享的著實(shí)不多。我在阿里從事Android開發(fā)8八年,從技術(shù)轉(zhuǎn)管理路線,后面五年面試過很多人,有剛剛學(xué)校出來的校招生,大多數(shù)人為社招面試。
本文將從我的個(gè)人招聘經(jīng)歷,分享下關(guān)于Android開發(fā)一面的一些思考和自己的感悟。以下所有感悟皆為筆者個(gè)人感悟,不代表任何。有不妥之處,歡迎指出
其實(shí)不得不說,找工作,真的七分實(shí)力,三分運(yùn)氣。不同的面試官有不同的看重點(diǎn),所以千萬不要為一次的滑鐵盧而丟失信心。
關(guān)于面試題的答案講解,本文將不做非常詳細(xì)的分析。具體的每個(gè)知識(shí)點(diǎn),筆者后面盡量一周更新一篇相關(guān),歡迎關(guān)注、討論和分享。下圖是筆者計(jì)劃后續(xù)寫的總結(jié)性技術(shù)文章。
自我介紹
基本面試這是必然的開場(chǎng),筆者在公司也稍微面試過不少人吧,高峰期基本每晚都要面試一兩個(gè),聽過了各種各樣的開場(chǎng)介紹。這里簡(jiǎn)單說下筆者作為面試官比較喜歡和不喜歡的介紹吧。
我叫 xxx,畢業(yè)于(目前就職于) xxx,來自 xxx,技術(shù)棧 xxxx,喜歡 xxx。。。
類如上述的自我介紹,其實(shí)很多都在簡(jiǎn)歷上寫明了,甚至很多是我并不關(guān)心的。
我只關(guān)心你能力和我職位的匹配度。所以諸如此類的簡(jiǎn)介,筆者更是希望能夠簡(jiǎn)短。筆者作為面試的時(shí)候,更喜歡聽到的是我做過什么牛 x 的項(xiàng)目,這個(gè)項(xiàng)目有多難,如何攻克的,以及這個(gè)項(xiàng)目做完你收獲到了什么,甚至這個(gè)項(xiàng)目做完,該項(xiàng)目對(duì)團(tuán)隊(duì)、部門甚至公司而言,帶來哪方面的提高?;蛘呖梢越榻B你在校獲得了什么獎(jiǎng)項(xiàng),意味著什么、成長(zhǎng)了什么。
如上的介紹,其實(shí)就能夠讓面試官眼前一亮,因?yàn)槟芸吹侥銓?duì)這個(gè)項(xiàng)目的思考、以及這個(gè)項(xiàng)目對(duì)你的歷練。
劃重點(diǎn):我們都知道下一個(gè)面試環(huán)節(jié)是知識(shí)點(diǎn)提問,所以這里的難,可以適當(dāng)?shù)膾伋黾夹g(shù)的難點(diǎn)在哪。引起面試官的興趣,從而去提問 。面試的節(jié)奏我們要學(xué)會(huì)自己掌握,別老是被面試官牽著走
走到這一步,基本有如下兩個(gè)分支:
面試官對(duì)你的這個(gè)項(xiàng)目(獎(jiǎng)項(xiàng))比較感興趣,會(huì)接著問下去,然后問其中技術(shù)的實(shí)現(xiàn)細(xì)節(jié)。(所以這里自己千萬不要吹牛x,然后補(bǔ)不回來)
面試官不是很感興趣(很可能是面試官的技術(shù)盲區(qū),比如我就這樣。哈哈),然后問自己準(zhǔn)備的一些面試題。。。
這里需要說明的,在筆者面試應(yīng)聘 p7 的同學(xué)的時(shí)候,會(huì)更喜歡到你對(duì)這個(gè)項(xiàng)目的思考,諸如會(huì)問一下題目:
現(xiàn)有的技術(shù)方案、行業(yè)對(duì)比
你覺得你做過的項(xiàng)目或發(fā)起過的優(yōu)化里面最有價(jià)值是的哪個(gè)?為什么?對(duì)業(yè)務(wù)的幫助是什么?
你做的東西可以復(fù)用于其他團(tuán)隊(duì)嗎?
橫向與市場(chǎng)已知的 xxx 解決方案,你們的優(yōu)勢(shì)在哪?
上述的這些思考,其實(shí)目前我也達(dá)不到。但是,這不一定要求面試官一定要達(dá)到這個(gè)水準(zhǔn),項(xiàng)目的思考維度也還沒有這么的深入。沒吃過豬肉還沒見過豬跑嘛。
面試題
如上面所說的,如果面試中應(yīng)聘者說到了筆者比較感興趣的技術(shù)方向、或者技術(shù)點(diǎn),那么筆者就會(huì)直接問下去。如果說到了筆者不是很擅長(zhǎng)的技術(shù)區(qū)域,那么我筆者就不會(huì)追問技術(shù)細(xì)節(jié)了。
整體一面的時(shí)間大概也就半小時(shí)左右,加上前后的介紹,基本題目就四五題吧。筆者面試沒有固定的題目,通常根據(jù)應(yīng)聘者的經(jīng)歷而問。這里舉例下在上面的介紹毫無亮點(diǎn)可言的時(shí)候(基本涼了一半),筆者喜歡問的一類題目吧。
題目考核
1.Android 系統(tǒng)源碼部分(這是針對(duì)社招的,校招問的會(huì)基礎(chǔ)一些)
事件攔截和分發(fā)
進(jìn)程間的通信方式
應(yīng)用的創(chuàng)建啟動(dòng)流程
Handler 是怎么導(dǎo)致內(nèi)存泄露的
第三方庫(kù)的源碼,Glide、OkHttp 和 Retrofit 問得比較多,MVC,MVP和 MVVM 開發(fā)模式優(yōu)缺點(diǎn)。
常用設(shè)計(jì)模式理解問得也多,大公司 Binder 驅(qū)動(dòng)和虛擬機(jī)方面問得比較多。
2.數(shù)據(jù)結(jié)構(gòu)和算法,Java 的常用集合和實(shí)現(xiàn)原理
比如 ArrayList ,LinkedHashMap 的實(shí)現(xiàn)原理,緩存淘汰策略,紅黑樹和二叉樹,最短路徑規(guī)劃,海量數(shù)據(jù)篩選,很榮幸的是面試官目前還沒有要我手寫算法!
3.性能優(yōu)化
如何檢測(cè)一段代碼的執(zhí)行時(shí)間?
界面卡頓如何修復(fù)?
滑動(dòng)不流暢怎么處理?
50fps 有什么辦法可以提高到 60fps?
內(nèi)存泄露怎么檢測(cè)?
leakcanay 的原理?
4..線程和線程池,
wait() 和 sleep() 的區(qū)別?
同步鎖
線程池的參數(shù)詳解?AsyncTask 源碼參數(shù)詳解?
.......
最后還啰嗦一下,關(guān)于音視頻方向的崗位,你必須要會(huì) C 和 C++, OpenGL 或 OpenCv 或音視頻編解碼!這里要小心,我說的是熟悉,因?yàn)橄褚粢曨l和 OpenCv 圖像處理這些方面,沒做個(gè)6、7年最好不要寫精通!
阿里對(duì)學(xué)歷要求基本為本科。如果沒有學(xué)歷這是個(gè)硬傷了,但是如果技術(shù)很強(qiáng),而且內(nèi)推的話也會(huì)看情況而論。
結(jié)束環(huán)節(jié)
半小時(shí),基本只能問四五題這樣,說實(shí)話,題目的考核大概能占參考度的 90%,還有 10%可能就是言語(yǔ)和感覺了。那么對(duì)于結(jié)束的時(shí)候,說下不好的感覺:
最后,你有什么要問我的嘛
我想咨詢下,我能不能通過這次面試,我對(duì)工資無所謂,我愿意學(xué)習(xí),特別希望能夠進(jìn)入 xxx 跟大牛一起學(xué)習(xí),歷練。
講真,這類的話聽過很多次了。如果在看的你也命中了這個(gè)。我想說,其實(shí)公司招我們進(jìn)來,是搬磚的,不是給我們學(xué)習(xí)的。學(xué)習(xí)是你自己的需要,不是為了公司學(xué)的。說這類的話,太給自己降價(jià)了!
說說筆者應(yīng)聘的時(shí)候,一般結(jié)束的你有什么要問我的嘛的回答
我比較在意自己的技術(shù)方向和職業(yè)發(fā)展,能夠簡(jiǎn)單介紹下如果我面試上貴公司職位,我以后的工作內(nèi)容和在團(tuán)隊(duì)的價(jià)值么?
想了解下公司對(duì)于前端的重視程度以及在大前端時(shí)代,團(tuán)隊(duì)對(duì)于技術(shù)的思考
大概就是筆者會(huì)問,我這個(gè)職位是干嘛的?在公司有么有價(jià)值?跟我自己的職業(yè)、技術(shù)規(guī)劃是否吻合?
這樣!面試官會(huì)覺得,恩~這小子有思考~~~再者,如果面試官給你介紹的非常非常詳細(xì),那么其實(shí)從側(cè)面就說明,他對(duì)你很滿意了!已經(jīng)到了面試官開始極力展現(xiàn)自己的時(shí)候了~~
就比如:醫(yī)生,我老婆懷的是男孩還是女孩啊? 不能問!??!這是政策
但是:醫(yī)生,我這孩子出生我給他起名字叫王剛蛋你看合適不? _恩。。。不太合適_ 基本可能懷的是女孩了
其實(shí)我想說,面試,不僅僅看運(yùn)氣和實(shí)力,其實(shí)有的時(shí)候也是一場(chǎng)心理的博弈。
你的每一次回答都可能引出下一道面試題。有意識(shí)無意識(shí)的留點(diǎn)回答漏斗也是一種帶節(jié)奏的方式。
如果面試官提出一個(gè)問題,你都抓不住他的考點(diǎn),那基本要涼~~
其次,我想說,上面我說的開放性基礎(chǔ)題的回答,大家千萬不要誤解為回答的多就是好。千萬不要一個(gè)題目回答了半個(gè)小時(shí),沒必要!點(diǎn)到為止,證明自己考慮到、有這個(gè)知識(shí)儲(chǔ)備即可,不要回答的讓面試官都煩了。
然后,對(duì)于如何拿到面試的敲門磚:簡(jiǎn)歷。沒有那么多可說,也不是沒得說。
簡(jiǎn)而言之:面試官篩選簡(jiǎn)歷是非??菰锏囊患虑椤;臼且谎蹘н^,不會(huì)在簡(jiǎn)歷上撇超過 40s。
所以:
簡(jiǎn)歷要整潔,簡(jiǎn)潔、簡(jiǎn)潔。真的別密密麻麻都是字,沒那么多耐心看的。
重點(diǎn)突出,可以加粗或者顏色標(biāo)識(shí)。比如:自己開源類 React 框架
簡(jiǎn)歷是一份介紹更是一個(gè)成績(jī)單,既然是成績(jī)單,成績(jī)一定要吐出:開源項(xiàng)目 15k star 、 推動(dòng)公司技術(shù)建設(shè) 等等
不得不說,名校和大廠的背景。很吸睛。
最后,秋招開始了,祝福所有找工作的同學(xué),都能順順利利拿到 offer!加油~
對(duì),文章最后往往都是廣告環(huán)節(jié)~~嘎嘎嘎,不需要的請(qǐng)自動(dòng)忽視不用往下瀏覽了哈
Android開發(fā)3-5年以上,有想跳槽大廠,想提升到高級(jí)工程師的小伙伴千萬不要錯(cuò)過哦
這些是我整理的Android進(jìn)階面試資料與進(jìn)階視頻教程,部分截圖;
聯(lián)系客服