秋招总结
前前后后面試了將近一個月之后,最后終于收到了騰訊發來的offer,半年以來的努力兌現了當初給自己許下的諾言,終于有機會寫下這篇總結,這篇面經,這對我意義非凡。
我是某985院校經管學院的,信息系統與信息管理專業碩士,聽過這個專業的人應該知道,這是一個致力于用計算機技術提升企業管理效率的專業,管理為主,計算機為輔。所以要說我是完全的非科班也不太對,我跟別人介紹的時候,通常說我自己是半個科班生。盡管這樣,在到達終面的時候,還是不少總監級別的面試官會發出這種驚訝的聲音:“你居然是經管學院的?”。
是啊,我是經管的,但是我能通過你們的技術面試,說明我不比計算機的差。其實我是今年3月份才決定要做一名研發工程師的,在這之前,我一直覺得自己應該去做產品——我們專業的學生技術上實在太三流。
先說說春招
我當時的技術有多糟糕呢,我是做java的,3月份的時候,連面向對象三大特性:多態、封裝和繼承是什么我都不知道,集合類和多線程簡直聽都沒聽過。當時我基本就知道一些java基本語法,sql會寫一點增刪改查,課設做過一些很水的項目,就沒了。
我的第一次面試是螞蟻金服一面,也是我印象最深刻的一次面試。面試官連著問了四五個問題,我都一臉懵逼。他無奈了,說那我問一個簡單一點的吧,什么是雙向鏈表?夠簡單吧,整個面試我唯一還知道一點的問題,但是很遺憾,就這我還給答成了二叉樹。這是一次極其恥辱的面試,不過即使我表現的像個白癡,面試官還全程安慰我,說沒事,沒事。這里不得不贊一下螞蟻金服的面試官,包括之后的秋招又面了螞蟻,面試體驗都非常的棒。
整個春招我前前后后投了將近二十家公司,不全是大公司但都是我聽過的,我覺得去一家我聽過的公司,是我求職的底線了。二十家里面有十三家有反饋,筆試或者面試邀請,其中十家的筆試掛了,僅阿里、今日頭條和遠景能源給了面試機會,最后都是一面掛了。持續將近兩個月的春招,僅面試了三次,最后顆粒無收。
那段時間心態接近崩潰,每天就是刷拉鉤實習僧,看到java開發就投,然后石沉大海,重復著這個無聊的過程,平靜的生活終于在5月中旬出現了轉機——我接到了小米的面試電話。
說實話,小米的一面也面的稀爛,掛了電話我就覺得又TM掛了一家,沒想到,十天后接到了二面電話。二面的面試官是我們學校的校友,不知道是不是這個原因,二面比一面還簡單,又過了十天,順利收到了實習offer。后來去小米才知道,一面面試官就是我的leader,人超級nice,他也承認我一面答得稀爛,不過還是想再給我一次機會,二面是我們部門的老大。至此,實習的事差不多就告一段落了。
再說說秋招
三個月的實習很快過去了,轉眼就來到了秋招,因為已經確定小米可以轉正,所以秋招沒有選擇海投,只投了一些我認為不劣于小米的企業,大概有十一家左右,都收到了筆試邀請,網易、京東和頭條筆試掛了,網易游戲和4399給了面試但是面試地點在北京所以放棄了,剩下六家都參加了面試,并收到了其中四家的offer,分別是華為、美團、百度和騰訊,加上小米,秋招總共收到了五家公司的offer,剩下的,螞蟻三面掛了,搜狗一面掛了。螞蟻很可惜,因為我是在阿里內推快結束的時候才投的,三面面試官說技術面的還不錯,但是java崗的hc已經所剩無幾了,問我愿不愿意轉測開,我拒絕了,最后理所應當的掛了。其實要是早投一點的話,我可能就能實現當初拿滿BAT的豪言壯語了。
在面完這么多場面試之后,我發現BAT面試的難度還是明顯高于其他互聯網公司的,BAT面試難度比小米、美團和搜狗等二線公司面試難度高了一個檔次,比華為高了兩個檔次。我覺得他們面試的區別就是,像美團小米這種公司,他們的技術面都很套路,往往問的問題都是很常見的那種面試題,算法題也基本在劍指offer里面能找到,本質跟筆試沒太多區別,我猜測他們都是有一套題庫,隨機出題來考察面試者的。而BAT的話,在套路之外,還會有一些面試官的臨場發揮。比如你某個點答的比較好,他可能會抓住這個點繼續深究下去。比如之前騰訊一面面試官問了我volatile關鍵字的問題,我就給他介紹了這個關鍵字作用,場景,優缺點之類的,然后他繼續問,那你知道怎么實現安全讀取和寫入的么,我說讀取會強制從內存而非緩存中讀取保證讀取正確,寫入的話,以前的cpu是用lock原語鎖總線保證寫入安全,現在的cpu是用緩存一致性協議。他又繼續問,緩存既然存在失效的可能,那為什么要設緩存?我說因為緩存讀取速度比內存更快。他又問,那為什么緩存比內存快?我說因為緩存離cpu更近,并且工作方式更簡單,緩存的硬件設計也以速度優先去設計的,所以更快。他又問,那內存又為什么比硬盤快?我說內存是靠電位變化讀取數據的,而硬盤是機械結構存儲的磁信號,光尋址就得花不少時間。
你看,從一個volatile關鍵字一路問到了計算機組成原理,我想這肯定不是題庫里的題,而是面試官臨場的發揮。在面百度的時候,面試官從java,到spring,到機器學習,到linux都給我問了個遍,而且并不是泛泛而談的那種,基本都深入到了原理,比如問我寫一個controller,spring在后臺會為你做哪些事,svm核函數的區別,對linux內核的了解,git原理等等。百度一面面試官是我見過知識面最廣的面試官,從開發到機器學習都有不俗的深度。所以,BAT還是BAT,從面試官的水平就可以看出來了,其他公司都要差那么一點意思。
我的方法
背景終于介紹完啦,下面是我自己的一些經驗之談,不保證一定適用于每個人,但是java方向的同學看完一定會有一些收獲的。我基本上是面完阿里之后就決定做研發的,所以我也是從那個時候開始學習技術的。
我首先要做的就是把計算機的基礎課程補回來,這里提醒一下,復習之前多看面經,多看別人的總結,做到有的放矢,因為面試??嫉臇|西,其實就那么幾章重點內容而已。我簡單列一下我復習的進程吧。
《瘋狂java講義》半個月看完
《計算機網絡》謝希仁:一周看完重點章節
《計算機操作系統》湯曉丹:一周看完重點章節
《計算機組成原理》零碎的挑了幾章看
《數據庫系統概論》薩師煊:一周基本復習完,之前看過
《數據結構》嚴蔚敏:一周復習完,之前學過
《大話設計模式》:看了兩天,抽象工廠模式,單例,適配,觀察者夠了
牛客BAT精品課(推薦):半個月左右,期間也刷了些別的算法題
完成上述過程我覺得拿到一個大廠的實習offer已經沒問題了,總時間也就兩個月多一點。下面是進階的
先推薦java方向的三個帖子:
Java研發方向如何準備BAT技術面試答案(上)
Java研發方向如何準備BAT技術面試答案(中)
Java研發方向如何準備BAT技術面試答案(下)
我實習的時候趁晚上的時間基本上是把這三個帖子中的每一個問題都過了一遍,范圍涵蓋各個科目的??碱}。進階的書目沒有表明我花的時間,因為基本上都是我一邊實習一邊看的,比較零散
《深入理解java虛擬機》主要看GC,內存模型
《java并發編程藝術》多線程并發的問題在面試中很重要,這本書建議通讀
《鳥哥的Linux私房菜》linux入門
《程序員代碼面試指南》左神的書,推薦
《劍指offer》經典,必看不解釋
《算法》我也沒怎么看這本書,不過看過的幾章覺得寫得很不錯,有余力可以看看
《高性能mysql》主要看了索引,查詢優化,復制,可擴展和高可用這幾章
《設計模式之禪》閑書,有空看
另外說一句java的,java進階一定得看源碼,這部門很重要但是沒有固定的書籍,像集合類,cocurrent包下類的源碼幾乎是必看的,經??肌T创a怎么看呢,不是直接在ide里面反編譯去看,那樣效率很低。而是去看別人的分析源碼的博客,或者源碼解析的書籍,事半功倍。要想拿到BAT的offer,知其然必須得知其所以然。如果以上的你都做到了,BAT之外的互聯網公司基本就很簡單了,現在我回過頭看實習生面試,簡直小菜一碟。不過要拿到BAT,還需要一些運氣,臨場發揮,和聰明的頭腦(騰訊和搜狗都考了我數學和智力題)。除此之外,可以看一些架構的書,服務器宕機怎么辦,IO負載高怎么辦,用戶請求超過服務器極限怎么辦,這些都是比較常見的問題??梢钥匆豢聪旅鎯杀緯?。
《大型網站技術架構:核心原理與案例分析》
《大型網站系統與java中間件實踐》
內容不多,我基本幾天就看完了,先就這樣,其他細節想好再補吧
總結
- 上一篇: 做个男人,做个成熟的男人,做个有城府的男
- 下一篇: 颜色混合理解