7年老Android一次操蛋的面试经历,挥泪整理面经
看到還有很多程序員連面試流程都沒(méi)有徹底弄清楚,今天,我們以阿里為例,來(lái)聊聊互聯(lián)網(wǎng)大廠的面試流程和過(guò)程!
本篇主要還是聊聊社招的面試過(guò)程!阿里以及其他的互聯(lián)網(wǎng)大廠的技術(shù)類社招面試,通常情況是 4 個(gè)輪次。第一、第二面是技術(shù)面,第三面是主管面試,第四面是 HR 面試。對(duì)于目標(biāo)級(jí)別在 P6+ 的候選人,我們會(huì)增加至少一輪的跨團(tuán)隊(duì) Review 面試,因?yàn)樯婕罢衅肝瘑T會(huì)(Hire Committee)的定級(jí)流程,所以要復(fù)雜一些。接下來(lái)的內(nèi)容,主要針對(duì)通常情況下 P5~P6 的面試來(lái)介紹,大神請(qǐng)直接忽略。
01?技術(shù)面
1. 個(gè)人介紹和基礎(chǔ)知識(shí)考查
這部分算是必備技能。我個(gè)人倒是傾向于弱化基礎(chǔ)知識(shí)的考查,畢竟每個(gè)候選人的背景不同,應(yīng)該更看重聰明程度、學(xué)習(xí)能力、溝通理解力等,基礎(chǔ)知識(shí)只能證明他不是一個(gè)優(yōu)秀的工程師,卻無(wú)法證明他是一個(gè)優(yōu)秀的工程師。
2. 項(xiàng)目經(jīng)歷考查
從這個(gè)階段開始就格外重要了,因?yàn)槊嬖嚬僦安⒉灰欢ㄍ暾麨g覽候選人的簡(jiǎn)歷,所以聆聽候選人對(duì)項(xiàng)目的介紹是了解候選人的最主要途徑。在這個(gè)過(guò)程中,面試官試圖刨根問(wèn)底,這跟各公司內(nèi)部的技術(shù)評(píng)審很相似。幾個(gè)關(guān)鍵點(diǎn),希望你格外注意:
3. 編程技術(shù)考查
在我的團(tuán)隊(duì)中,我要求每一輪技術(shù)面,都至少要有 1 道編程題目。一方面,我們非常看重侯選人的代碼風(fēng)格、優(yōu)雅程度,還有對(duì)邊界條件的考慮,這些都是好的程序員必須具備的素質(zhì)。對(duì)于代碼混亂、邊界考慮不清的人,我們會(huì)認(rèn)為他沒(méi)有足夠的編程素養(yǎng)和追求,在邏輯思維層面,也有所欠缺。**這樣的候選人進(jìn)入團(tuán)隊(duì),短期可能造成 Bug 多、項(xiàng)目質(zhì)量差等影響,長(zhǎng)遠(yuǎn)來(lái)看,不利于合作開發(fā)、項(xiàng)目傳承等。**另一方面,**我們非常看重?cái)?shù)據(jù)結(jié)構(gòu)、算法等的高效實(shí)現(xiàn)。能夠快速設(shè)計(jì)出高效的程序,這體現(xiàn)了候選人日常的深厚積累,還有對(duì)編程的極致追求。**前不久就有一個(gè)典型案例,我們的運(yùn)維同學(xué)發(fā)現(xiàn)一個(gè)后端模塊上線后處理性能只有幾十 QPS,很不理解為什么性能這么差。直到我們重新 review 代碼后,才發(fā)現(xiàn)是個(gè)“經(jīng)典”問(wèn)題,即 for 循環(huán)里調(diào)用 sort(雖然是隔了幾次函數(shù)調(diào)用),簡(jiǎn)單優(yōu)化后,性能就可以提升 1~2 個(gè)數(shù)量級(jí)。優(yōu)秀的工程師,一定會(huì)盡可能規(guī)避這類問(wèn)題,幾行代碼的優(yōu)化,就能提升用戶體驗(yàn)、降低服務(wù)器成本、方便代碼維護(hù)、減少兄弟們的工作量。
4. 邏輯題目或數(shù)學(xué)題目
這類題目的核心不在于它有多復(fù)雜,需要多少經(jīng)驗(yàn)背景,而在于,只要邏輯清晰,認(rèn)真思考,大多能得出結(jié)果,雖然不一定是最優(yōu)解。我舉幾個(gè)例子:
這類題目其實(shí)很簡(jiǎn)單,可以用編程的思路解決,比如遞歸(當(dāng)然還有很多其他方式),也可以用概率論、組合數(shù)學(xué)的方式解決,甚至一個(gè)一個(gè)“數(shù)”也是能得到答案的。在思考問(wèn)題的過(guò)程中,可以看出候選人的思維習(xí)慣,也可以看出候選人的邏輯能力。另外,這類題目其實(shí)有很多變化,如果候選人很輕松完成了回答,面試官就可以適當(dāng)加大難度,比如 3*4 的網(wǎng)格有一個(gè)點(diǎn)不能經(jīng)過(guò),那么會(huì)是什么結(jié)果?這類題目看似簡(jiǎn)單,實(shí)則分辨率很高,可以充分挖掘候選人的潛力。除去上面的介紹外,候選人還應(yīng)該對(duì)行業(yè)情況有所理解,包括競(jìng)品、開源項(xiàng)目等,這可以體現(xiàn)一個(gè)人的眼界和行業(yè)洞察能力,也可以看出一個(gè)人的學(xué)習(xí)態(tài)度,他是否在持續(xù)更新自己的知識(shí)儲(chǔ)備。
02??主管面
相對(duì)于技術(shù)面而言,主管面試不會(huì)過(guò)多考查基礎(chǔ)知識(shí)、數(shù)據(jù)結(jié)構(gòu)及算法,但因?yàn)榧夹g(shù)主管大多具備很強(qiáng)的技術(shù)背景,所以仍然會(huì)針對(duì)技術(shù)面過(guò)程中的一些遺漏點(diǎn)(可能是面試官?zèng)]有考查到,也可能是候選人的回答不夠完善),著重補(bǔ)充考查。除此之外,主管面的核心就是判斷候選人除了技術(shù)能力外的其他維度,是否與團(tuán)隊(duì)相匹配。第一類維度,軟素質(zhì)能力。軟素質(zhì)的維度很豐富,每一次面試過(guò)程不會(huì)面面俱到地考查,但一些重要的維度一定會(huì)被照顧到。
1. 邏輯思維。
與技術(shù)面的邏輯題目類似,團(tuán)隊(duì)可以接受不足夠聰明的人,但無(wú)法接受邏輯不清晰的人。在這個(gè)環(huán)節(jié),可以提出一些進(jìn)階的題目,比如給候選人一個(gè)很復(fù)雜的問(wèn)題,希望候選人可以嘗試分析、分解,讓看起來(lái)一團(tuán)亂麻的問(wèn)題變得清晰可實(shí)現(xiàn)。或者,讓候選人闡述一個(gè)經(jīng)歷過(guò)最有挑戰(zhàn)的問(wèn)題,是如何定義問(wèn)題并分析解決的。當(dāng)然這類問(wèn)題,一般初入職場(chǎng)的同學(xué)都很難回答完美;不過(guò)對(duì)于工作 2 年 + 的同學(xué),我覺(jué)得問(wèn)題的分析、分解、設(shè)定目標(biāo)、規(guī)劃、執(zhí)行都是必備素質(zhì)。這個(gè)能力很難在工作中迅速培養(yǎng),它更多是通過(guò)候選人過(guò)去一二十年的學(xué)習(xí)和工作經(jīng)歷,一點(diǎn)一滴積累的,所以對(duì)于社招而言,希望候選人已經(jīng)具備很好的邏輯思維能力。
2. 溝通能力。
不能有效且高效地溝通,對(duì)于團(tuán)隊(duì)項(xiàng)目是場(chǎng)災(zāi)難。在日常工作中,經(jīng)常會(huì)看到幾個(gè)同學(xué)針對(duì)一個(gè)問(wèn)題爭(zhēng)論得不可開膠,但其實(shí)他們往往沒(méi)有理解對(duì)方所講的主旨是什么,甚至對(duì)于一些名詞和概念的理解都不一致,就更不要說(shuō)同理心了,這種無(wú)效溝通是導(dǎo)致會(huì)議冗長(zhǎng)的最主要因素。這類的面試考查,一般會(huì)依附于項(xiàng)目介紹或者設(shè)計(jì)題目等。
如果候選人已經(jīng)具備不錯(cuò)的溝通能力,我們一般還會(huì)考查進(jìn)階能力:說(shuō)服和影響。這是成為技術(shù) / 項(xiàng)目負(fù)責(zé)人的必備能力。面試官可能會(huì)和候選人進(jìn)行一個(gè)簡(jiǎn)短的虛擬溝通或辯論環(huán)節(jié),希望候選人可以說(shuō)服面試官接受某個(gè)觀點(diǎn)或技術(shù)方案。當(dāng)然,在這個(gè)過(guò)程中,面試官扮演的反派可能會(huì)用一些偏激的詞匯和行為,這一方面是看候選人的溝通說(shuō)服和影響他人的能力,另一方面也是壓力測(cè)試,看看候選人在受到刁難時(shí)的反應(yīng),是否足夠職業(yè)。創(chuàng)新能力。
在過(guò)去的項(xiàng)目中,請(qǐng)講述一次發(fā)現(xiàn)傳統(tǒng)方法的不足,嘗試新的解決問(wèn)題的方法,并獲得成功的經(jīng)歷。這類題目非常開放,但遺憾的是,在我面試過(guò)的候選人中,近半數(shù)都是在思索一會(huì)兒后回答“沒(méi)有什么”。
當(dāng)然,一方面可能候選人很謙虛,另一方面,則很可能是候選人確實(shí)沒(méi)有嘗試做過(guò)什么創(chuàng)新。
互聯(lián)網(wǎng)行業(yè),創(chuàng)新是一切之源,如果真的“沒(méi)有什么”,如何給 Offer 呢?
第二類維度,文化價(jià)值觀。
工程師文化是務(wù)實(shí)、自驅(qū)、Follow Through(跟進(jìn)到底,有始有終)。一個(gè)浮夸,不思進(jìn)取,凡事不愿承擔(dān)責(zé)任,不能將項(xiàng)目跟進(jìn)到底的候選人,很難成為我們的伙伴。這類維度,其實(shí)沒(méi)有太多經(jīng)驗(yàn)可談,每個(gè)公司都有它的文化基因,而候選人是否與之匹配,是基因和環(huán)境使然。我只說(shuō)下從我個(gè)人角度,最為看重的內(nèi)容,否則我會(huì)一票否決。樂(lè)觀積極。不得不承認(rèn),每個(gè)人都有積極的一面和消極的一面,職業(yè)化的思維在于將積極的一面展現(xiàn)出來(lái),盡量弱化消除消極一面的影響。
在日常工作中,每個(gè)人都不希望遇到一群愁眉苦臉、滿腹牢騷的同事。善于合作。一位同學(xué)加入到我們的團(tuán)隊(duì),他不僅需要具備優(yōu)秀的個(gè)人能力,同時(shí)也需要能和其他人協(xié)同合作,起到 1+1>2 的效果。我們會(huì)考查候選人在過(guò)去的經(jīng)歷中,對(duì)待合作的態(tài)度,有沒(méi)有接觸過(guò)比較復(fù)雜、跨越多個(gè)角色或團(tuán)隊(duì)的合作,遇到過(guò)的協(xié)作困難是什么,遇到這類困難是如何解決的。有些候選人經(jīng)常會(huì)無(wú)意識(shí)地表達(dá)出,在項(xiàng)目研發(fā)過(guò)程中,多人寫代碼,還要同步需求、設(shè)計(jì)、協(xié)商接口、聯(lián)合調(diào)試,而且有 Bug 修復(fù)推動(dòng)也很麻煩,如果我一個(gè)人開發(fā)早就解決了。這種思維雖然無(wú)可厚非,但希望每個(gè)人可以看得更遠(yuǎn),大型項(xiàng)目是一個(gè)人完成不了的,在多人合作的背景下,如何提升合作的效率和質(zhì)量才是重點(diǎn),而不是過(guò)多地看到負(fù)面。追求極致。這一條很難。在我發(fā)過(guò)的這么多 Offer 中,具備這個(gè)素質(zhì)的候選人也是鳳毛麟角,但只要具備這個(gè)素質(zhì),我?guī)缀跻欢〞?huì)給 Offer。當(dāng)然,追求極致不等于鉆牛角尖。
文末
我總結(jié)了一些Android核心知識(shí)點(diǎn),以及一些最新的大廠面試題、知識(shí)腦圖和視頻資料解析。
需要的小伙伴私信【學(xué)習(xí)】我免費(fèi)分享給你,以后的路也希望我們能一起走下去。(謝謝大家一直以來(lái)的支持,需要的自己領(lǐng)取)
直接點(diǎn)擊鏈接也可以領(lǐng)取哦!
Android學(xué)習(xí)PDF+架構(gòu)視頻+面試文檔+源碼筆記
部分資料一覽:
- 330頁(yè)P(yáng)DF Android學(xué)習(xí)核心筆記(內(nèi)含8大板塊)
- Android學(xué)習(xí)的系統(tǒng)對(duì)應(yīng)視頻
- Android進(jìn)階的系統(tǒng)對(duì)應(yīng)學(xué)習(xí)資料
- Android BAT大廠面試題(有解析)
習(xí)資料**
[外鏈圖片轉(zhuǎn)存中…(img-C14ukY4U-1624138360079)]
- Android BAT大廠面試題(有解析)
總結(jié)
以上是生活随笔為你收集整理的7年老Android一次操蛋的面试经历,挥泪整理面经的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 7天拿到阿里安卓岗位offer,附高频面
- 下一篇: 怎么把一行或多行文字,垂直居中在一个自适