轉發請註明出處:http://blog.csdn.net/xiajun07061225/article/details/12844801html
其實個人求職過程在十一以前就已經結束了,整體講比較順利。參加面試的幾家公司基本都拿到了offer,分別是阿里巴巴、美團網、創新工場塗鴉移動以及華爲。當時也參加了其餘公司的面試,好比人人,一面事後收到了二面通知,拒了。創新工場豌豆莢一面結束後等消息。十一事後的公司基本都是醬油而過。去哪兒面試拒了。騰訊一面後收到了二面的通知,也拒了。主要是由於本身已經拿到了理想公司的offer。看來人仍是須要一點壓力,這樣才能發揮出本身的潛能。也本着攢RP的原則吧,感受不必刷那麼多offer,並且我也知道本身的水平,對阿里的offer已經很滿意了。剩下的時間還不如先預習一下入職要用到的東西。其實好早就想着寫總結的,一直拖到如今,我想要是我再不寫總結,估計不少東西就記不起來了。linux
1、自我介紹-往事不堪回首nginx
首先自我介紹,某985院校計算機學院普通碩士。無ACM、挑戰杯或者是各類編程大賽獲獎經歷,無牛逼哄哄的項目經歷,無名企實習經歷。總之一句話,一個再普通不過的CS碩 士。本科期間成績平平,課外也沒有學太多東西,基礎很通常。經常後悔白白浪費了本科期間閱讀那些經典書籍的大好時機。對於碩士期間本身的實驗室,很差意思 吐槽太多。項目很扯,沒有感受學到了什麼東西。方向是什麼圖形圖像,面試到如今沒一個面試官感興趣。代碼也沒有寫多少行。因此起初一直很擔憂本身在面試中 怎麼來介紹本身的項目。所以,爲了準備秋季校園招聘,我提早作了不少準備,在如今看來,我當初的選擇是徹底正確的。下面詳細介紹本身所作的準備吧。web
2、實習生應聘-備受打擊面試
我正式開始準備找工做是從4月份開始。在此以前,除了在實驗室作所謂的項目,而後就是學習一些基礎的東西,主要包括C++、STL、Linux、算法。這幾項其實都學的比較淺。看過的書有:《C++Primer》、《C++標準程序庫》、《STL源碼剖析》、《深度探索C++對象模型》、《EffectiveC++》、《鳥哥的Linux私房菜》。到了4月份,參加了騰訊是實習生招聘,結果是掛了。我報的是後臺開發。因爲沒有Linux項目經驗,面試官狂問數據結構和算法。一面還好,頂住了。問到的題目有:非遞歸二叉樹遍歷-紙上寫代碼、shell排序、基數排序、找出一堆數中出現次數大於總數一半的數,還有一道算法題是:給出一天內的不少條QQ號的登入及登出記錄,每條包括時間、QQ號、標記是登入仍是登出的標記符。要求求出一天中最大在線人數。(精確到秒)。基本都答出來了,順利進入二面。二面面試官瞅了一下個人簡歷,就開始問算法。四道算法題,具體題目能夠看這裏http://blog.csdn.net/xiajun07061225/article/details/8882981。 四道題答出來兩道,一回宿舍,用微信查了下,就進入人才庫了。好吧,被鄙視了。其餘的一些公司也投了,好比阿里、大摩、百度等等,不是簡歷篩選沒經過,就 是筆試沒經過。反正木有得到面試機會。不過,我很慶幸本身參加了實習招聘,知道了本身的短板,知道了本身之後想作後臺開發須要準備些什麼,也瞭解了面試中 面試官的經常使用套路,這對我接下來着手開始準備看書準備找工做有很大做用。算法
在 這裏須要說明的一點是,根據個人瞭解,實習是一把雙刃劍。若是能去好的公司實習,可以得到正式offer,這樣可以給本身的簡歷錦上添花,再去面試別的公 司也是一個籌碼。可是若是不能得到正式的offer,也由於實習的緣由失去了複習打牢基礎的時間,在筆試面試中會很吃虧。因此,你們必定要考慮清楚。shell
3、爲找工做作準備-養兵千日數據庫
在此以後,我便開始了個人讀書計劃,目標是後臺開發職位。重點放在C++、數據結構和算法、Linux、網絡、Nginx。我之因此要學習Nginx,主要緣由有,一,這是一個優秀的開源web服務器,研究開源代碼,很是有意義。這也是騰訊面試官給我以及另外同窗的建議。二,拓展下個人視野,彌補本身項目經歷不足的問題。下面展開介紹這幾個方面的準備。編程
下圖是個人部分書籍。其中一些也沒有去細看。數組
1、數據結構和算法
在以前已經閱讀了一遍《算法導論》,感受學的不夠深刻,不少都忘記得差很少了。所以從新閱讀了重點部分,並且用C++編程實現。好比:鏈表、二叉樹、AVL樹、紅黑樹等等。圖的算法就看了搜索算法:BFS以及DFS。而後另外在網上找了A*搜索算法的資料看了下。一提到搜索,A*算法確定是少不了的。以後又看了《編程之美》、《劍指Offer》。不只僅要看書,還要總結。尤爲是筆試面試中出現頻率很高的鏈表以及二叉樹的操做,我將各類操做進行了總結,而且練習白紙寫代碼。白紙寫代碼是一項重要的基本功,包括邊界條件考慮、書寫風格等等,會直接決定面試官對你的印象,所以我着重進行了系統訓練。《STL源碼剖析》看完以後,我已本身動手實現了一些容器:stack、quene、priority_quene、heap等。另外,我也閱讀了網上一些大牛強力推薦的博客資料,好比July的編程藝術等。將前面幾本書中未曾出現的一些數據結構和算法看了一下,好比:並查集、K-d樹、R樹、約瑟夫環問題、數據庫存儲的倒排索引等等。總體講,這部分準備的仍是很充分的,面試中出現的大部分數據接結構和算法題都解決出來了。
2、Linux和網絡
linux和網絡是我最薄弱的部分,也是最擔憂的部分。由於木有這方面的項目經歷,一直擔憂若是在簡歷上寫上這一項,會不會被問倒。在這裏要特別感謝個人基友LM,給了我很大的指導,在這段時間裏,一塊兒學習,一塊兒進步。linux首推經典書籍《Unix環境高級編程》和《Unix網絡編程》,網絡基礎知識首推《TCP/IP協議詳解-卷一》。APUE讀了兩遍,UNP挑了部分看了。感受只看書根本不夠,因而在LM同窗的提議下動手寫一些demo程序,好比聊天程序、基於線程池的生產者消費者程序等,加深了對基礎知識的理解。
3、C++與STL
重溫面向對象經典書籍《深度探索C++對象模型》。這本書介紹面向對象機制講的很是不錯,這也是筆試面試中常常出現的考點。重溫《Effective C++》。關於STL,我想學的更深一點,做爲本身的一項能夠在面試中發揮的亮點,所以又從新看了STL內存管理、迭代器、traits編程技法、典型容器的原理。這也在後面的面試中屢次被問到。
4、Nginx
其實Nginx只學習了兩個月。我購買了兩本書籍:陶輝的《深刻理解Nginx-模塊開發與架構解析》以及《深刻剖析Nginx》。首先閱讀陶輝的書,從整體上對Nginx有個初步的瞭解,瞭解了Nginx模塊開發流程以及總體架構。並嘗試搭建了Nginx環境,實現了書本上的幾個模塊例子。接下來開始着重看重要的模塊:進程模型、負載均衡、epoll模塊。閱讀了重要的源碼,並嘗試用gdb跟蹤(其實作的比較少了,沒太多時間!)。在面試中常常被問到我以爲Nginx的優越性在哪?我就提提進程模型、epoll了,再和Apache簡單作了下比較,基本能夠矇混過關。
筆試題面試題
至於筆試題面試題,也看了很多。大多數在網上搜索的。在這裏給你們推薦一些比較好的學習資源吧:
Coolshell:http://coolshell.cn/
Matrix67大牛的博客:http://www.matrix67.com/blog/。
July的CSDN博客:http://blog.csdn.net/v_JULY_v。
何海濤博客:http://zhedahht.blog.163.com/。
筆試面試的經典:Cracking the coding interview--問題與解答:http://hawstein.com/posts/ctci-solutions-contents.html
LeetCode:http://leetcode.com/
這裏有很多筆試題集錦:http://blog.csdn.net/hackbuteer1
項目經歷
除了上面的基礎知識,也系統梳理了一下本身的項目。雖然項目經歷很扯,可是,也須要仔細梳理下思路,不能讓面試官感受讀研期間沒有作什麼事情。把項目流程、關鍵點、難點、解決方案等等從新回想了下。以便面試官問到這些問題可以很流利地答出來。
4、校園招聘-用兵一日
接下來介紹我參加的幾個公司的面試狀況:阿里巴巴、美團、人人、華爲、創新工場塗鴉移動、創新工場豌豆莢。
一、阿里巴巴-拿到offer
阿里巴巴筆試比較難,題目屬於互聯網公司中比較難的了。筆試題中有較多的機率題之類的數學題。並且選擇題選錯了會扣分,想得高分真是有難度啊。22日晚上筆試完以後就感受不好,當時感受可能就沒戲了。沒想到次日中午午睡的時候就收到阿里巴巴的面試通知,竟然是當天下午四點。起初還覺得是次日。不得不說阿里巴巴的效率真高,傳說三天所有搞完。猛然間想起來已經和創新工場塗鴉移動HR約好了二面,也是最後一面了,剛好也是在下午四點。這可怎麼辦?連忙打了一個電話給HR,結果發現是個總機,須要撥分機號,無奈只能做罷,先去阿里吧。
三點從學校出發,坐公交來到君宜王朝大酒店。發現等待的場地很小,等待的人也不是不少。等到4點, 阿里面試還沒開始,結果塗鴉移動那邊打電話來了。情急之下說如今有點事情,能不能十分鐘以後打過來。而後我去和阿里的工做人員說能不能推遲四十分鐘,我想 四十分鐘應該可以結束塗鴉移動的面試。工做人員說沒問題,而後連忙去找安靜的地方、光線充足的地方準備電面。結果發現酒店裏面處處都很暗,比較亮的地方只 有走廊了。算了,蹲在走廊上面吧。整個面試過程大概四十分鐘,感受面的還能夠。結束後立刻去找阿里的工做人員,等候阿里的面試。
等了沒 一會就通知去一面。進去後,發現很大的一個屋子裏面擺着不少桌子,一個桌子是一個面試官和一個面試者單面。個人面試官很年輕,也很和善。一開始就和我聊一 些輕鬆的話題。他首先是看我簡歷,看到個人興趣愛好的時候,還問我:「你還會交誼舞?」我笑了一下,回答:「是啊」。他又笑哈哈的說:「就是爲了把妹 唄。。。」囧。。。我忍不住笑了(PS:竟然這也被你看穿了)。而後問我家是哪裏的,等等。以後就是開始一個自我介紹,而後是對着簡歷問技術。C++、算法與數據結構、Linux、GDB、網絡、操做系統等等只要我寫了的都問了一個遍。由於我在簡歷上寫了博客地址,因而在電腦上敲進去打開看了下。我博客寫的文章還挺多的,不過都是些基礎的總結的東西。沒想到面試官很仔細的看了,以爲還不錯。又對着博客問了不少東西。他看我課外研究了Nginx,還寫了一些博文,也問了nginx上 的一些東西。還好前兩天看了一下前面的筆記,答的還湊合。後來竟然從我博文裏面抽一些東西來問我,我回答以後才告訴我說:「我是在用你的博客來當面試問題 哈」囧…總共面試了一個半小時左右,比通常人的四十分鐘多好多。整體感受一面面試官人很好,很和善,健談,這樣的面試很開心。
因爲一面面完以後就七點多了,工做人員告訴我,因爲今天太晚了,就讓我明天早晨9:30再去參加二面。次日一大早,天下着大雨,早起吃個早飯便匆忙趕到酒店。等了會就參加二面了。二面是一個技術面試官和一個HR同時面。首先依然是自我介紹,和一面的自我介紹差很少。項目也許是不感興趣吧,便開始出算法題,都要求寫代碼。總共問了兩道算法題,不算難。第一道題是兩個字符串A、B。從A中剔除存在於B中的字符。好比A=「hello world」,B="er",那麼剔除以後A變爲"hllowold"。空間複雜度要求是O(1),時間複雜度越優越好。我又問了下字符串中字符是否是僅限於小寫字母,它說能夠這麼認爲。那麼判斷A中字符是否是在B中的話就能夠用hash了。這道題不難,直接設置一個count變量,記錄A中存在於B中的字符數量。而後設置一個指針遍歷字符串A,遇到不是B中的字符往前移動到正確的位置便可。第二道題是求打靶十次,得到80環的機率。我是用相似於八皇后來作的,遍歷加回溯。只不過代碼沒寫太全。先想寫一個非遞歸的回溯的,可是楞是憋不出來,因而想着用遞歸吧,要簡單一點。反正寫的不全,仍是TM代碼寫少了啊。水啊~~技術方面其餘的就是問的課餘時間都學些什麼。我課餘也就學習了Nginx和Linux。首先就聊了下Nginx,什麼進程模型,優勢等等。而後問了select、poll和epoll的區別。這個很熟悉,很快答上來。以後又問了Linux是如何減小內存碎片的問題的。我就說了下slab,貌似主要應該是夥伴算法。這個問題回答的很差。而後HR問了一些問題,什麼家鄉啊,職業規劃啊,最感興趣的三家互聯網公司什麼的。結束了我問何時能夠出通知,說一週以後。囧!這是否是掛的節奏啊!!!
話說等通知真是糾結的很。終於在25日晚10點左右收到了阿里的HR電話,說經過了面試,次日去參加意向會議。阿里是目前爲止我最滿意的互聯網公司了,這段時間的努力總算沒有白費。
二、創新工場-塗鴉移動(拿到offer)以及豌豆莢(仍在面試中)
筆試題答的不錯,總分25分,得了22分。錯了一個選擇題,編程題求根號2的我採用的是二分法,實際上更好的方法是牛頓迭代法。還有錯了一道數據庫的選擇題,數據庫真的是不會啊,o(╯□╰)o。
大約9點 多筆試完,當天晚上十一點就收到了面試通知,開始說是早晨八點多,可是由於上午有華爲面試,就從新約在了下午一點。上午從華爲面試完急匆匆趕回學校吃了午 飯,回寢室坐了一會就和同窗一塊兒出發去啓明學院參加創新工場的面試。到達地點的時候大概還有二十多分鐘,因而我和同窗掏出手機,又溫習了Onenote上的筆記,把堆排序、歸併排序等等基本算法又琢磨了一遍。話說onenote真心很好用,比有道筆記要好用不少。啊哈哈~算是給微軟免費打一個廣告吧~
很快就一點了,一位面試官把我叫了進去。猛然間發現這位面試官怎麼這麼眼熟,後來知道了他的名字後才發現是我在人人網上的一個好友,ACM大牛。面試官人很隨和,讓我作了一個自我介紹,僅限於技術上的,一看就是技術宅,哈哈~而後對着簡歷看了下,開始問問題。由於個人實驗室項目都是圖形圖像方面的,面試官一點都不感興趣,因而都是對着個人技能那一欄寫的進行提問。先是問了Vim我平時都使用過哪些插件。GDB調試命令:查看棧幀backtrace等等。fork函數的返回值,以及執行過程。linux方面的東西問完以後就開始算法。總共寫了三個算法題,都要求白紙寫代碼。由於我平時這方面練習比較多,所以都不是問題,很快就寫出來了。第一道題是有一個int型數組,每兩個相鄰的數之間的差值不是1就是-1.現 在給定一個數,要求查找這個數在數組中的位置。我先說了下最基礎的方法,那就是順序遍歷,還沒說完面試官就打斷問有沒有更好的方法。我就說能夠在遍歷的時 候進行一些跳躍,提升查找效率。而後他說,嗯,寫代碼吧。第二道題記不得了。第三道題是一個字符數組,裏面的字符多是a-z、A-Z、0-9.現 在要求對數組進行排序,要求全部小寫字符放在最前面,全部大寫字符放在中間,全部數字放在最後。並且各部份內部分別有序。我一開始沒想到這個數組可能會很 大,因而用比較笨的方法來寫代碼,他過了一會就問我是否是要先分別排序再合併,我說是的。他就問若是數組很大呢?我立馬回答出了桶排序。所以你們在開始答 題的以前必定要和麪試官多溝通,把題目意思搞明白。
而後面試官就說沒啥問題了,問我又沒啥問題。我就隨便問了下總共有幾面就出來了。出來才發現總時長才二十分鐘。囧!這是否是掛的節奏啊!還好很快就收到了雙選會的通知。
雙選會
雙選會在中秋前一天下午舉行。主要是到場的6家創新工場旗下的公司作介紹,而後你們填了一個意向表。每一個人能夠選擇三家意向公司,並且三家公司都有面試機會。我填的是豌豆莢、塗鴉移動和墨跡天氣。會上還說塗鴉移動的面試會在當天晚上就開始,所以中秋期間也要準備隨時面試。
二面-塗鴉移動
果真當天下午5點就收到了塗鴉移動的二面通知,仍是晚上十點的。我去,這是第一次這麼晚去面試。原本是十點,結果開始得比較晚,十一點半才面試完,回宿舍都關門了。感受面試官特別注重考查思惟能力。他問我會哪些數據結構和算法,我先說可鏈表、數組、棧、AVL樹等等還沒說完就被打斷了,他補充說,偏重算法。我挑了我熟悉的幾個說了下:BFS、DFS、KMP、A*算法。而後就出了四個算法題。下面說說兩個較難的算法題
(1)一個矩陣,指定其中兩個元素,將這兩個元素用折線鏈接起來,折線只能朝右或者朝下,要求:折線組成的路徑上的數的乘積末尾的0最多。
(2)連連看遊戲。判斷兩個點可否鏈接起來消去,並且要求出最短路徑。能夠用哪些搜索算法?BFS,DFS,A*?A*如何剪枝?
HDOJ 1175
典型解法:BFS。
其餘同窗的面試題:
由‘0’-‘9’組成的字符串,求一個最大子串。該子串不能知足條件:該子串的任意兩個子串對應數字的乘積字符串對應的數字不能是這個子串的子串。
原本覺得塗鴉二面面的不好,結果仍是收到了Offer。今年好像招的人很多。
二面:豌豆莢:
豌豆莢的代碼超級好,氛圍也很不錯。咱們學院一個大牛在4月份就拿到了正式offer,聽他說,裏面所有是大牛,給力的工資以及各類福利等等,讓人豔羨不已。豌豆莢招人很是嚴格,通常有6-7輪技術面試,難度可想而知。我本着打醬油的心情參加了面試。
面試時間:2013-09-21,5:00
總時間大概1小時。
先是一個女工程師面試,主要是問簡歷,聊了Linux shell命令,統計出一個文件夾下大小大於7MB的文件夾,這個沒答上來。還有的記不得了。接下來又安排了一個面試官專門問我C++的,主要是問STL,內存管理、Vector容器等等。以後就是線上編程環節。那邊能夠看見個人一舉一動,第一次這樣面試,壓力仍是有點大的。題目就是將一個四位整數好比4298轉化爲大寫:四千二百九十八。我漏掉了一個狀況:就是十的時候,前面不須要一!PS:不得不說,中文博大精深啊!而後就結束了,我問了下以後還有幾面,HR說還有至少兩到三面。好吧。不得不說豌豆莢的招聘真心嚴格。
原本覺得豌豆莢掛了,結果時隔十多天於10月16日收到了HR電話,說要進行二面。面就面吧,就當長點見識,這高富帥公司也從沒想過進去。
三、美團-拿到offer
筆試是六道大題,有幾道是寫代碼,有幾道是計算題。次日收到面試通知。美團是三面連續着面,經過一輪面試立刻進入下一輪面試。面試地點在大學生活動中心。一面,面試官讓我介紹了一下項目,我就blabla介紹一通,目測他也沒聽懂。隨便聊了下就開始問C和算法題。算法題不難,紙上寫代碼。大約35分鐘面試結束,在門外等候了一會,緊接着進去二面。二面就是幾道算法題,有的寫代碼,有的講思想。基本都答得差很少了。又出來等消息。因爲已經5點了,hr告訴我先去吃個飯,而後回來參加三面。我特地問了一下三面是技術面仍是HR面,她說是技術面,技術副總裁面。汗!壓力大啊,副總裁面試!果不其然,副總裁面試就是不一樣,問題一個接着一個,也頗有深度。好比項目中遇到了哪些問題,是怎麼解決的,軟件設計,Linux、Nginx等等。反正不少沒答上來。面完以後就感受要掛的樣子。由於聽宣講會的時候說道美團今年全國只招200人。沒想到一會就收到了HR電話,算是HR面吧。
十月初便收到了美團網的offer,薪資也還蠻給力的,氛圍也很不錯,只不過在北京額。
四、華爲-拿到offer
華爲先是機試,三道編程題,題不難,可是隻作出來兩道,第三道題題目理解錯了,尼瑪。面試分爲兩輪,一輪技術一輪HR。感受華爲技術面試是我面的最差的。幾道題一個都沒答上來。什麼數據庫存儲原理、linux內核的東東….囧。幹嗎老是問我不會的呢!
本感受沒戲了,不事後來也收到了簽約池的信息。再後來就收到了HR聊意向的電話。雖說華爲今年漲薪了,可是對華爲的氛圍一直沒有什麼好的印象,沒有去的慾望,不久就拒了。
五、人人-二面就沒去了
人人就面了一面,由於有阿里offer二面就沒去了。一面感受還不錯。面試在咱們學校的一個咖啡廳。面試官主要問C++和STL。C++主要問面向對象的一些東西,基本答出來。STL我比較熟悉,也沒啥問題。最後他介紹了一下本身所在部門的狀況,說是作廣告推薦、數據挖掘的。問我對之後職業發展有什麼意向沒。我說對後臺開發、廣告推薦很感興趣,他就記錄下來了。一面大概35分鐘,這樣就結束了。
後來不久就收到了二面通知,不過沒有去了。
5、總結-一點小感悟
其實我歷來沒有料到本身的求職過程會這麼順利,由於實現沒有發現本身身上有哪些過人的優勢。
自我感受我在面試中的亮點主要有三部分:
(1)基礎紮實。不少公司都很是注重基礎:語言、數據結構與算法、Linux、操做系統等等。手寫代碼能力很重要,有必要重點強化訓練。
(2)課外知識。我課外花時間學習了web服務器Nginx,雖然研究得不是很深刻,可是瞭解基本的架構和重點模塊。對於服務器模型有了基本理解。
(3)技術博客。個人技術博客原創博文已經不少了,雖然沒有太多高深的東西,都是一些基礎知識,可是大可能是本身加以總結了的。大多數面試官都打開個人博客看了,評價還不錯。
其實,關於怎麼樣去學習,並無固定的套路。有 的同窗,在研究生期間作過比較出色的項目,可以贏得面試官的青睞,好比發過論文,或者是和麪試官的方向一致,或者是當下互聯網比較熱的方向等等,這樣,可 能一次面試,項目聊完就沒有多少時間了,面試官也不會去問其餘的東西。好的項目經驗可以讓面試官以爲你實踐經驗豐富,能夠直接拿來幹活,經過面試的機率也 是很是之大的。若是沒有好的項目經驗,最好努力去打牢本身的基礎,多關注互聯網的前沿,充實本身,同樣能夠贏得面試官的讚許。總之,你們都要有本身的亮 點,能讓面試官眼前一亮,那麼,經過面試也是不難的事情了。
不 得不說,面試也看眼緣和運氣,有時候問的東西恰好是本身都會的,有的時候容易遇到挫折。你們要善於把面試朝本身擅長的方向引,展示本身的優點。多數面試官 都不會以問倒求職者做爲目的,而是每每嘗試去發現求職者身上的有優勢及潛力。應聘者應儘可能將面試當作一個相互交流的過程。
最後,但願個人總結可以給各位學弟學妹一點借鑑的意義,但願你們都能找到好的工做!