2020年份秋招建議出爐!想要在最后關(guān)頭找到一份好工作?不要錯(cuò)過
金九銀十,又到一年秋招季。這場(chǎng)規(guī)模巨大的校園招聘,承載了近千萬畢業(yè)生的夢(mèng)想。不過,在這特殊的2020年,這場(chǎng)秋招也變得非比尋常。
本周,我們公司的校園招聘也正式啟動(dòng)了,我擔(dān)任了3天的二面面試官。這是我畢業(yè)8年后,第一次以另外一種身份參與到秋招中。
雖然沒有應(yīng)聘者的那種壓力感,卻能深深感受到他們身上的緊張、誠(chéng)摯和渴望,當(dāng)年自己參與秋招的畫面也歷歷在目,甚是感慨。
這篇文章,我將結(jié)合自己的親身感受,從面試官的角度給出些建議,希望對(duì)正在參與秋招的莘莘學(xué)子們有所幫助。

毒打的就業(yè)形勢(shì)
一場(chǎng)疫情,開啟了魔幻的2020年。
很多學(xué)生真正體會(huì)了一把史無前例的 “云” 課堂、“云” 畢業(yè)。
但是,疫情帶來的影響絕不僅僅只是上課形式或者畢業(yè)儀式的改變,緊接著的就業(yè)影響才是這場(chǎng)特殊 “成人禮” 真正的考驗(yàn)。
從我面試的候選人來看,能明顯感受到兩點(diǎn)變化:
1、絕大部分人都缺少實(shí)習(xí)經(jīng)歷
我問了幾個(gè)候選人,都說因?yàn)橐咔闆]法參加實(shí)習(xí)。放在往年,實(shí)習(xí)經(jīng)歷是企業(yè)招人時(shí)很看重的點(diǎn)。
尤其對(duì)于程序員這個(gè)職業(yè),非常強(qiáng)調(diào)實(shí)戰(zhàn)。提前經(jīng)歷過實(shí)習(xí)以及生產(chǎn)項(xiàng)目歷練的候選人,他們的編程能力以及對(duì)技術(shù)的理解更能接近企業(yè)的要求。
另外,一段亮眼的實(shí)習(xí)經(jīng)歷通常也是拿 special offer 的必備條件,但是幾天面試下來,沒有一個(gè)候選人能達(dá)到這個(gè)水平。
2、競(jìng)爭(zhēng)激烈,國(guó)內(nèi)外名校畢業(yè)生都在廣撒網(wǎng)
參加面試的候選人絕大部分都是一本,而且將近一半是211/985碩士,這一點(diǎn)挺出乎我意料的,畢竟我們公司只能算是二線的互聯(lián)網(wǎng)公司。
我問其中一個(gè)985碩士背景的候選人,為什么會(huì)選擇我們公司?答案很現(xiàn)實(shí):因?yàn)檎w形勢(shì)不太好,只要有點(diǎn)名氣的一二線互聯(lián)網(wǎng)公司他都會(huì)海投。
另外,還有一個(gè)就讀澳洲名校碩士的候選人,因?yàn)楹M庖咔閲?yán)重,也打算回國(guó)發(fā)展了。
從這兩點(diǎn)來看,今年的就業(yè)形勢(shì)確實(shí)比較嚴(yán)峻。據(jù)統(tǒng)計(jì),參與今年秋招的大軍預(yù)計(jì)在1千萬左右,人數(shù)達(dá)到新高,但是絕大部分互聯(lián)網(wǎng)公司并沒有擴(kuò)招的趨勢(shì),可見競(jìng)爭(zhēng)之激烈。
在這個(gè)最難的畢業(yè)季,要想拿到一個(gè)好offer著實(shí)不易,務(wù)必認(rèn)清現(xiàn)狀,同時(shí)做好充分準(zhǔn)備。
面試到底看重的是什么?
雖然就業(yè)形勢(shì)很嚴(yán)峻,但是公司招人的標(biāo)準(zhǔn)只會(huì)更高,因?yàn)楣┻h(yuǎn)大于求。對(duì)于應(yīng)屆生來說,要考察的內(nèi)容主要包括以下幾個(gè)方面:

面試時(shí)重點(diǎn)看的還是計(jì)算機(jī)理論、算法能力以及代碼功底,框架和項(xiàng)目只是錦上添花的考察項(xiàng)。
下面,我以一道實(shí)際的編程題為例,同時(shí)結(jié)合候選人的答題過程,詳細(xì)地聊一聊面試官通常是如何判斷應(yīng)屆生素質(zhì)的?希望讓參與秋招的你有所啟發(fā)。
一個(gè)單鏈表,從高位指向低位存儲(chǔ)一個(gè)大數(shù),每個(gè)節(jié)點(diǎn)表示這個(gè)大數(shù)的其中一位(取值范圍從0到9)。題目要求:對(duì)這個(gè)大數(shù)進(jìn)行加1,輸入和輸出都是單鏈表,時(shí)間復(fù)雜度和空間復(fù)雜度盡可能低。

對(duì)于刷過leetcode的同學(xué)來說,這道編程題真心不難,而且解法非常多,我覺得還比較適合應(yīng)屆生。
但是,就是這樣一道普通的程序題,居然刷掉了將近50%的候選人,并且這批人都是已經(jīng)通過筆試和第1輪技術(shù)面的。
下面按照解題的完整過程,我說下面試中的重點(diǎn)。

1、思考解法
題目給出來后,我會(huì)跟候選人確認(rèn)下是否完全理解題目了,然后給1-2分鐘時(shí)間讓對(duì)方思考下解法。這個(gè)環(huán)節(jié)有幾位候選人的表現(xiàn)讓我印象深刻。
候選人:這題簡(jiǎn)單,遍歷到最后一位加1就行! 面試官:你再想想,還有什么情況沒考慮到? 候選人:哦哦,最后一位如果是9,要處理進(jìn)位問題,我再想想.....
面試官說完題目后,你不假思索就開始說解法,這種其實(shí)是做算法題時(shí)的大忌,很容易讓面試官覺得你是一個(gè)沒有思考力的人。
候選人:我能用數(shù)組表示嗎?這樣進(jìn)位就好處理了 面試官:那你數(shù)組大小怎么定呢? 候選人:嗯... 我可以先遍歷鏈表,得到鏈表長(zhǎng)度 面試官:然后呢? 候選人:那就簡(jiǎn)單了,鏈表轉(zhuǎn)成數(shù)組后,先對(duì)數(shù)組加1,然后再將數(shù)組轉(zhuǎn)成鏈表返回就行。
大約有1/3的候選人會(huì)先想到這種最常規(guī)的解法,也有人用ArrayList或者Stack的,其實(shí)底層都是數(shù)組。
很顯然,這種解決并不是最優(yōu)的,空間復(fù)雜度太高,然后我會(huì)引導(dǎo)他們思考更優(yōu)的解法。
面試官:空間復(fù)雜度太高了,有更好的解法沒有? 候選人:我再想想.... 候選人:能給點(diǎn)提示嗎? 面試官:鏈表是從高位指向低位的,但是進(jìn)位是從低位到高位的,如何解決這個(gè)方向不一致的問題呢?你朝這個(gè)角度想想 候選人:哦,我知道了,可以將鏈表反轉(zhuǎn)
部分候選人在聽到提示后,基本能想到 “鏈表反轉(zhuǎn)” 的解法了,當(dāng)然也有想不出來的,這種我會(huì)直接告訴他解法,然后看他在coding階段是否有突出的表現(xiàn)。
因?yàn)檫@個(gè)題目本身難度不大,鏈表反轉(zhuǎn)基本是應(yīng)屆生們信手拈來、倒背如流的題目。我這個(gè)題只是在此基礎(chǔ)上 “拐了一個(gè)彎” 而已,但是確實(shí)難倒了一些人。因此,建議應(yīng)屆生們:刷題有必要,但是一定要懂得靈活變通,不要寄希望于遇到原題。
前面提到這個(gè)題的解法很多種,比如:可以不反轉(zhuǎn)鏈表,而是用遞歸法;最聰明的解法是記錄最后一個(gè)不是9的節(jié)點(diǎn),然后處理該節(jié)點(diǎn)和最后一個(gè)節(jié)點(diǎn)之間的加1就行。
在我面試的候選人當(dāng)中,大概有50%的人能在沒有提示的情況下給出解法,還有少部分人提示后能想到解法。
2、開始編碼
編碼環(huán)節(jié)是我比較關(guān)注的,候選人在IDE中直接編碼,并將屏幕共享給我,我會(huì)全程觀察他們的coding過程。
先來看一個(gè)候選人的代碼,然后說下我的建議。

上面這份50行左右的代碼,是一個(gè)1面表現(xiàn)還不錯(cuò)的候選人花了15分鐘寫完的,而且這是我從所有候選人中挑出來的質(zhì)量偏中上的代碼(是不是有點(diǎn)驚訝?)
站在面試官的角度評(píng)價(jià)這份代碼,除了程序的正確性以外,我?guī)缀跽也坏狡渌咙c(diǎn)。下面幾點(diǎn)我覺得是應(yīng)屆生們同樣需要重視的:
變量命名和方法命名體現(xiàn)了你的編碼習(xí)慣,一定要注意規(guī)范性,做到見名知意。
將重復(fù)性的代碼封裝成子方法,比如上面的鏈表反轉(zhuǎn)。
復(fù)雜邏輯拆解成多步,每個(gè)步驟封裝成獨(dú)立的方法,方便維護(hù)和閱讀。
可以適當(dāng)加些注釋,對(duì)特殊邏輯進(jìn)行解釋。
寫完代碼,一定要寫個(gè)UT或者M(jìn)ain方法,測(cè)試下各種case,而不是等面試官提示你寫測(cè)試用例時(shí)才想起來。
Talk is cheap, show me the code. 編碼能力是真正拉開應(yīng)屆生差距的考察點(diǎn)。因?yàn)镃oding的過程能充分體現(xiàn)你的基本功和邏輯思維,而這兩點(diǎn)恰恰是面試官判斷候選人是否有潛力的重要依據(jù)。
3、調(diào)試程序
調(diào)試環(huán)節(jié)也是個(gè)很好的面試考察點(diǎn),能判斷候選人定位問題和解決問題的能力。
這3天我面試的候選人,居然沒有一位能一次性寫出正確的代碼,這一點(diǎn)當(dāng)然跟絕大部分人不寫測(cè)試代碼或者測(cè)試case覆蓋不全有關(guān)。
另外就是,有一部分候選人的調(diào)試過程真的很讓人著急,我說幾個(gè)具體case:
第1種,不會(huì)先拆分成大的步驟去定位問題,而是單步調(diào)試。比如你用反轉(zhuǎn)鏈表的解法,基本是以下3步:

