2016,终入江湖
現在距離簽完三方已經過去5個月了,找工作已在16年10月份結束,今天突然心血來潮,想要記錄一下找工作的經歷,多年以后自己再看此文,未嘗不是一種珍貴的回憶。
(純粹為了記錄找工作的經歷,不喜繞道,謝謝!)
原普通一本信計(數學)專業,后考研至某985,計院渣碩一枚。(最終拿到華為杭研、騰訊mig、cvte、去哪網offer)
默默準備
15年7月份進入實驗室,實驗室是做圖像處理的,研一的時候基本上都是幫老師看論文,然后寫文檔,對程序的編寫和程序語言的使用基本沒有任何的提高,圖像處理中的算法倒是了解了不少,但是這對找工作又有多大的幫助呢(研究生的時候基本靠自學)?因此,在空閑的時候只能先把C++ primer plus看了一遍(以前對C++只了解皮毛),這本書算是把我領進了C++的大門,后來在找實習之前逐漸看了C++實踐之路、effective c++、深度探索C++對象模型、鳥哥的Linux私房菜、數據結構,算是對C++和Linux有個基本的了解,同時為了提供算法編寫能力,還在leetcode上刷題并看了算法競賽入門。初試江湖,備受打擊
日子在閱讀論文,寫文檔和看書中逐漸到了16年的3月份,此時實驗室的氣氛莫名的緊張了起來,和我們一起找工作的學長(學碩)每天都在討論這投哪家公司的實習,什么時候做筆試...,是的,已經開始找實習了,找實習的過程和6個月以后找工作的面試流程一樣,所以還是有必要參與一下,因此為了準備接下來的實習面試和筆試,以前輕松看書的日子已近遠去了。此時,又剛剛把C++ STL看完,leetcode也剛剛刷了50題,雖然很心虛,但是還是要去面試和筆試(此時就像有一雙無形的手推著你按照以前學長的路走下去,沒那么難也沒那么簡單)。 實習只投了華為和騰訊,先在學校的機房里做完華為的筆試(華為有自己的oj平臺),又過了幾天收到了騰訊網上在線筆試的通知,又做了騰訊的筆試,總體來說,華為的筆試比較簡單,只有編程,但是要注意輸入輸出格式,騰訊的有選擇題、文字敘述和編程題,編程題難度也不高。經過 半個月的等待后,華為和騰訊都發了面試通知,悲劇的是,華為和騰訊都是同一天面試,騰訊9:30開始,華為10:15開始,早晨從宿舍出發走到凱悅酒店,過了 不久就開始了實習生的第一場面試,開始的時候還是很緊張的,在面試的時候一直在抖,騰訊的面試官還是比較溫和有禮的(不像以后面試的某個語音輸入法公司),開始先讓寫了一個字符串拷貝的函數(需注意參數的類型,const、防止地址越界,內存空間的分配,實際字符串長度、‘\0’),然后開始詢問最近在看什么書,有什么收獲,對C++的理解,C++和C語言的區別,本科學的什么,實驗室做什么方向的,做過什么項目,有什么進展,如果給你50億個整數,如何快速判斷某一個整數是否在給定的數中,平時有沒有看過開源代碼?(其它的記不清了),面試大概進行了40分鐘左右,面完走出酒店,我就知道已經gg了,此時的心情無比平靜,然后打車,去華美達酒店,面試華為,華為的面試規模比較大,在一個大廳里面,還是先做一個編程題,輸出100以內的素數(效率盡量高),面試官首先問了本科有沒有學過網絡,懂不懂linux后臺,由于本科對這些了解不深,研究生期間也是初涉這些內容,所以瞬間就冒汗了,然后又問了操作系統的內存分配(給他扯了一下程序編寫中的內存分配,然后就被鄙視了),然后又問了對線程和進程的理解,然后就gg了,臨走時面試官還說,回去再好好看看書,準備參加秋季的校招,...........。 實習只面了華為和騰訊,雖然過程是痛苦的,結局是悲慘的,但是,讓我認識了自己的很多不足,也給接下來6個月準備校招的生活帶來了巨大的動力。直面江湖
實習面試結束后,了解了自己目前的狀態,便老老實實的在實驗室繼續看書,在接下來的4個多月里(到8月底),陸陸續續把王道程序員面試寶典、計算機網絡、深入理解計算機系統、數據庫、劍指offer、UNIX網絡編程(卷1&卷2)、UNIX環境高級編程、啊哈算法看完,leetcode也刷了160多道題目,也在??途W做了一些專項練習和模擬筆試。1.華為
到了8月15號左右華為公司就開始給我們這一屆的畢業生發面試短信了(號稱優招),當時云計算部門還讓我們去參加一個座談會,一開始的時候聽說,如果優招沒有通過面試,就不能參加后續華為的校招了,因此就有點不是很想參加優招,不過后來云計算的hr承諾我們優招沒過校招還有機會,于是在經過一番猶豫之后,還是報名參加了優招,因為實習的時候參加了華為的筆試,因此優招的時候就不需要參加筆試了,一面的時候,我現在印象最深的是,面試官對我的一個圖像算法的優化很感興趣,在聊的時候,還當場拿出筆和紙讓我推導算法公式,和我討論算法的指標,之后問了我的操作系統和網絡方面的內容,然后就讓我在大廳里面等待二面,等了大概有半個多小時,就有面試官領著去參加二面,二面面試官主要側重于問以后想做的方向,對Java是否有了解,Java和C++有哪些不同,不知道面我的面試官是不是做算法的,二面的面試官又讓我把算法推了一遍,之后就開始跟我談華為的各種好....,然后就讓回去等通知,之后9月初的時候,通知了一批人去簽兩方,我沒有接到通知,后來,又過了幾天華為方面打電話說已被錄用,此時華為校招還未開始.....2.科大訊飛
在8月份的時候投了科大訊飛,然后9月初的時候,科大訊飛發短信讓去軟件園參加筆試和面試,由于那天比較堵,到了科大訊飛公司的時候已經遲到了半個小時,而科大訊飛是紙質的筆試,沒有機試,接過試卷后就開始狂寫,有單選題,多選題,填空題和編程題,題目相對比較簡單,一個半小時的時間,做完之后,面試官就讓在辦公室里面等待結果,有過了大概半個小時,面試過抱著試卷過來喊通過筆試的人,喊道名字的留下參加下午的面試,訊飛公司安排了中午的午餐(外賣),下午兩點開始面試,一面通過才能參加二面,當天只會有兩次面試,一面的時候面試官問了,TCP/IP的四層模型和OSI七層模型,研究生期間做的項目,試卷中的問題,設計模式,還有一些其他的小問題,因為在面試的時候我看到面試官好像不是很友好(面試的時候,兩個面試官好像無精打采的,應該不是專業hr,不像tx和hw),我就感覺可能gg了,在最后的時候,他們問我有沒有什么問題要問的,我當時想這可能是最后一面了,我就跟他們指出他們出的試卷有錯誤(確實有錯誤,這也反應了一個公司的素質...),然后,他們就讓我到外面等消息,等了大概有二十分鐘,二面面試官過來喊我二面,二面的時候主要問了項目,然后問我對算法研究員感不感興趣,然后他告訴我,我可能還會有三面(只有算法研究員才會有三面),然后就結束了,等了半個月之后,訊飛打電話讓去合肥參加三面,因為不是很想去合肥,然后就謝絕了三面...3.騰訊
騰訊是在9月份筆試,筆試包括選擇題,問答題和在線編程題,題目難度適中,一般不會刷人,筆試通過在面試前一天會發面試通知,騰訊一直是我最想去的公司,一面的時候面試官沒有問算法,一直問基礎知識,然后問了做的項目相關問題,由于簡歷中寫了一個服務器和客戶端socket通信程序,面試官可能對網絡通信方面比較感興趣,然后就一直問其中通信的原理,通信協議如何設計,如何實現并發連接,數據如何存儲,如何傳輸圖片和文件,如何解決高并發帶來的問題...,到此,一面結束,第三天接到二面通知,一些基礎問題以及記得不清晰,只記得面試官問了四次握手和三次揮手的過程及相關問題,然后面試官問如何設計一個網絡協議,由于當時比較緊張,這個問題回答的相當不好,事后冷靜下來,感覺這個問題應該從,是什么,為什么,然后再回答怎么做,到此我的騰訊校招之路結束,失敗.....。但是兩個月之后,騰訊又開始校招補錄,然后又投了簡歷,經過三次電話面試后,還是拿到了offer。三次面試主要問了,基礎知識如C,C++區別,對C++對象模型的理解,static的作用,動態規劃算法,數據統計分析,printf函數的實現原理,網絡通信.....?4.cvte
cvte的面試是我面試過程之中感覺比較累的,面試是在中秋節的下午4點中左右開始,經過了三面(兩輪技術面試,一輪hr面試),面試結束的時候已經到了晚上8點多,第一面開始,面試官主要談了一下項目,然后就出了兩個算法題,第一個是輸出第n個指定的斐波那契數,該題目雖然簡單,但是還是要考慮如何將程序寫的更美觀,如何使得空間利用率更高..,此時我向面試官提了一個問題,問他n是從0開始的嗎,他感覺很詫異,他說之前沒有任何一個面試者問過這個問題,看他的表情好像對我主動向他提問很滿意,第二個算法是,如何統計一系列數中各數最多的兩個數,需輸出相應的數和對應個數,這個時候我又主動詢問能否使用map,算法的時間復雜度和空間復雜度的要求,最后寫出了一個時間復雜度為O(n),空間復雜度也為O(n)的算法。第二面,面試官主要問了對STL的了解程度,然后讓自己參照STL中的vector寫一個循環隊列,然后我使用數組和類模板實現了循環隊列的基本 功能,可能當時面試官也趕著回去過節,這個實現后就介紹了二面,后面就是三面,主要詢問自己期望和看你對他們公司是否感興趣,最后還會問你是否有問題問他(這個問幾個問題,以表示對他們公司興趣,每個公司都會這個流程),然后晚上22:00左右,在微信上的狀態就已經是面試通過了。(感悟:要主動向面試官發問)。推薦
刷題網站:
牛客網(各種內推)
leetcode
?
算法推薦書籍:
啊哈算法!
?
?
面試問題:
1.如何統計一個數字二進制形式中0或1的個數?
2.如何判斷字符串中是否存在漢字?
3.C++中const和C中const的區別?
4.static的作用?
5.如何修改類中的const類型的變量?
6.虛繼承是解決什么問題?
7.指針和引用的區別?
8.為什么有了指針還要使用引用,引用與指針相比的好處?
9.幾種類型轉換關鍵字、智能指針?
10.如何實現一個不可以被繼承的類?
11.C++與C的區別?
12.C++中多態的實現原理?
13.C++中的覆蓋與隱藏
14.如何實現只能在堆/棧上創建的對象?
15.單例模式?
16.B+樹的作用,概念?
17.紅黑樹的概念?
18.STL中印象最深的?
19.容器的實現原理?
20.二叉樹的前、中、后非遞歸遍歷
21.TCP的流量控制和擁塞控制
22.socket通信
23.線程進程的區別
24.圖論算法
25.printf函數是如何實現的?(參數)
26.能否在析構函數中釋放類對象的this指針?怎么釋放,釋放后還能/不能訪問哪些函數?
27.有40億個整數,如何快速查找某一個整數是否存在?
28.外部排序(大文件,內存不足時排序)
29.類中如何設計一個必須實現的(有定義)函數?
30.TCP的四次握手三次揮手。
31.C++11新標準
32.如何在類中聲明常量
?
?
智力問題:
1.跑馬問題
2.時間問題
3.商店信息統計問題
4.最近在看什么書?
5.最自豪的一件事?
總結
- 上一篇: Tomato路由器挂载u盘后,启动变慢解
- 下一篇: 【历史上的今天】1 月 7 日:Mosa