原文:http://blog.csdn.net/qq_24369113/article/details/70432185 作者:木子-勇士心 個(gè)人情況 本人是武漢大學(xué)計(jì)算機(jī)學(xué)院2014級(jí)的本科生一枚,在寫這篇總結(jié)的時(shí)候我是大三。本來我們班是規(guī)定了有固定的實(shí)習(xí)的,但是自己還是想向國內(nèi)頂尖的互聯(lián)網(wǎng)公司沖擊一下,所以抱著試一試的想法參加了幾個(gè)公司(騰訊、阿里、華為)的暑期實(shí)習(xí)生招聘。在騰訊應(yīng)聘的職位是后臺(tái)開發(fā)實(shí)習(xí)生,阿里和華為應(yīng)聘的是Java開發(fā)實(shí)習(xí)生。 本文目的 這里想記錄一下幾個(gè)公司的暑期實(shí)習(xí)生招聘的流程以及一些常問的問題,一來是自己總結(jié)一下經(jīng)驗(yàn)為以后可能的面試做準(zhǔn)備,二來是想給以后的學(xué)弟學(xué)妹們一個(gè)參考,在準(zhǔn)備面試的和筆試的時(shí)候能夠做到有的放矢。 結(jié)果 在2017.4.16是面完了騰訊的HR面,目前還在等結(jié)果(不知道是不是進(jìn)了備胎池,一周沒有消息了OTZ),微信顯示的是“你已完成所有的面試環(huán)節(jié)、請(qǐng)保持手機(jī)暢通”。 在4.14面完了華為的面試,今天剛剛接到華為的短信通知說進(jìn)入了簽約池,叫我填一個(gè)什么調(diào)查問卷。 阿里的內(nèi)推比較早(大概三月份開始的),后面接過一個(gè)面試電話然后顯示已回絕,但是貌似4.26有自主投遞的筆試,過了筆試之后還可以有面試機(jī)會(huì)。 ———華麗的更新線———— 今天(4.24)收到騰訊發(fā)過來的郵件啦,開始準(zhǔn)備暑期的實(shí)習(xí)咯 首先簡單介紹一下華為和阿里的情況 ?。ㄈ绻幌肟打v訊的就直接跳過這一節(jié)吧) 華為: 華為在武漢的是實(shí)習(xí)生招聘面試是在華為武漢研究院(一個(gè)三環(huán)外老遠(yuǎn)老遠(yuǎn)的地方),前期需要自己在華為校招的官網(wǎng)上填寫自己的簡歷,然后一段時(shí)間后(大概兩周)會(huì)收到筆試的通知。 華為的筆試是三道編程題 ,總分600分,分值貌似分別是100、200、300,時(shí)間是總共兩個(gè)小時(shí)。個(gè)人覺得題目難度不算是很大,但是想全部做對(duì)好像也不是那么容易。筆試完成大概一周內(nèi)就收到了叫我去面試的通知。(不過有的同學(xué)沒有做筆試也收到了面試通知,估計(jì)是部門內(nèi)推就可以免除筆試)個(gè)人感覺華為的筆試貌似沒有刷人,因?yàn)槲业耐瑢W(xué)只要填了簡歷都獲得了面試資格。 筆試過后就是面試環(huán)節(jié)了,地點(diǎn)前面說了是在很遠(yuǎn)的一個(gè)地方,從我們學(xué)校搭公交過去大概要兩個(gè)多小時(shí)。華為的面試總共只有兩輪,第一輪是技術(shù)面,第二輪好像就是HR面試了,然后時(shí)間是在同一天里(可能考慮到那地方真的太偏遠(yuǎn))我大概花了30多分鐘就完成了兩輪面試。 技術(shù)面試的時(shí)候問的主要是項(xiàng)目中的一些問題,主要問題有: -你印象最深的一個(gè)項(xiàng)目是哪一個(gè),介紹給我聽一下 -hashmap的結(jié)構(gòu)能不能畫出來給我看看 -平時(shí)有沒有使用過Linux,一般用Linux干啥,常用命令有哪些 -平時(shí)用過哪些數(shù)據(jù)庫 -有沒有使用過云服務(wù)器(我說我用的騰訊云....) -有沒有什么想要問他的 反正個(gè)人感覺技術(shù)面還是比較簡單的,如果自己做過項(xiàng)目而且真的比較熟悉自己的項(xiàng)目的話問題應(yīng)該不大。而且感覺技術(shù)面好像沒怎么問技術(shù)細(xì)節(jié)問題(相比于騰訊和阿里)。 接下來的是HR面試,剛面完技術(shù)面還沒坐下來就通知我去HR面試。HR面試的個(gè)人感覺主要是做些背景調(diào)查。主要問題如下: -你最新的一個(gè)項(xiàng)目介紹給我聽一下 -你的成績?cè)趺礃?,在年?jí)排名,你們這個(gè)班是特色班嗎 -你是哪里人,高中在哪個(gè)學(xué)校,高中成績?cè)趺礃樱ú恢罏樯兑獑柛咧?...) -家里有沒有人在華為工作 -你認(rèn)為你個(gè)人的最大優(yōu)點(diǎn)是什么 其他的問題記得就不是很清楚了,反正總體感覺華為的面試還是比較簡單的,涉及到技術(shù)層面的問題不多,更多的是叫我談項(xiàng)目相關(guān)的東西。而騰訊和阿里的技術(shù)面就會(huì)涉及到很多技術(shù)問題了,下面會(huì)一一介紹。 阿里: 阿里的內(nèi)推和面試時(shí)最早的,大概3月份就開始了。然后阿里的內(nèi)推也是最多的,然而我還是跪了(無奈.jpg) 阿里也需要在阿里的校招網(wǎng)站上進(jìn)行注冊(cè)和簡歷填寫以及崗位的申報(bào)。然后過了一段時(shí)間后會(huì)收到一個(gè)郵件叫我完成綜合素質(zhì)評(píng)測(cè)和編程測(cè)試。這個(gè)綜合素質(zhì)評(píng)測(cè)考的東西真的是啥都有:閱讀理解、邏輯推理、管理協(xié)調(diào)什么亂七八糟的都有,總的來說就是一個(gè)IQ和EQ以及領(lǐng)導(dǎo)溝通能力的綜合測(cè)試,時(shí)間大概是一個(gè)小時(shí)。然后還有一個(gè)編程測(cè)試,30分鐘一道題(我花了25分鐘才大概看懂題意,最后就隨便寫了幾行代碼就提交了......)。不過官方說編程測(cè)試僅供參考,不影響結(jié)果。 然后大概過了一周左右的時(shí)間突然有個(gè)杭州的電話打過來,我還以為是我在淘寶買了啥東西,接了電話才知道是面試(猝不及防)。由于沒有怎么準(zhǔn)備,所以回答的很不理想,上午接的電話下午官網(wǎng)狀態(tài)就顯示為已回絕了。主要問的問題有: -介紹一下你項(xiàng)目里用的這個(gè)Dubbo框架。(這個(gè)是我實(shí)習(xí)的時(shí)候的一個(gè)項(xiàng)目,事前沒咋準(zhǔn)備,也不是很了解,所以只能說我不知道。。。) -解釋一下Hashmap如何實(shí)現(xiàn)的 -你之前做過的項(xiàng)目里有什么缺陷,如何解決 -如果給你足夠的資源和技術(shù)如何優(yōu)化你之前的項(xiàng)目 -快速排序如何實(shí)現(xiàn) 由于阿里這個(gè)面試過去的時(shí)間太長了,已經(jīng)記不太清了,但是通過這次面試我總結(jié)出了一些經(jīng)驗(yàn),這也為我之后的面試起到了很大的幫助。 簡歷上的東西自己一定要非常清楚,自己做過的項(xiàng)目在面試之前一定要過一遍,你的負(fù)責(zé)的部分、有哪些創(chuàng)新點(diǎn)、還有那些問題。這些都是需要復(fù)習(xí)一遍的。 一些基礎(chǔ)的算法和數(shù)據(jù)結(jié)構(gòu)要知道,比如快速排序的思想、鏈表結(jié)構(gòu)、hash原理、等等,這些很有可能會(huì)被面試官問到。 騰訊 終于說到騰訊了,騰訊的招聘給我的感覺就是豪。貌似騰訊包下了一整個(gè)酒店(光谷凱越酒店)來面試,而且好像每年都是那個(gè)酒店,據(jù)說那個(gè)酒店還是五星級(jí)的。 還是先從簡歷投遞說起吧。騰訊的實(shí)習(xí)生招聘是從我們年級(jí)的群里得知的。時(shí)間大概是三月中旬,當(dāng)時(shí)有一個(gè)學(xué)長內(nèi)推,我給學(xué)長的郵箱發(fā)了簡歷,然后也在騰訊的官網(wǎng)填寫了自己個(gè)人的簡歷和各種情況,但是一直等到四月4號(hào)都沒有人打電話給我面試。(這通常是簡歷在內(nèi)推階段被刷了,我們班有兩個(gè)大神在3月份就接到電話面試然后順利拿到了offer) 內(nèi)推階段被刷的我只有老老實(shí)實(shí)的做筆試題,騰訊的筆試題好像是兩個(gè)小時(shí)。在正式的筆試題之前還有一個(gè)模擬考,供大家熟悉考試題型和環(huán)境的。騰訊的考試題分為選擇題、簡答和編程題兩個(gè)大類。選擇題的范圍比較廣,數(shù)量好像是30個(gè),而且好像有時(shí)間限制要在一小時(shí)內(nèi)做完。內(nèi)容包括有c 、Java、數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)、Linux、計(jì)算題還有一些記得不是很清了。反正感覺是有很多不會(huì)做的,但是個(gè)人感覺做這種筆試題有時(shí)候不能真的去硬算,有時(shí)候可以使用推理和排出的方法來做,否則感覺基本不可能在有限的時(shí)間內(nèi)算完。然后是四個(gè)大題,兩個(gè)是簡答題,兩個(gè)編程題。一個(gè)是有關(guān)磁盤空間計(jì)算的問題,我好像沒有做出來,瞎寫的。然后第二題是一個(gè)簡單的算法題,我直接寫出代碼放在上面了。第三題是一個(gè)排序平衡二叉樹的問題,但是當(dāng)時(shí)好像把題看錯(cuò)了,然后沒有寫出來。最后一個(gè)題好像是一個(gè)格式化輸出字符串的問題。比較有把握的就是2、4兩個(gè)題,1、3題就隨便寫了幾句話然后就交卷了。 不過雖然感覺筆試做的不是很好,但是在一周后還是拿到了面試的通知。(好像筆試不會(huì)怎么刷人,我認(rèn)識(shí)的大部分的同學(xué)好像做了筆試就都拿到了面試機(jī)會(huì))。面試分為三輪,一二輪是技術(shù)面,最后一輪是HR面試。騰訊的面試是在華科旁邊的一個(gè)酒店里,比較人性化的是每個(gè)地方都會(huì)有工作人員指引,還有工作人員幫忙按好電梯的樓層,給人感覺很貼心。到了酒店之后是在大廳用微信掃描二維碼簽到,然后是在休息區(qū)等待。到自己的時(shí)候會(huì)有短信和微信消息提醒。上去面試的時(shí)候才發(fā)現(xiàn)原來是每一個(gè)面試官有一個(gè)房間,就是他們住的那房間,然后不同的人在不同的房間里進(jìn)行面試,給人感覺就是騰訊好有錢。 一面的面試官是一個(gè)男士,個(gè)人感覺像個(gè)領(lǐng)導(dǎo),因?yàn)榇┑耐φ剑贿^一般應(yīng)該是技術(shù)人員。首先是叫我做了一下自我介紹,然后就問我一個(gè)C 的多態(tài)如何實(shí)現(xiàn)。因?yàn)槠綍r(shí)用的都是Java,對(duì)C 不是很了解,所以就隨便說了什么多繼承什么的,然后告訴面試官我對(duì)C 不是很了解,平時(shí)主要用的是Java。然后面試官就開始問我Linux有關(guān)的問題:Linux進(jìn)程和線程的區(qū)別、Linux進(jìn)程間通信的方式、Linux的文件系統(tǒng)、Linux進(jìn)程的創(chuàng)建以及創(chuàng)建后父進(jìn)程和子進(jìn)程之間分別會(huì)發(fā)生什么。問完了Linux他又問了我Java相關(guān)的問題:讓我介紹了一下Java的垃圾回收機(jī)制;在紙上寫一個(gè)Server通信的示例程序,我寫的時(shí)候還專門寫了一個(gè)處理線程類,然后還加了一個(gè)終止程序運(yùn)行的條件標(biāo)志(我感覺面試官可能會(huì)比較看重你考慮問題是不是全面);然后還問了我Java中hashmap的實(shí)現(xiàn)(好像這個(gè)問題出現(xiàn)的頻率很高)。接著問的是網(wǎng)絡(luò)方面的問題:TCP的三次握手和四次揮手畫出圖示并講解,說出Http的包頭里的四個(gè)屬性,說出http有哪些方法,post和get有什么區(qū)別(反正這個(gè)問題我回答跪了,看到面試官畫了個(gè)×)。上面那些問題問完差不多就過了20多分鐘了,然后面試官叫我10分鐘內(nèi)在紙上寫一個(gè)算階乘的程序。我第一反應(yīng)就是肯定普通的數(shù)據(jù)類型會(huì)溢出,然后我就問面試官輸入的數(shù)據(jù)有沒有范圍限制,他說沒有。我當(dāng)時(shí)就想肯定不能直接用int 或long,肯定是string來輸出結(jié)果,然后愣了大概一分鐘如何去計(jì)算。后來我突然想到以前自己寫的一個(gè)大數(shù)相加的程序,然后我就想把所有的階乘轉(zhuǎn)換成加法的循環(huán)具體可參考以下代碼。(已經(jīng)過測(cè)試應(yīng)該是沒有問題的) #include#include#include#includeusing namespace std;string addString(string sa,string sb)//實(shí)現(xiàn)大數(shù)相加{ vector a; vector b; int small=min(sa.length(),sb.length()); //獲取最短長度 //將字符串里的每一位都保存到vector數(shù)組中 for(int i=0;i result;//保存結(jié)果的集合每一個(gè)數(shù)表示一位 int jinwei=0;//進(jìn)位初始為0 int i = 0; for( i=0;i=10) { result.push_back(tem%10); jinwei=1; } else{ result.push_back(tem); jinwei=0; } } if(i> in; cout< 然后十分鐘過去了,我大概把a(bǔ)ddString那個(gè)函數(shù)寫了一大半,然后把紙給面試官看,然后還大致解釋了一下我的思路。后來發(fā)現(xiàn)這個(gè)題其實(shí)有更加高效的做法,使用vector來存儲(chǔ)數(shù)據(jù),然后模擬手工計(jì)算的方式來做大數(shù)相乘。具體的代碼可以借鑒大數(shù)相乘算法實(shí)例。然后到此一面就結(jié)束了,個(gè)人感覺回答出了大概70%的問題吧,但是不怎么抱太大的希望。 讓我沒想到的是兩天后我居然接到了二面的通知。二面是一個(gè)比較胖的面試官,網(wǎng)上說一般都是部門的leader,不過我覺得他反而更加的隨和像一線程序員哈哈哈。上來他就給我一張紙叫我寫一個(gè)雙向鏈表刪除一個(gè)節(jié)點(diǎn)的代碼。講道理在紙上寫代碼體驗(yàn)真的差,而且我總覺得這么簡單的題可能會(huì)有什么坑…..想了一分鐘貌似也想不出什么坑然后就吧唧吧唧的寫完了給面試官看,面試官叫我解釋一下我的代碼,然后問我還有沒有什么補(bǔ)充,通常這就是說代碼里有bug或者沒有考慮到的情況。果然我只注意了刪除的節(jié)點(diǎn)是頭結(jié)點(diǎn)的情況而沒有考慮到刪除的節(jié)點(diǎn)是尾結(jié)點(diǎn)的情況。加了一個(gè)判斷條件后又向面試官解釋了一下。然后他就給我看一道C語言的變量的空間分配的問題是有關(guān)union里有好幾個(gè)int、double、char類型的數(shù)據(jù),然后問sizeof(union)是多少。講真這個(gè)問題我大一學(xué)過然后早就忘了,然后我又重復(fù)了一遍我對(duì)c和c 不是很熟悉,平常寫的都是Java。面試官居然說騰訊的后臺(tái)都是c 寫的,沒有Java崗。我想這下應(yīng)該是GG了。不夠好在他說沒有關(guān)系,然后又叫我畫了一下TCP三次握手的圖示以及可能出現(xiàn)的Timewait的位置和設(shè)置這個(gè)的原因,當(dāng)時(shí)我還卡了一下,好在仔細(xì)分析了一下正確的回答上來了。接著他問了一個(gè)最簡單的動(dòng)態(tài)規(guī)劃問題:“每次只能上一級(jí)或者兩級(jí)臺(tái)階,上到n級(jí)有多少種方法?”解答看這里。 然后就叫我介紹一下自己印象最深刻的一個(gè)項(xiàng)目。我如實(shí)介紹了一下,然后他問了一些和項(xiàng)目相關(guān)的問題,最后他還給我的項(xiàng)目中沒解決的問題提供了一些意見。然后最后他說我可能需要未來一段時(shí)間學(xué)習(xí)一下C ,然后還要考慮一下自己未來的技術(shù)方向的問題。這下我又感覺好像還有點(diǎn)戲。然后到此二面就結(jié)束了。總體感覺二面的面試官非常的和藹可親,叫我的名字的時(shí)候還沒有帶姓,就給人一種很親切的感覺。 很快當(dāng)天晚上我就接到了短信通知我第二面去HR面,真的是感覺很幸運(yùn)。HR面試就基本沒有涉及到什么技術(shù)問題了。主要問了我一些其他方面的情況:你覺得你有哪些優(yōu)點(diǎn)、哪些缺點(diǎn)、你從你的項(xiàng)目中學(xué)到了什么、有沒有什么例子能夠證明你剛剛說的那些個(gè)人特性。巴拉巴拉說了一大堆,然后還和我介紹了騰訊的文化和價(jià)值觀,然后還給我提出了一些建議和面試方面應(yīng)該注意的問題。總體的感覺也是比較輕松愉快的,最后他還起身送我離開了面試的房間,讓我比較感動(dòng)。哦他還問了我有沒有拿到其他公司的實(shí)習(xí)offer,我不知道這個(gè)問題怎樣回答算比較好,但是我還是如實(shí)的回答了我參加了華為的面試。 到此騰訊的面試就完成了,總體給我的感覺是比較人性化和比較輕松的。面試官感覺也都是比較和藹親切的,一些小的細(xì)節(jié)真的能夠感動(dòng)人。 最后放上自己的一些感悟和總結(jié)吧: 面試的時(shí)候盡量保持放松的心態(tài),稍微顯示出一點(diǎn)自信最好。最好不要自黑啊、貶低自己啊或者遇到一個(gè)問題想都不想說我不會(huì)。遇到不會(huì)的問題也要盡力去用自己已有的知識(shí)去思考解決,實(shí)在不會(huì)的可以如實(shí)和面試官說我沒有學(xué)過、我記得不是很清楚。同時(shí)也不要過于放縱或者跟面試官開玩笑什么的,我室友就是跟面試官開玩笑然后就掛掉了,畢竟我們是在面試不是在茶余飯后的聊天。 面試的時(shí)候最后如果面試官問你有沒有什么想要了解的,如果自己實(shí)在沒有問題想問,可以叫面試官給自己之前的面試提一下意見和建議,這樣也有利于自己的提升;或者叫面試官指導(dǎo)一下自己之前沒有問答上來的某個(gè)問題,這樣能夠體現(xiàn)出自己比較好學(xué);或者可以問問面試官自己應(yīng)聘的職位除了技術(shù)能力之外有沒有什么其他方面的要求,這樣可以體現(xiàn)出自己對(duì)該職位比較感興趣并有意愿為之努力。 就我感覺一般面試官叫我在紙上寫代碼的題大多不是很難,但是可能會(huì)有坑。例如大數(shù)階乘的溢出、雙向鏈表的首尾節(jié)點(diǎn)的特殊處理等。感覺面試官主要考察你的代碼和算法能力之外還在考察你考慮問題是不是足夠周到,在面對(duì)真實(shí)地開發(fā)環(huán)境時(shí)代碼的魯棒性是不是足夠強(qiáng)。 對(duì)于應(yīng)聘開發(fā)崗位的同學(xué)(特別是Java開發(fā))在準(zhǔn)備面試和筆試的時(shí)候,Linux的基本原理、數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)里的TCP和UDP、hashmap、Java的垃圾回收、Java的內(nèi)存模型、Java的多線程安全問題、http的相關(guān)知識(shí)幾乎是必考的,所以大家要認(rèn)真著重復(fù)習(xí)。 還有就是面對(duì)面試官盡量要誠實(shí),因?yàn)橐坏┠阏f謊被識(shí)破了那鐵定使沒戲了,所以對(duì)于不知道的問題還是不要不懂裝懂的好。 最后就是保持一顆平常心,能夠過面試就為接下來的繼續(xù)努力,不能夠過也要坦然接受。然后繼續(xù)嘗試其他的機(jī)會(huì),畢竟世界上不是只有一條路,機(jī)會(huì)總是留給有準(zhǔn)備的人的。 好久沒有手打那么多字了,這片面經(jīng)就到此為止吧,可能還有一些不完善的,等我想起來再補(bǔ)充。希望能夠給后面的同學(xué)帶來一些幫助~ |
|