比較好的思路是將這3步的結(jié)果打印出來,看下是否符合預(yù)期,這樣1個(gè)復(fù)雜問題相當(dāng)于拆解成3個(gè)子問題了,然后排除法定位即可。
第2種,明顯的錯(cuò)誤看不出來。比如:遍歷鏈表時(shí),指針沒指向下一個(gè)節(jié)點(diǎn)引起了死循環(huán),導(dǎo)致程序結(jié)束不了,有候選人一度懷疑自己的IDE出問題了,還重啟了一把IDE。
第3種,改完一個(gè)BUG又引入了新的BUG。鏈表節(jié)點(diǎn)全是9的情況是很多候選人沒覆蓋到的,需要再新加一個(gè)節(jié)點(diǎn),有不少人在解決這個(gè)問題時(shí)又引入了新BUG,但是沒有意識(shí)去重跑之前通過的case。
總之,調(diào)試過程也是一個(gè)很重要的環(huán)節(jié),它是你對(duì)錯(cuò)誤代碼進(jìn)行補(bǔ)救的機(jī)會(huì),首先要調(diào)整好心態(tài),其次是注重方法。
關(guān)于調(diào)試,我的建議是:加關(guān)鍵日志進(jìn)行打印,先定位到出問題的代碼塊或者子方法,然后再仔細(xì)審閱代碼或者單步調(diào)試。另外,改完一部分代碼后,一定要重新跑一下之前通過的測(cè)試case。

給秋招同學(xué)的幾點(diǎn)建議
希望上面這道編程題的還原過程能讓你有所啟發(fā),下面我再總結(jié)下其他參考建議:
1、良好的面試環(huán)境很重要:因?yàn)橐咔樵?,絕大部分秋招都是遠(yuǎn)程視頻面試,因此一定要有一個(gè)安靜且整潔的面試空間;其次需要確保網(wǎng)絡(luò)暢通,不會(huì)出現(xiàn)卡頓情況;再次,電腦上有編程環(huán)境,除非你裸寫代碼的能力很強(qiáng),可以不依賴IDE.
2、注重溝通技巧和效率:開場(chǎng)的自我介紹一般是用來暖場(chǎng)的,如何快速說出自己的優(yōu)勢(shì)和成績(jī)很重要,切忌對(duì)照簡(jiǎn)歷說太多無用的細(xì)節(jié)。另外,問答環(huán)節(jié)聽清楚題目很重要,如果有疑問一定要及時(shí)確認(rèn),避免答非所問。
3、注重細(xì)節(jié),而不是差不多:細(xì)節(jié)決定成敗,要做到脫穎而出,一定要精益求精。計(jì)算機(jī)的基礎(chǔ)知識(shí),不建議死記硬背,而是真的吃透了,你的回答代表你的思考過程,而不是記憶過程,最好能說出你自己的理解。
4、展示積極和真誠(chéng)的一面:遇到不會(huì)的問題時(shí),不要輕易說放棄,而是積極去思考或者讓面試官給你適當(dāng)?shù)奶崾?。其次,沒必要偽裝或者夸大自己的成績(jī),而是盡量展示出你真正理解的東西以及你對(duì)這個(gè)行業(yè)的熱愛,自信和真誠(chéng)很重要。
5、讓面試官給你建議:秋招是一場(chǎng)持久戰(zhàn),面試也看緣分,沒面好不代表你就不行。如果能認(rèn)識(shí)到這一點(diǎn),在最后的提問環(huán)節(jié),你可以讓面試官針對(duì)你的表現(xiàn)給些建議,這是你越面越順的最好方法。

寫在最后
回想8年前自己參與秋招的過程,做夢(mèng)都是offer。
一個(gè)鐘意的offer背后,不僅僅是一份工作,也承載了一個(gè)你想去奮斗的城市,一個(gè)你感興趣的行業(yè),一個(gè)你想持續(xù)精進(jìn)的崗位,一份你想回報(bào)家人的薪酬...
這是從象牙塔走向社會(huì)的里程碑,希望這篇文章對(duì)你有所幫助。積極準(zhǔn)備,同時(shí)多做復(fù)盤。
面試加油!預(yù)祝早日拿到滿意的offer!
另外如果你想更好的提升你的編程能力,好好學(xué)習(xí)C/C++編程知識(shí)的話!那么你很幸運(yùn)~
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來成長(zhǎng)!
另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~
編程學(xué)習(xí)書籍:

編程學(xué)習(xí)視頻:
