原文做者:_XiaoTeng_
原文連接:https://www.nowcoder.com/discuss/29890?type=0&order=4&pos=4&page=7
原文來源:牛客網
php
首先呢個人面試經歷和一些麪霸和收割機的大神相比毫不算豐富,但我這三個月應該能表明很大一部分人的心路歷程:
從無憂無慮也無知的狀態,而後遭遇挫敗,跌入低谷,連續數天的黑暗,慢慢調整,逼着本身不能鬆懈,看到改變,收穫確定,分享經歷。 前端
相關的公司有四類: java
筆試就掛了的:網易、頭條。(對於筆試這個東西我到如今都沒太多經驗) python
網易是第一家參加筆試的,面試會報銷費用去總部,因此仍是有難度,這個公司呢,內推不內推都要參加筆試。因此筆試要好好準備(固然筆試也很差準備) mysql
頭條只有四道編程題,一我的作確實難度挺大的,尤爲是工程爲主,不太專搞算法的同窗。 linux
筆試過了但由於時間地點緣由沒去面試的:京東、小米、去哪、攜程、招銀。 c++
這幾個公司面試必定要現場,不少都要求去總部,還不報銷路費。因此在遇到這種狀況時,你們要有選擇的安排,畢竟時間和精力都是有限的。 git
最終參加面試的: 程序員
阿里呢你們都知道,巴不得把全國學生都面一個遍,對於這種策略我只想說三個字,晚點投(下面會解釋)。 golang
騰訊的面試體驗仍是很好的,會在酒店的房間裏,安靜溫馨。只是java的同窗可能要被問到不少C++和網絡的知識,建議仍是提早準備一下。
百度內推都是電話面,會在某網站實時寫代碼,感受百度的面試官都很不錯,給個人體驗也很好。內推的時候最好注意下部門,在一個好的部門和邊緣部門仍是差異很大的。
滴滴面試比較晚,外地能夠先視頻面,最後會有現場面,報銷花費。工做體驗很不錯,內部氛圍很好,由於成立時間短業務擴展太快,技術方面正在沉澱期,工做仍是比較有挑戰性的。
360要先筆試,而後能夠視頻面試。這個公司比較穩定,業務也都很成型,實習的話留用率仍是比較高的。
美團的話印象比較深,由於我是二月底內推的美團,而後內推沒面我,三月正常筆試經過,而後待面試兩個多月。。估計是補招了纔給我打的電話(我都已經準備入職了)。經驗就是必定要選一個事業羣,最開始選都喜歡的大可能是覺得這樣機會多,相反這樣不少部門因爲本身的簡歷池太滿而顧不上撈你。
4.還有一投簡歷就沉的外企:Amazon、FreeWheel(不知道是他們只收北京生源,仍是我英文簡歷寫的太爛了)
文章最後的面經固然只包括第三種由於筆試這東西真的很差講,雜七雜八什麼題都有,編程題大多人也要看發揮。
我就從左到右提及吧。
其實每一個階段的改變,也都是心態轉變的過程,因此首先要說的一點,就是心態。在上面這種公式裏,心態做爲一個因子存在。沒錯,心態能夠影響你面試的準備,筆試的狀態,實力的發揮,能夠影響一個面試過程的方方面面。心態崩了,就只剩運氣了,offer估計也就走遠了。
那怎麼調整本身的心態呢?
不輕視指的是咱們都要對本身有信心,畢竟選了這個行業和方向,說句很差聽的話,機會那麼多,就算你不怎麼努力也會有個差很少的offer不是麼?千千萬萬的初中創公司,各類擁有垂直領域穩定份額的二三線公司甚至有些已經上市,除此以外還有銀行,投資,金融的IT崗,還有各行各業爲了互聯網+的策略而擴展的互聯網分支(固然像鏈家這種已經算互聯網+傳統行業的典範了,我前些天還瞅到了像萬達德勤一類的各行業巨頭也在招程序開發...)因此啊,要對本身有信心,在這個行業十分缺人的年代裏(固然各個層次的公司缺人的標準是不同的),總不至於會失業吧。
大多數的人,總暗示本身說什麼時間很少了,怎麼天天過這麼快效率怎麼這麼低。到筆試了,跟本身說這個算法太難了,確定作不出來;臨到面試了,跟本身說千萬別問我linux內核,別問我分佈式,問我確定完;面試過以後,沒有結果,就每天想確定又掛了,唉我怎麼這麼菜。
若是這一系列的表現造成習慣,那心態這個係數最多0.5,能發揮出來的東西也都打了一半的折扣。凡事都不要太悲觀,一個offer沒拿到,正常狀況是這個失敗的經歷產生的經驗和總結是會讓下一次的成功率提升的,千萬別由於這些消極的暗示,反而讓該有的提升都沒有了。
心態差的時候反而要停下你重複而沒有效率的工做,去調整一下,能夠出去玩一玩,吃吃喝喝,不要把這幾個月看得有多麼不同,好像耽擱兩小時就要來生再見同樣。
有一些一塊兒準備的好夥伴是件很是好的事情,不只能夠互相督促,並且能夠在交流和分享的過程當中取長補短。(哪怕是偶爾一塊兒吐吐槽發泄一下也比一我的崩潰要好得多)。但對於每一次面試,只跟本身比就好了,面試的整個過程都是最怕比較的,偶然性大,並且每一個人適合的方向和技術棧都不同,結果不能說明一切問題。若是身邊有些收割機,那更不要太在乎這些每天拿offer的(尤爲是拿一個就跑過來說一句的,他們也許沒有惡意,但他們可能真的想不到這種方式會對別人產生怎樣的衝擊)。
對本身的水平有個很清楚的認識,並選擇本身合適的公司,好好準備本身的筆試、面試,不怕失敗,但保證每次面試都有收穫和提升,那滿意的offer遲早會來。
這裏說的實力指的是硬實力,也就是技術上的真實積累(固然產品崗的就是對於產品相關知識的積累),而其實呢軟實力在面試過程當中也尤其重要(有時候真的要更重要),主要是指和麪試官的溝通,對一個問題的闡述方式和表達方式,邏輯思惟能力以及的價值觀和爲人等。
而後關於這個軟實力我想放到下面的技巧中去說。
若是你平時有些項目積累,不擅長也歷來沒有怎麼系統地總結過;若是你學習呢不算那麼認真刻苦,研究搞得也不算出衆,可是你該努力的時候也會努力,能夠爲了一個好的工做逼本身一把。
那也許下面說的實力和技巧均可以在必定程度上幫到你。(由於我就是這樣的狀況)
這麼說是由於不少人其實在這些年的項目或是學習中有一些積累,可是在剛開始面試的時候徹底感受使不出力,就是有種你問的我都能講上一點,但根本說不清楚的感受。(往深了問天然是完蛋)
知識面或者或者說技術棧都是有寬度和深度的,咱們要作的就是在短期內提高寬度,抓住以往自己就熟悉或是感興趣的幾個點去深刻。
我是認爲知識的寬度能夠很大程度上決定你能不能經過面試(這裏說的寬度並非簡歷上了解、知道或者你都沒往簡歷上寫,僅僅是據說過的層面修飾的方面,而是寫熟悉的那種,通俗地說是能夠講清原理,不涉及橫向對比和優化的方面)
一兩個點的深度呢在保證你能經過面試的同時(尤爲是你的點正好cover了對方部門的技術棧),而且仍是影響offer等級的關鍵因素。(達到足夠的深度,不僅能說出原理,還能進行橫向技術對比,縱向的延伸技術,優劣點及優化,或者在這個點寫了幾篇很透徹的博文,更厲害的同窗甚至有相關的開源項目的參與與貢獻)
關於怎麼提高寬度和深度能夠看下面的積累(其實說真的短時間內寬度是好補的,深度確實要看我的,是代價較高,性價比不必定高的一方面,看本身的決定吧)
因此個人建議是,先把寬度提上來,把你能cover的知識點及原理搞懂是第一步。建議對本身以前的項目和技術積累作一個總結和分類(能夠參考下面的技術路線),而後對已經瞭解的方面儘量延伸,對盲區或是薄弱的地方進行鍼對性的學習和練習。
當你的知識面覆蓋到必定程度的時候,你天然會把他們的聯繫搞明白,慢慢理解這整個技術體系,在面試的過程當中結合表達技巧能夠關聯起來講各個方面,也就能夠很大程度上展示本身的真實實力(更厲害的同窗甚至能夠有超出本身真實實力的表現。。)
(我也只是腦子裏過了一遍,確定有遺漏的,你們本身補全就好了,畢竟每一個人的知識覆蓋範圍也不一樣)
其餘擴展技能(這個方方面面太多了,所有掌握基本上不可能,只是做爲你們其餘時間擴充技能的參考)
實力要怎麼積累
積累實力最好的方式就是平時在項目中或是學習中,多學多問,多思考多鑽研。這裏就說說短時間內學習的一些方法和路徑:
總結下來,一方面是經過看書、看視頻、看面經來不斷擴展本身的知識面,一方面是經過不斷的面試積累經驗和知識盲區,在每次總結的過程當中積累實力。
這裏應該是有個推薦書籍的環節,這幾個月確實看了很多書,可是並非全部都有很高的性價比,在這邊大概列一下,先後順序也必定程度上表明瞭我認爲的重要度前後,'/'作分割的是一類的書籍,通常來講看一個就夠了:
書單: 算法與數據結構: 數據結構(嚴蔚敏)/大話數據結構 //若是以爲教材無聊就能夠看大話系列,印象中裏面還有不少詩 劍指Offer/程序員面試金典/編程珠璣/編程之美/牛客網+leetcode 程序員筆試面試最優解(左程雲)/不如直接看左神的筆試面試指南視頻 Java的版本(不是很推薦): 數據結構與算法經典問題解析(Java語言描述) 圖解數據結構(使用Java) 計算機網絡: 計算機網絡(謝希仁) TCP/IP 詳解 HTTP權威指南 圖解TCP/IP 圖解HTTP 數據庫://數據庫主要是多用,書上主要看索引和性能的部分 高性能MySQL/深刻淺出MySQL 操做系統: OS原理:操做系統(課本,黑色的那個) Linux: Linux私房菜 //鳥哥寫的,很全,包括bash部分 跟阿銘學Linux //主要偏重於命令和操做,比較淺顯 java: Java瘋狂講義/Java編程思想/Java核心技術 卷1 深刻理解Java虛擬機 併發編程的藝術/多線程編程核心技術 Effective Java Java程序員面試筆試寶典 //何昊的那本,我的感受是突擊知識點的神器 Java程序性能優化 實戰Java高併發程序設計 Java Web: Spring實戰/輕量級JavaEE 企業應用(紅皮,講SSH的) //主要看最後一部分Spring的就能夠 深刻JavaWeb技術內幕(阿里 許令波)//這個講的仍是比較深的 SpringBoot實戰/深刻實踐SpringBoot 設計模式: 大話設計模式 //通俗易懂 各種博客的總結 分佈式與大數據: 分佈式服務框架原理與實踐 大型網站技術架構 Hadoop實戰(hadoop體系包括得很全) //還有一本我暫時想不起來名字了 其餘: Git: Git權威指南 Git官方講解視頻(牛客網有帶字幕的) Redis: Redis實戰 還買了docker、springCloud等等一些工具書,由於過小衆就不列舉了
除了上面說的書和視頻,最有用的仍是你們分享的各類面經。
面經是個很不錯的東西(嗯,想看的能夠直接翻到最後一節)。記住不要一掃而過(除了那種崗位不太匹配能夠快速抓重點看),崗位匹配的你能夠順着面經逐條去看,模擬一次面試過程(雖然是單向的,可是你內心應該是知道每一個問題你能答道什麼層次),這種不斷地模擬可讓你知道盲點或者說弱點在哪,對於一個你內心沒底或者想不太起來的問題必定要當時記下來或者當時就弄懂。
我當時是天天晚上在牀上看幾篇面經,而後把存疑的問題copy到記事本中,次日找個固定的時間短查詢解決和總結。長期下來會養成一個很好的習慣,你的知識點會不斷地擴充。
這一點其實跟剛剛看面經的那個很相似(那個我不是叫作模擬面試了嗎),每次面試完,必定要把本身不會的東西儘快記下來(固然你若是有記面經的習慣就更好了,還能再分享出去),而後找時間弄懂和總結。
除了知識點,每次面試(跟模擬面試不一樣的地方)還要總結的是哪裏發揮得很差,哪裏有能夠提高的地方,下次必定要注意之類的。(就是有關面試技巧的東西,好比此次語速太快,致使面試官反饋了,又好比此次發現對方讓你在紙上畫個項目邏輯圖忽然一時腦梗,那回去就好好在本上畫一遍)
軟實力這個東西與面試的準備關係不大,基本上是長期造成的。
包括和麪試官的溝通(有的時候也會成爲聊天瞎扯的能力);對一個問題的表達方式,邏輯思惟(像有些人的發言就讓人聽上去頗有層次感,很舒服,這方面欠缺的能夠推薦玩玩狼人殺);除此以外對方也會很在乎你的價值觀和爲人(這個是我進了公司發現的,不少公司在內部的面試細則上面都會註明這一點,若是價值觀或是人品問題會直接否決。)想一想也是有道理的,由於這個是入職以後能不能好好相處的關鍵,設想若是你是一個面試官,面對一個有實力可是說話太有棱角聊不太來的和一個不算出衆但基礎不錯很聽話能夠培養的,你會選哪個?(若是你由於生活太平淡了想選第一個,那這一條當我沒說。。)
這些軟實力其實要在生活中慢慢鍛鍊,好比多參加些活動,多和別人溝通,發表意見前好好組織本身的語言等等。(每一個人都有每一個人的性格,這些都因人而異,但有一點咱們要記住的是在面試中,不論什麼狀況,都要保持冷靜和清晰的頭腦,和一個謙卑的態度,交流要坦誠<尤爲做爲應屆生>,這樣起碼印象會好不少,要知道雖然面試有各類各樣花式的打分項,可是印象好每每是隱藏的決定性因素)
面試的技巧首先就是剛剛說到的態度。 一個謙卑(注意不是自卑,也不是把本身放的很低的樣子)和禮貌的態度和表達方式每每可讓面試官的印象分提升不少,印象分很像以後要考察的實力分的係數。留個好印象,面試就成功了一半。(固然你必定也聽過那種聊得很嗨,或者偶遇校友之類的,毛都沒問就聊經過了的場景。這種狀況仍是不算在技巧中了吧,應該屬於運氣和緣分的範疇。而大多時候聊得開心和舒服會讓你感受到經過率會比較高,這一點不少人仍是深有體會的)
首先從簡歷開始說,簡歷怎麼調格式,作幾頁,排版啥的就不想多說了,感受不少文章都分享過。我只說說技術方面的內容怎麼寫。
專業技能的描述謂詞無非就那麼幾種:精通、熟練、熟悉、瞭解。(還有一級叫據說過,這個級別的可千萬別往上寫啊兄弟)
精通感受通常仍是不要寫,除非你在某個技術點上真的有足夠的把握,好比源碼看的很透徹的同時還能深入理解原理並能靈活處理各類case場景,若是還有相關的開源貢獻,那就自信地寫精通吧。
咱們把本身掌握的大多數技術點叫作熟練掌握,這個須要咱們在以前對各個技術點進行橫向縱向的複習和總結,並不僅是用的多有經驗就行,有的時候咱們以爲熟,但真讓你說的時候殊不知道從何提及。
至於熟悉和了解,能夠寫一些本身理解原理可是不經常使用的技術點,尤爲是比較流行的,各大公司都在用的技術(好比MQ,分佈式緩存等等),這些你在學校不必定用過,可是你能夠經過看博客,寫demo去理解他的設計和原理,面試的時候能夠講得清楚。
這裏還有個技巧,更細心的同窗能夠針對每一個公司崗位的job detail不一樣,熟悉和了解這塊就針對jd中cover的技術點去寫。這個作法是很聰明的,畢竟熟悉和了解這個層面是能夠提早學習和準備的,有針對性的去寫對方須要的,是提高經過率很好的一種方式。(若是嫌麻煩就算了,好比我就是)
下面再說說項目經歷這塊:敘述必定要精煉到位,細化到每個亮點上。我如今再看我二三月份的簡歷簡直是有種想撕了的衝動,當時就是項目描述兩三行,而後歸納下我大概作了哪幾個模塊。完了。
事實上,不能講得這麼泛泛,就從中找2-3個亮點,一句話高度歸納,突出亮點。
好比後來我就把我一個普通的web項目挖出來三個點(爬蟲,通訊控制方面,安全加密方面),分別用一句話敘述,這一句話最好包括這個技術點的思路,解決了什麼,有沒有作什麼優化。好比一個爬蟲工具能夠寫成這樣:
我負責這個系統中爬蟲的開發,終端控制管理,店鋪管理。。。。
是的,上面這個爬蟲就佔用了五個字,等於沒說,面試官看到壓根不知道怎麼去問。這裏還能夠這樣寫:
負責系統中爬蟲模塊的開發,用於爬取影片的各類信息,包括年份,介紹,主演信息等。
這個起碼告訴面試官爬蟲作了什麼,可是你並不能保證他會問,由於你的敘述不必定能引發他的興趣。那還能夠這麼寫:
獨立開發多線程影片信息爬蟲工具, 並針對線程池性能、網絡異常以及反爬蟲措施進行屢次優化,容錯性良好並達到併發請求30+的QPS。
你以爲面試官看到這句話,他不想問點什麼嗎(除非他真的就不想要你)。
因此說,其實面試官呢都是但願在面試的過程當中發現咱們的亮點和優點,從而展開更深層次的交流,可是每每在簡歷中沒有一個讓他詢問的入口,這樣就可能致使他會隨意問(好比你瞭解什麼什麼嗎?通常狀況下都不太樂觀),或者就說那你來說講吧(這種問法其實已經表達出他不知道怎麼問的狀況了,你在講的時候必定要突出重點,不然會讓人感受沒什麼亮點,普普統統的項目而已(固然就算是普通的項目,咱們也要挖掘它的價值和本身的價值不是))
咱們在面試的過程當中最重要的是本身掌握主動權,若是面試官問的都是咱們熟悉的範圍和準備過的領域那咱們答起來也會更加駕輕就熟。而讓面試官隨着咱們簡歷中埋下的這些亮點(他就算知道你有意想說這一點,每每也會去問,由於他就是想在短期的面試中瞭解你處理問題的能力),去進行更深層次的交流,而這個更深層次的交流,還須要咱們針對簡歷上的每一句話,都準備多個層次和維度的擴展。
好比仍是這個爬蟲,你能夠充分擴展線程池的相關優化(有可能項目中沒有怎麼優化甚至就是個單線程,可是在準備面試的過程當中仍是能夠專門去作一些code重構的),優化網絡的NIO相關擴展,以及反爬蟲的各類各樣的措施,以及爬蟲方分別如何應對。這裏只要你去想,能準備的東西太多了,面試多了天然也就愈來愈熟,好像項目就是作得這麼完美同樣。
這裏我就不怎麼擴展去說了,再講下去這篇文章就寫不完了。。。
最後是面試中的技巧和經驗。
好好對着本身寫的簡歷一行一行看一遍,這都是你挖的坑,是準備給面試官做爲切入點交流的,並非本身往裏跳的。(對每一行都要有足夠了解和把握)
面試過程沒關係張,尤爲是前幾回,建議先從小公司入手鍛鍊下面試經驗(參考我以後自身的反面教材
面試方式不一樣,側重點不一樣(無非是電話、視頻、現場三種)。
電話面試建議找我的少安靜的地方坐着回答,而且建議拿紙筆多作記錄多畫多寫。(固然若是你以爲身邊不少朋友可讓你越聊越嗨那也能夠,坐着是讓你整個節奏慢下來,說話明顯更加沉穩,親身體會過站着走來走去和坐着的區別)
視頻面試其實和電話相似,只是能夠實時寫代碼,面試官能看到你的表情。這裏仍是要放鬆,若是你比較緊張,能夠不直視鏡頭,好好想問題就是了,由於不少面試官你答得好也會面無表情(由於他們也不常視頻,表情都很尷尬),而後你看到他們沒表情的表情確定會受影響。
現場面呢,最重要的是和麪試官互動了,說幾個點:語氣要輕鬆點,多點肢體動做有助表達,多笑;不太好說清的就用筆在紙上畫,一遍畫一邊講,面試官也會更容易和你交流;若是你能夠時不時幽默一下開開玩笑是更好了;見面和離開記得禮貌地握個手說聲謝謝。
學會平等交流,別把本身身段放的過低。其實有一點你要清楚,面試是個雙選的過程,他能夠拒絕你,你也能夠拒絕他。千萬不要太上趕着,反而會影響本身正常的表達和邏輯。(就跟你見了喜歡的姑娘就不會說話了一個道理)
回答問題的時候不要一口氣把知道的所有說完,而後還毫無條理。學會一個知識點由淺入深講解給面試官,而且留有餘地給他進一步去問。
舉個例子:
就說最簡單和廣泛的HashMap,讓你講講,你就能夠先說說hashMap的設計原理,底層結構(鏈表+數組)擴容方式等,從這你就能夠說說這種設計好在哪裏(好比講一講put是如何作hash的),這時候你能夠說這種hash可能會有衝突,hashMap也是作了相應設計的。
而後面試官會問題你怎麼解決衝突?你能夠再給他講講解決hash衝突的三種一般方式,而hashMap用的是鏈式法,而後能夠說到這樣會有隱患就是hash鏈過長。
面試官再問,你會給他講解決複雜度高的長鏈用了紅黑樹的結構,這裏還能夠延伸到紅黑樹的特色或者jdk7和jdk8的不一樣實現,這時候你能夠說解決hash衝突,但hashMap還會有併發和同步的問題。
面試官會讓你再講講,你能夠說說hashtable是線程安全的,怎麼實現的(sync函數),並很差,從而引出更好的juc包,說說concurrentHashMap,以後又能夠說道鎖分段原理,弱一致性迭代器,concurrentHashMap的鎖粒度(java7和java8不一樣),同包的CopyOnWriteArray等等。
你還能夠延伸說到鎖(重量、輕量、悲觀樂觀各自實現、底層源碼等等)、緩存(由於不少時候Map的結構能夠做爲緩存,從而能夠說到緩存系統的設計,kv原理,分佈式緩存redis、memcashed等等)
舉這個例子就是想說,一個簡單的基礎問題能夠一步一步有條理有層次的回答,每一層表達完拋個引子,讓面試官能夠繼續問下去,從而讓面試官真正瞭解你的掌握的深度。
若是真的不巧聊到不擅長的地方,學會轉移話題,從一個點中聊本身感興趣或是有把握的方面(好比你對消息隊列不太熟可是redis用的熟,你就能夠在問到消息隊列的時候說,由於以前都是本身作的項目嘛,性能方面沒有考慮到最優,一些異步的方式仍是靠redis list去實現的,雖然redis的消息機制並不常見,但當時仍是知足了需求,以後能夠考慮性能方面的提高和技術評估;又好比問你http請求細節,rest的設計實現細節,你能夠說http restapi服務接口性能的一些不足,後來使用了rpc的方式,固然你這麼說必定是要對rpc很瞭解)其實有的時候面試官是知道你是有意轉移的,可是每每他們也不會抓着你不會的去問,非讓你本身認可本身的盲區,他們也許根本不在乎這些。
若是真的被問到不會的,就直接說你不會(說你不會、說你不會,我再補充兩遍),或者禮貌地說這方面可能我還要多學習。(對一個拿不許的問題千萬不要猜,即便是二選一的那種問題,猜錯了直接完蛋,猜對了被人看出來,再往深問仍是完蛋)另外,像可能,大概是,我以爲這種表達最好不要,一聽就是對一個點沒把握,有可能會讓面試官以爲學習太浮躁不喜歡尋求原理。
那對於本身知道原理(確實是理解了的)可是沒用過的東西,就講講原理,並認可本身實踐不足,表現出好學的態度。面試必定要真誠。
問到有什麼offer就直接說,不要藏着掖着,也不要把更好的offer(好比bat的)講的很是誘人,一副bat我都拿到了的樣子(面試官會心想,那你還來面試咱們幹什麼)。再強調面試過程必定要真誠。除了直接說,誠實點以外,也要真的作些思考:對方公司跟以前的offer比優點在哪,好比平臺更大?專業技能棧更match?工做更有挑戰力?地點更合適?有機會留用?隨便一條符合的均可以講出來,起碼讓對方以爲你想來面是有緣由的而且真的有可能加入。(若是你還提早了解對方公司的文化,能夠講出這個文化本身很認同那就更能夠了)
關於這一點只有一句:平時多作好事,熱愛生活。
其實都知道面試要講緣分,講運氣,但人每每能夠在很順利地經過面試以後說句運氣好運氣好,卻很難在努力準備卻失敗的經歷以後保持平靜。
但無論能不能轉運是否是本命年有沒有緣分,努力和收穫的關係老是多年不變的真理。
因此,講心態,講實力,講方法。足矣。
按時間順序,詳細敘述一下我面試的過程,包括面經和心態的轉變:
(括號裏是對問題的補充,若是感受有知識點的盲區,你們正好能夠去深刻學習一下。這裏說一下我投的大可能是Java研發崗,因此其餘語言的能夠忽略java問題)
首先說一點,複習準備必定要早(固然這是說給19屆師弟師妹們聽的,嗯大家看到這裏已經能夠開始複習了),有同窗去年暑假劍指offer都刷了一遍,而後我居然今年3月纔買這本書。。還有同窗前一年冬天就已經去實習了,這種機會也不錯。但寒假若是不實習的,必定要進入到學習狀態。我準備的就有點晚,寒假徹底沒看書,真正開始準備,大概是2月中旬號玩了一夜狼人殺以後。
就是那個時候發現校招就要開始了,而後開始慌了。大概看了一週的書(基本上都是java基礎),而後師兄說阿里內推了,心想趕忙投吧要不人家招夠了就不招了(後來發現都5月6月了還在招。。),而後就慌慌忙忙投了簡歷。
這裏我要說一點最重要的事情: 必定不要在沒有面試經驗的狀況下先面大廠,或者是你想去的公司。
我是3月1日下午三點半在阿里的官網完善的簡歷,5點電話就過來了。做爲一個java coder,阿里是個很好的平臺,(固然C++的崗能夠好好準備騰訊),必定仍是準備充分了再投,你先面的結果極可能是焦急地等一兩個月而後被後來準備充分再來面試的人取代。
兩天各面了一面(投的螞蟻金服,第一天面的就不太好,次日又把我撈起來面,而且面完感受就走遠了,但當時卻沒有reject,這就致使以後一個月一直在流程中,阿里其餘事業部的師兄師姐沒辦法把個人簡歷提走,最終到要筆試了而後變成了rejected)
那個時候就是處於我所說的無知狀態,知識點掌握的不夠牢,簡歷寫的亂七八糟,面試經驗爲零(這應該是我上學以來的第一次面試),面試技巧就更不懂了。
而後當時兩次都感受聊得不好(尤爲是聊算法模型的時候都想自爆了),也根本沒有記錄面經的想法。因此有些問題我都記不起來了,大概說一下吧。
其餘問題真的過久遠了,我當時也沒有記面經的習慣,因此就沒有了。可是最大的感覺是面阿里的時候整我的都是緊張的狀態,語速特別快,巴不得把知道的都說出來,沒有條理,而且把本身姿態放得特別低,還在樓道不停走來走去。(對,以上說的這幾點全都是不該該的,但主要緣由仍是當時準備太不充分,簡歷方面的準備以及知識點的積累都不夠;另一點,仍是要強調不會的就是不會,千萬別說大概是,我以爲吧這種東西,說的很差很容易讓面試官認做不懂裝懂,雖然你只是很想向面試官表達點什麼,哪怕只是積極的態度)
從阿里面完試開始個人心態基本上就崩掉了,對本身極度懷疑,加上今年諸事不順,心情直接跌到了低谷。而後整個三月基本上都是黑暗的,整個一個月都沒再投內推,天天從早晨起來,大多時間就在看書刷題,晚上十點回宿舍躺在牀上,還要刷兩個小時牛客的面經。一個月下來不多說話,提高確定是有,可是這個過程,其實徹底能夠用更好的心態去經歷。
而後這段極其黑暗痛苦的日子持續到三月底,一個師兄想幫我內推百度,由於以前由於沒信心也錯過了騰訊的內推,就心想要不試一下吧。
一面 3.30 下午兩點 45mins
這裏能夠提早和學習,即便你真正使用的只是一點,也能夠在相關問題上作更深的瞭解。
最簡單隻分析請求,攔截全部非瀏覽器的直接請求(能夠經過添加僞報頭解決);查看refer頁作防盜連接(能夠改refer項);基於用戶行爲的策略,同一ip類似請求斷定(代理或ip池,或間隔請求解決);基於用戶session的策略(模擬多用戶登陸解決);封裝前端數據,用js渲染生成(經過探取和模擬異步ajax請求解決);對ajax請求進行加密等等方法。
二面 3.30 下午五點 50mins
經理面 4.12 中午 40mins
其實到如今我都很感謝百度,雖然最後由於部門和留用hc的緣由沒有去,可是此次面試收穫最大的就是信心。而且經理電話裏就給了口頭offer,這個讓我懸了一個多月的心一會兒就放下來了,接下來的幾天乃至以後的面試整我的都是放鬆的狀態。(真的很難形容,這種轉變就在這一個電話的先後)
因此,其實你們也遲早會有這一天,不必一直那麼緊張的狀態,太痛苦了。(雖然我知道這種話說得簡單),另一點就是三月份確實有了很大的提升,這個告訴咱們,該逼本身的時候仍是要狠心一點。
有了信心或者說有一個offer以後,你就會愈來愈順利,從這以後的每次面試都會有不一樣程度的收穫。360的流程是走得最順利的,筆試+面試,三次面試一天完成,可是360的面經可能寫得稍微簡單一點,由於不少知識點在後面的面試中也出現了,就沒有作過多解釋,騰訊滴滴美團的面經要詳細一些。
360一面 4.12
360二面 4.12
360 三面 hr 4.12
這是惟一一篇hr面經,由於我只面過這一次hr,其餘的三面要麼是技術,要麼只是打個電話說說狀況,還沒問問題就掛了電話(好比騰訊的)。
hr面沒有太多經驗,我的生活愛好這類我感受就是放輕鬆聊,規劃方向這些能夠本身提早準備準備,可是好比創業,offer(以前說過了),價值觀一類的問題,其實你也不知道對方想要什麼樣的回答,乾脆隨緣吧。
騰訊的面試有一點印象很深,很考察思惟能力,常常會有一些意想不到的問題,或者智力題。挺有意思。
一面 4.23
二面 4.24
二面其實就兩個大問題,但一直往很深的地方問。
而後進入第二個問題:
能夠看到騰訊仍是很愛問網絡通訊、大數據處理的(固然C、C++也很愛問,只不過我說了別問,他們就真沒問,固然你作java的也不要指望他們會問你多少java問題)
而後當時並無hr面,我心想應該是掛了,可是微信的狀態又遲遲沒掛,結果到了一個月以後五月底我都回家準備入職了(絕對又是補招的備胎),而後打電話問問我的狀況(也沒說是否是準備給offer),問可不能夠去深圳,轉C++方向。
當時也有比較好的機會了,而且實習轉崗,若是不肯定能留下,絕對是不建議作的一件事,因此就實話實說了。
一面 5.12
二面 5.12
兩面完了電話讓去參加新銳的現場終面,頗有誠意地報銷了全部的花銷。新銳的三面仍是有難度,基本上圍着算法在問。
三面 5.12
1.首先考慮要用字符串作運算(由於中間數太大了,只有String能保存,固然你能夠藉助BigInteger或BigDecimal類去輔助實現)。
2.階乘直接計算代價太大,循環太多,考慮設計中間緩存。(正常算複雜度過高,自己就是階乘級的,因此正常想到用時間換空間)
3.只用空間換時間的話緩存也不能覆蓋所有,若是把全部的中間值保存,空間是eb級別,不現實。(這裏就要達到一個空間和時間複雜度的平衡點)
4.存部分中間值用部分空間換取時間,達到空間複雜度和時間複雜度的最優平衡。(開始說的二分作分割存儲以後改成等間隔作分隔存儲,間隔選取多長爲好?我以爲要首先肯定空間複雜度的接受極限,而後儘量減少時間複雜度,由於空間複雜度是能夠有預估值的,而時間複雜度固然咱們是但願約小越好的)
(這裏說一下,我並非一開始都想到了,只是面試官一直在提示我思路,給我時間思考,沒有否認過我)
ps:這個面試官應該是面試過程當中遇到最nice的一個,也是我如今的老大。其實面試除了自身的因素也有面試官的因素,一個好的面試官不會隨便地否認和質疑你(固然有專門壓力面的),而是可讓你在放鬆的環境下,挖掘你真正對於一個方面的深度和理解。最後的十幾分鍾他並無問我問題,只是在跟我聊天,他跟我說無論是哪一個公司,真正的發展仍是跟部門的方向和氛圍有關係,選擇的時候不要只看公司,作的業務部門方向和leader纔是該去了解和考慮的。做爲應屆生不少時候不那麼瞭解,這就要靠咱們(指面試官)多去了解你想發展的方向。而後聊了不少成長路徑和規劃的事。
真正實習到如今一個多月,深深以爲面試就是面試,不少知識和題目都是能夠準備的,而工做中面對各類狀況解決問題的能力和方式纔是更重要的。爲了面試準備了不少,工做了發現要學的東西更多,咱們真的還有很長的路要走。
1面 1hour 5.26
2面 1hour 5.27 (由於這一面問得很深,因此到如今都記得很清楚)
3面 hr
其實你們能夠從這個過程當中看出來,隨着時間的推動,本身的知識儲備和各方面的經驗和能力都是上升的。
總結幾句: