金九銀十,又到一年秋招季,這場規模巨大的校園招聘,承載了近千萬畢業生的夢想,不過,在這特殊的2020年,這場秋招也變得非比尋常,
本周,我們公司的校園招聘也正式啟動了,我擔任了3天的二面面試官,這是我畢業8年后,第一次以另外一種身份參與到秋招中,
雖然沒有應聘者的那種壓力感,卻能深深感受到他們身上的緊張、誠摯和渴望,當年自己參與秋招的畫面也歷歷在目,甚是感慨,
這篇文章,我將結合自己的親身感受,從面試官的角度給出些建議,希望對正在參與秋招的莘莘學子們有所幫助,
毒打的就業形勢
一場疫情,開啟了魔幻的2020年,
很多學生真正體會了一把史無前例的 “云” 課堂、“云” 畢業,
但是,疫情帶來的影響絕不僅僅只是上課形式或者畢業儀式的改變,緊接著的就業影響才是這場特殊 “成人禮” 真正的考驗,
從我面試的候選人來看,能明顯感受到兩點變化:
1、絕大部分人都缺少實習經歷
我問了幾個候選人,都說因為疫情沒法參加實習,放在往年,實習經歷是企業招人時很看重的點,
尤其對于程式員這個職業,非常強調實戰,提前經歷過實習以及生產專案歷練的候選人,他們的編程能力以及對技術的理解更能接近企業的要求,
另外,一段亮眼的實習經歷通常也是拿 special offer 的必備條件,但是幾天面試下來,沒有一個候選人能達到這個水平,
2、競爭激烈,國內外名校畢業生都在廣撒網
參加面試的候選人絕大部分都是一本,而且將近一半是211/985碩士,這一點挺出乎我意料的,畢竟我們公司只能算是二線的互聯網公司,
我問其中一個985碩士背景的候選人,為什么會選擇我們公司?答案很現實:因為整體形勢不太好,只要有點名氣的一二線互聯網公司他都會海投,
另外,還有一個就讀澳洲名校碩士的候選人,因為海外疫情嚴重,也打算回國發展了,
從這兩點來看,今年的就業形勢確實比較嚴峻,據統計,參與今年秋招的大軍預計在1千萬左右,人數達到新高,但是絕大部分互聯網公司并沒有擴招的趨勢,可見競爭之激烈,
在這個最難的畢業季,要想拿到一個好offer著實不易,務必認清現狀,同時做好充分準備,
面試到底看重的是什么?
雖然就業形勢很嚴峻,但是公司招人的標準只會更高,因為供遠大于求,對于應屆生來說,要考察的內容主要包括以下幾個方面:
面試時重點看的還是計算機理論、演算法能力以及代碼功底,框架和專案只是錦上添花的考察項,
下面,我以一道實際的編程題為例,同時結合候選人的答題程序,詳細地聊一聊面試官通常是如何判斷應屆生素質的?希望讓參與秋招的你有所啟發,
一個單鏈表,從高位指向低位存盤一個大數,每個節點表示這個大數的其中一位(取值范圍從0到9),題目要求:對這個大數進行加1,輸入和輸出都是單鏈表,時間復雜度和空間復雜度盡可能低,
對于刷過leetcode的同學來說,這道編程題真心不難,而且解法非常多,我覺得還比較適合應屆生,
但是,就是這樣一道普通的程式題,居然刷掉了將近50%的候選人,并且這批人都是已經通過筆試和第1輪技術面的,
下面按照解題的完整程序,我說下面試中的重點,
1、思考解法
題目給出來后,我會跟候選人確認下是否完全理解題目了,然后給1-2分鐘時間讓對方思考下解法,這個環節有幾位候選人的表現讓我印象深刻,
候選人:這題簡單,遍歷到最后一位加1就行! 面試官:你再想想,還有什么情況沒考慮到? 候選人:哦哦,最后一位如果是9,要處理進位問題,我再想想.....
面試官說完題目后,你不假思索就開始說解法,這種其實是做演算法題時的大忌,很容易讓面試官覺得你是一個沒有思考力的人,
候選人:我能用陣串列示嗎?這樣進位就好處理了 面試官:那你陣列大小怎么定呢? 候選人:嗯... 我可以先遍歷鏈表,得到鏈表長度 面試官:然后呢? 候選人:那就簡單了,鏈表轉成陣列后,先對陣列加1,然后再將陣列轉成鏈表回傳就行,
大約有1/3的候選人會先想到這種最常規的解法,也有人用ArrayList或者Stack的,其實底層都是陣列,
很顯然,這種解決并不是最優的,空間復雜度太高,然后我會引導他們思考更優的解法,
面試官:空間復雜度太高了,有更好的解法沒有? 候選人:我再想想.... 候選人:能給點提示嗎? 面試官:鏈表是從高位指向低位的,但是進位是從低位到高位的,如何解決這個方向不一致的問題呢?你朝這個角度想想 候選人:哦,我知道了,可以將鏈表反轉
部分候選人在聽到提示后,基本能想到 “鏈表反轉” 的解法了,當然也有想不出來的,這種我會直接告訴他解法,然后看他在coding階段是否有突出的表現,
因為這個題目本身難度不大,鏈表反轉基本是應屆生們信手拈來、倒背如流的題目,我這個題只是在此基礎上 “拐了一個彎” 而已,但是確實難倒了一些人,因此,建議應屆生們:刷題有必要,但是一定要懂得靈活變通,不要寄希望于遇到原題,
前面提到這個題的解法很多種,比如:可以不反轉鏈表,而是用遞回法;最聰明的解法是記錄最后一個不是9的節點,然后處理該節點和最后一個節點之間的加1就行,
在我面試的候選人當中,大概有50%的人能在沒有提示的情況下給出解法,還有少部分人提示后能想到解法,
2、開始編碼
編碼環節是我比較關注的,候選人在IDE中直接編碼,并將螢屏共享給我,我會全程觀察他們的coding程序,
先來看一個候選人的代碼,然后說下我的建議,
上面這份50行左右的代碼,是一個1面表現還不錯的候選人花了15分鐘寫完的,而且這是我從所有候選人中挑出來的質量偏中上的代碼(是不是有點驚訝?)
站在面試官的角度評價這份代碼,除了程式的正確性以外,我幾乎找不到其他亮點,下面幾點我覺得是應屆生們同樣需要重視的:
變數命名和方法命名體現了你的編碼習慣,一定要注意規范性,做到見名知意,
將重復性的代碼封裝成子方法,比如上面的鏈表反轉,
復雜邏輯拆解成多步,每個步驟封裝成獨立的方法,方便維護和閱讀,
可以適當加些注釋,對特殊邏輯進行解釋,
寫完代碼,一定要寫個UT或者Main方法,測驗下各種case,而不是等面試官提示你寫測驗用例時才想起來,
Talk is cheap, show me the code. 編碼能力是真正拉開應屆生差距的考察點,因為Coding的程序能充分體現你的基本功和邏輯思維,而這兩點恰恰是面試官判斷候選人是否有潛力的重要依據,
3、除錯程式
除錯環節也是個很好的面試考察點,能判斷候選人定位問題和解決問題的能力,
這3天我面試的候選人,居然沒有一位能一次性寫出正確的代碼,這一點當然跟絕大部分人不寫測驗代碼或者測驗case覆寫不全有關,
另外就是,有一部分候選人的除錯程序真的很讓人著急,我說幾個具體case:
第1種,不會先拆分成大的步驟去定位問題,而是單步除錯,比如你用反轉鏈表的解法,基本是以下3步:
比較好的思路是將這3步的結果列印出來,看下是否符合預期,這樣1個復雜問題相當于拆解成3個子問題了,然后排除法定位即可,
第2種,明顯的錯誤看不出來,比如:遍歷鏈表時,指標沒指向下一個節點引起了死回圈,導致程式結束不了,有候選人一度懷疑自己的IDE出問題了,還重啟了一把IDE,
第3種,改完一個BUG又引入了新的BUG,鏈表節點全是9的情況是很多候選人沒覆寫到的,需要再新加一個節點,有不少人在解決這個問題時又引入了新BUG,但是沒有意識去重跑之前通過的case,
總之,除錯程序也是一個很重要的環節,它是你對錯誤代碼進行補救的機會,首先要調整好心態,其次是注重方法,
關于除錯,我的建議是:加關鍵日志進行列印,先定位到出問題的代碼塊或者子方法,然后再仔細審閱代碼或者單步除錯,另外,改完一部分代碼后,一定要重新跑一下之前通過的測驗case,
給秋招同學的幾點建議
希望上面這道編程題的還原程序能讓你有所啟發,下面我再總結下其他參考建議:
1、良好的面試環境很重要:因為疫情原因,絕大部分秋招都是遠程視頻面試,因此一定要有一個安靜且整潔的面試空間;其次需要確保網路暢通,不會出現卡頓情況;再次,電腦上有編程環境,除非你裸寫代碼的能力很強,可以不依賴IDE.
2、注重溝通技巧和效率:開場的自我介紹一般是用來暖場的,如何快速說出自己的優勢和成績很重要,切忌對照簡歷說太多無用的細節,另外,問答環節聽清楚題目很重要,如果有疑問一定要及時確認,避免答非所問,
3、注重細節,而不是差不多:細節決定成敗,要做到脫穎而出,一定要精益求精,計算機的基礎知識,不建議死記硬背,而是真的吃透了,你的回答代表你的思考程序,而不是記憶程序,最好能說出你自己的理解,
4、展示積極和真誠的一面:遇到不會的問題時,不要輕易說放棄,而是積極去思考或者讓面試官給你適當的提示,其次,沒必要偽裝或者夸大自己的成績,而是盡量展示出你真正理解的東西以及你對這個行業的熱愛,自信和真誠很重要,
5、讓面試官給你建議:秋招是一場持久戰,面試也看緣分,沒面好不代表你就不行,如果能認識到這一點,在最后的提問環節,你可以讓面試官針對你的表現給些建議,這是你越面越順的最好方法,
寫在最后
回想8年前自己參與秋招的程序,做夢都是offer,
一個鐘意的offer背后,不僅僅是一份作業,也承載了一個你想去奮斗的城市,一個你感興趣的行業,一個你想持續精進的崗位,一份你想回報家人的薪酬...
這是從象牙塔走向社會的里程碑,希望這篇文章對你有所幫助,積極準備,同時多做復盤,
面試加油!預祝早日拿到滿意的offer!
另外如果你想更好的提升你的編程能力,好好學習C/C++編程知識的話!那么你很幸運~
C語言C++編程學習交流圈子,QQ群1095293493【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍:

編程學習視頻:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/173547.html
標籤:其他
上一篇:金融市場中的NLP——情感分析
