他人求職經驗(美團百度趨勢)

轉載地址:http://www.cnblogs.com/chhuach2005/p/4005402.html

一、開篇:

9月底,找工作接近尾聲,筆者主要經歷了百度、阿里、騰訊、美團、趨勢科技、大衆點評、華爲的筆試、面試,其中拿到百度、美團、趨勢科技、華爲的軟件研發offer。

找工作是幸苦的,筆者曾一天來回跑面百度、大衆點評、趨勢科技三家公司。一天面試4面是常見的,一大早出門,有時候連午飯都顧不上吃,回到學校就5點了,吃過晚飯,一天就過了。中間有很多打擊和不確定因素,大家一定要經受住。

這一路走來,充滿艱辛,值得回憶!每一次筆試和麪試都是一次成長,每一次筆試、面試都能發現不足、學到東西。艱辛和打擊是有的,但從未放棄,找工作就是要靜得下心、沉得住氣、經得住打擊!每一次跌倒都要勇敢地爬起,既然選擇了,就要永不倒下!感謝實驗室和宿舍一起奮鬥找工作的小夥伴們,還有上屆的師兄、師姐,現在的導師,有了這一平臺、基礎和氛圍才能靜心學習、放手去博。感謝所有面試過我的面試官們,不僅是面試更是學習、請教和成長!一遍總結寫了近3天,但還是堅持把它寫下來了,當是給自己講故事把,哈哈。於己於人,若有一點點幫助,足矣!

二、前期準備:

定位:軟件研發(軟件研發成長空間大,知識深度要求稍高),軟件測試(成長空間相對較小,要求知識面廣、深度要求稍低)

戰略規劃:基礎+項目+實習+編程=nice offer

後來修正爲:基礎+項目(實習)+編程+技巧=nice offer(10字)

圖1  戰略規劃

經驗:實習可以歸爲項目的一部分,若有互聯網相關的實習當然更好,沒有也無所謂,在項目里加強就行了。前期把沒注意到面試還有那麼多技巧,不管是答題還是交流還是問問題的,都有很多技巧的,這個也很重要的,好的面試技巧能將面試官導向你熟悉的地方,好的表達技巧能給面試官留下很好的印象。

學習工具:截圖+百度雲盤+360雲盤+手機拍照+有道雲記事本。看博客,電子書時,把不是很熟悉的內容都截圖存在一個文件夾裏,這真是一個好方法,方便後面的複習,截圖再同步到手機裏,知識點,通過手機就可以複習了。看紙質書時,看到重要的東西,拍個照,自動上傳到雲端,手機、電腦都方便查看複習啦!這個東東在後期才發現,確實很受用啊,因爲以前經常看了很多東西好多都忘記了,有這東東,就不怕忘了啊!手機在手,隨時可以看啊!哈哈。。。

基礎知識方面:按照圖1中的規劃,前期從3月份開始,看了C++primer(很重要,裏面STL後期用的很多,高級篇也要看)、數據結構與算法分析(很重要,是劍指offer和編程之美等算法題的基礎)、數據庫(主要是概念和My sql 必知必會)、計算機網絡、大話設計模、程序員自我修養、STL源碼剖析、linux鳥哥私房菜,後期面試中問到相關的問題,把C++深度解析對象模型(主要講類的內存佈局,虛函數表等)、effective C++(講C++的條款)、unix壞境高級編程也看了下,沒完全看完,但對面試還是有幫助的。

項目方面:把圖1中所列的選項總結成文字。

編程方面:參加了微軟編程之美挑戰賽,把《劍指offer》上的題,一題題自己做了一遍,不會的再看答案,事實證明《劍指offer》確實是本好書,後期的筆試、面試好多題都是上面的。《編程之美》,題目比較難,主要看了數字之魅、結構之法,當然,後面面試中也有少部分題目是編程之美上的。九度OJ之前打算刷一些題的,後期實在是時間不夠啊,沒怎麼上。

簡歷方面:從4月份開始做的簡歷,後期逐步發現了問題,修改了好多次。簡歷是入口,是問問題的入口,自己講不清楚的東西不要寫在簡歷上,簡歷既要突出優點重點,以及和崗位公司匹配的地方,又要不留盲點。

三、面試經歷

1、阿里—>慘敗(止於筆試)--進入找工作的狀態,8月28日。

本來以爲經過幾個月的看書,自己的基礎知識進面試應該還行,但阿里這次慘敗的筆試深深打擊了我。由於其他的事中間隔了2個月沒看書編程(以前看過的也忘的差不多了),突然一次筆試感覺還沒進入狀態。阿里這次線上筆試自然而然的慘敗了,這次慘敗讓我重新審視自己的基礎知識和接下來的規劃和戰略。

2、中期調整—>滿血而歸

本來的規劃是在筆試時,這4方面(基礎、項目、實習、編程)都達到預計的目標。但實際事與願違,並非如此,書是看了,但也忘的差不多了,編程也練習了好多,但中間隔了1-2個月,就像做數學題一樣,又突然生疏起來,找不到感覺。

可以說,阿里筆試之前,都是浮躁的,自認爲,看過好多書,看過好多技術博客,基礎知識應該還好,編程方面,也練習了好多,應該也還好。事實並非如此,自從阿里的筆試後,我發現了問題,靜下心來,把以前看的書再掃蕩了一遍,這次基本是1-2天一本。

暗自告訴自己,下面的筆試、面試一定要好好把握,從阿里慘敗之後,真的靜下心來了。計劃是:1)把以前的基礎知識再掃蕩一遍,2)編程寫代碼,劍指offer上的題目一個個做,提高編程能力,3)項目的重難點、優缺點總結,4)看完近3個月的IT論壇上的面經(這個一般是晚上睡覺時在牀上看的,這個對提供面試技巧確實有幫助)。

這4個都實施了,還是很有自信的去考了騰訊的筆試。騰訊的題目不太難,感覺答的也還行。結果,別人都收到面試通知的時候,xxx,我還沒收到的,感覺是掛了的預兆。愈發的受打擊啊,那個打擊啊真的不小啊。準備了這麼多,結果連筆試都掛了,感覺有點諷刺,都懷疑自己的戰略是不是有問題,自己是不是不適合做軟件啊。因爲連面試的機會都木有了,準備再多,有毛用啊,連表現的機會都木有了。整個人軟綿綿的,一點鬥志都木有。不過,還好,休整下後又像打了雞血的,戰鬥起來。後來還是收到了騰訊的面試通知,想想還是自己太急了,找工作還是要淡定的。

早就聽聞美團的筆試全是大題(8個大題,2個小時),聽到這個感覺自己都不一定做得完,剛開始也木有多大的自信。不過還是和室友們廢了半條命趕到九龍湖去筆試。不過有點意外的是,我靠,8大題竟然做了7個大題。 晚上11:30的時候,手機響了,湖南的號碼,還以爲是什麼騷擾電話,接了電話就說了句“你誰啊,有事嗎?”。對方竟報出了我的名字,說是美團的約我第二天11點南大仙林xx中心面試。我當然喜出望外的答應了啊!

第二天6點多起來了,衝到實驗室,把以前整理的知識點複習了一遍。好了到了上午9:30了,和舍友張瑋準時出發前往南大仙林,到了那邊已經10:30。到了南大又找不到面試的地點,太囧了,問了幾個人,都說在活動中心。我和張瑋找到了活動中心,空無一人。打了幾次昨晚打給我的那個號碼,就是沒人接,問了N多人,都不知道在哪兒面試。靠,我和張瑋愈發覺得自己被騙了,正準備打道回府,最後想了想還有個同學在這邊。打了電話問了他,他說是不是在就業指導中心。又衝向了就業指導中心,走到附近就看到了美團的宣傳海報,我勒個去,還真是的。差點就錯過了。到了面試的地點剛好11點。

3、美團—>拿到offer

一面

上來我問“要自我介紹不?”。面試官一上來說不用了,先寫幾段代碼吧!然後,第一題:給你兩個字符串str1,str2,找出str2在str1中的位置。我一看題目心中暗喜,這個好做,好歹都寫過求兩個字符串的最長公共子串,求一個字符串的重複子串,求一個字符串的最長迴文串。這個題比這幾個都簡單,小case,啪啦啪啦一下子寫好了。給面試官看,並給他介紹了下,第一題通過。

接着又問,“阿?!你還實習過啊,還搞的雲計算啊。那你講講你實習把”。有備而來啊,我就啪啦啪啦一遍講一遍畫,在紙上把cloudstack的架構和原理,說了一通。並且還把我實習時,寫過的shell腳本(cloudstack環境自動部署)拿出來給他看了下,還把其中用到的一個小的交互和他講了下。面試官說,教父級的啊!我說還好,我在虛機上測試過多次,可以正常運行。再把實習做的事和他說了下,這方面算是認可了。又問了關於項目的,這方面難不倒我,哥都準備好了,兵來將擋,水來土掩,講的清清楚楚。

緊接着又問了,計算機網絡懂不?我說懂點,那我問你啊,在瀏覽器裏輸入美團網的URL,會經歷哪些過程和設備啊?心裏又竊喜啊,這類題目在那兒見過的,啪啦啪啦,從DNS、代理服務器、路由器、負載均衡、服務器,各種UDP、TCP等等講了一通。他也很認同,輕鬆又創了一關。

然後,又問,操作系統懂不,我說懂點。那你說說進程和線程有什麼區別啊,這個都是被面試官問爛了的問題,我還能不會嗎?劈里啪啦的講了一通。面試官點頭嗯嗯。又問,進程、線程間通信方式有哪些各有什麼特點啊,這個又是被問爛了的題目,自然輕鬆過關啊,看我這麼有激情地說,套接字常用在遠端進程通信,他突然打斷了我“那本地可以用不?”這個當然可以啊,一般服務器和客服端調試不都這樣嗎,我說,不過,這有點小材大用啊。面試官連忙點頭,嗯嗯!

“那,再給你出個問題哈”,我說“好的”。“你怎麼統計南京市有多少輛出租車?”我靠,這個怎麼整啊,我想都沒想就蹦出一句,“找交管部門查唄!”。他說,“不能查!”。這個我得想想了,剛開始還是從計算公路上的車的流量來算,後來想想車都是移動的,這怎麼整呢?結果靈機一動,這不是再考我樣本估計總體的思想嗎?然後,我就告訴面試官,我有兩種方案,不過都是用樣本去估計總體的思想。一個是按人口和車輛的比,一個是按面積和車輛的比,最後有補充了點兒,各地方的人口密度和車輛密度是不同的,所以選幾個典型的樣本區統計,求平均去估計總體。減少誤差。這個思想也被認同了,好了,總算一面過了,和一面官的聊天還是挺哈皮的。結束時,他說,我這邊你過了,去休息室準備二面。

二面

上來就讓我介紹了項目,說到決策樹相關的,介紹完了,還說這是你想出來的啊?我說看到數據結構和算法裏的,借鑑過來的。緊接着出了個題嗎,1000!末尾有多少個0,看了題目,有點暈啊,這怎麼算呢,一點思路都木有。二面官人還蠻好的,一邊說題目,一邊說,你可以先算個10!,100!看看。頓時就有了思路,其實就是看因子裏有2*5的個數,其實只需看因子5的個數就可以了,2的個數一般比5的個數多的,只需看5n%5==0,m=5n/5,算出5的倍數中因子5的個數就可以了。

接着出了一個三角矩陣的題目,每次只能向下和向右下走。剛開始還木有思路,最後竟然想到將矩陣轉換爲二叉樹,對二叉樹進行先序遍歷。二面官說你還能想到這個啊。那你編程實現以下。我靠,這個還要建二叉樹啊,不是很好弄啊。面試官說,那你寫個二叉樹求和最大時的路徑吧。好吧,這又轉到劍指offer上了,劈里啪啦就寫好了。然後面試官看了下,不錯,二面就結束了,二面結束已經將近1點了,還沒吃午飯啊,又困又餓啊。下午3點還有騰訊的面試,這個可不想錯過啊,上去和HR說了下,HR人還蠻好的,直接把我的簡歷拿到最上面。

三面

三面那個囧啊,嘴裏塞了一嘴麪包,HR喊的時候,直接就去了,忘了帶水。見到三面官的時候,我還在嚼麪包,想吐出來,又不知道往哪兒吐,想吞進去,又咽不下去,哎。。。那個囧態簡直難以忘記啊!三面官看到此態,笑了,說你是不是要喝點水啊。我馬上說是的啊,他向我指了一個地方,那兒有水。靠,救星啊,倒了兩杯水,給面試官也倒了一杯。一起拿過去先把水給面試官了。三面官說,你先喝點水,不急,我看看你簡歷和資料。

就這樣三面開始了,剛開始是閒扯啊,又講實習的項目,講了一半,他貌似看到以前面試的評語,說這個是不是以前說過的啊?我說,是的啊,他說,說過的就不用再說了。然後就讓我回憶你有哪些優點了,我先把本科的一個故事給他講了。然後他還在問,可能你平時沒注意,你再想想還有什麼事能表現你的一些優點的。我想啊想,又把研究生的一個故事給他講了。然後還在問,還有不,你再想想。我就在想啊,這面試官真不錯啊,人太好了,一直在挖掘人的長處啊。我每講一個故事,他都在紙上做記錄,滿滿地寫了幾張紙啊!感動啊!

故事講完了,又問我,你一般在網上看技術文章不?我說看,他說在哪兒看啊。我說CSDN,博客園。他也在做記錄,然後問,那你有博客賬號不?我說有,他說,那你能給個鏈接不?我說,鏈接不記得了,那給個搜索關鍵詞吧,我就給了。我還以爲3面就這樣聊聊就好了呢。沒想到,又出了兩道題,一個是寫個乘法的宏定義,果然是沒注意啊,要加3個括號#define multply(m,n) ((m)*(n)),這樣纔對啊。哎。。。我只加了一個,在面試官的提示下,纔想到加3個。確實覺得面試官人不錯啊,大美團確實不錯啊。又問了,宏定義和內聯函數有什麼區別嗎,分別在什麼樣的場景下應用啊。我答了內聯函數在編譯時,將調用處進行函數替換,避免調來調去壓榨出棧的時間開銷,以空間換時間,還有內聯函數有類型檢測,宏替換沒有類型檢測,內聯函數只是向編譯器申請,若內聯函數體內有循環遞歸等,申請會失敗,系統會當初普通函數處理。又問了如果設計一個string類,要注意什麼問題。我答了,注意內存泄露啊。如果是繼承,基類的析構函數要設計成虛函數。拷貝構造函數和賦值函數要注意異常安全,還有不能拷貝指針。然後就是3面結束了,等通知。

 

總結:美團的面試官給我很好的印象,都是比較嚴謹,平易近人的那種。還有就是面試官多是以發現者的眼光去面試一個人,有很強的包容性,這一點,我很喜歡!

 

4、百度—>拿到offer

一面

百度的筆試又是在九龍湖,來回又折騰了半條命,11點多睡覺了,睡在牀上睡不着,12點多了,忍不住去看看手機,一看有個未接電話,3分鐘前打的,直接回撥過去了。電話那邊是個女的(以爲是HR,後來才知道就是我的一面官),說是百度招聘的,約我次日9:00或11:00面試,我當然選了11:00的。

次日11:00點準時到達中央飯店,敲門時,一妹子開門,我一驚,第一次遇到一個女面官。女面官人很好,很熱情的招呼我做下,先做了個自我介紹。然後問了下計算機網絡,在瀏覽器裏敲入一個網址,會發生哪些過程、經歷哪些設備啊?這個在美團問過了啊,我劈里啪啦的講了。她中途打斷了我,你說慢點,就深入問了下細節,說傳輸的時候爲什麼要從運輸層到數據鏈路層,路由的詳細過程是怎樣的?路由的詳細過程看過,但真的不怎麼記得,就和她說,這個我瞭解大致的過程,詳細的細節記得不大清楚了。然後問我多進程和多線程用過沒,我說用過,那死鎖聽說過沒?我說聽說過啊。她說那你寫個多進程、多線程死鎖的程序。我靠。。。這怎麼寫啊,心想,平時只懂一些概念啊!憋了一會,不知道怎麼搞,就告訴她:“這個多進程、多線程的API記的不大清楚”。她說:“那你用僞代碼”。這下,好了,我就用僞代碼,表達了下意思,然後給她講了下,她笑了下,就算過了。總之面試中不管遇到什麼樣的問題,即使自己不太會的,也要換個角度,努力下,不要輕易放棄啦!

接下來,就問項目了,把項目的架構講了下,她問:“你這個項目的優點和缺點是什麼啊”,我說:“優點是,數據庫我優化了下,主要是分區優化的”。她說:“怎麼分區的啊”。我說:“按時間分區的,一個月爲單位”;她笑了下說:“你這是南京市的數據,那若是全國呢,你怎麼辦啊,你是不是要按天分區啊?”。然後,她又問:“那麼,在高併發的時候,你怎麼提高效率啊?”。我想了下:“說,數據庫前面加一個緩存,採用數據分片,將大文件分成很多小塊,並行的寫入多個服務器上。讀的時候也可以並行的讀,然後整理成一個文件,這樣把串行讀寫變成並行讀寫,提高效率”。她聽了笑了下,表示認同,然後又深入了下:“若現在是10臺服務器,現在要變成20臺服務器,你設計一種方案,使服務不中斷,不影響客戶”。我說:“這個是數據遷移,現在的IT企業數據遷移一般放在凌晨,儘量減小對客戶的影響,我的方案是,從某一時間點開始數據遷移,讀數據從原來的10臺服務器讀,寫數據寫在新的20臺服務器上,同時原10臺服務器的數據向新的20臺服務器遷移,等到數據全部遷移完畢,所有的讀寫都在新的20臺服務器上”。她說:“那我,寫入新的20臺服務器上,突然又要讀呢,怎麼辦?”。我說:“哦哦,這個忘了考慮,從數據遷移的時刻開始,對寫入新的20臺服務器的數據進行標記,每次訪問數據時,若訪問的是遷移時刻後的數據,就讀新的20臺服務器,否則讀老的10臺服務器”。她笑了,說:“方案可行,實施起來可能還有些問題”,然後笑了笑,又接着深入問了:“那你怎麼保證數據的可靠性呢?”。這個好回答啊,正好看了類似的東西,說:“我看了些集羣分佈式文件系統的知識,這個可以借鑑下,就是多副本技術,數據片在不同的服務器上至少存2個副本,2個副本之間相互同步,若一個crash了,系統會向上report,會重新創建一個副本,這樣可以提高數據的可靠性”。她笑了笑點了點頭。

然後看了看我的筆試題,問了下,你覺得筆試題難不,我說不是很難?筆試有個題目,我有幾種方法,之前只寫了一種,我又把其他的方法和她講了下。然後,她說,筆試考了個memorycpy,你給我寫個strcpy把。我劈里啪啦地很快就寫好了,然後給她看了,並且和她解釋了下,各種可能的異常情況,比如無字符串結束符’\0’,內存區域重疊,內存區域重疊不是很確定,然後和她說:“memorycpy要考慮內存重疊,這個不知道會不會有,重疊了,之前不就會異常嗎”,她說:“你回去好好想想”。

然後MM說,“我的問題差不多了,你有問題問我不?”,我說:“有,我說像我報的軟件研發,在baidu,具體大概做什麼啊?”,MM很熱情地幾乎把她們的所有業務都講了一遍:“從流量、廣告、搜索、支付、團購基本都講了一遍,然後又說,我是做支付的”。然後又問:“還有不?”,我說:“有,以前聽說百度未來主搞人工智能、大數據和雲計算,這次正好遇到了,好好請教下,哈哈”。MM笑了下:“你說的也是的,做人工智能、大數據和雲計算也是做未來的搜索,百度的流量大,自然需要大數據的處理”。看着MM這麼熱情,然後我又問了個問題:“說我對雲計算比較有興趣,之前接觸過一段時間,可以問問baidu雲計算主要做的是IAAS,paas還是saas啊,團隊的規模又多大啊?”。這個還把MM難住了,MM說:“我不是雲計算相關部門的,接觸的不多,這問題,不好回答你啊,不好意思”。我說:“沒事,好的”。MM說:“這次面試,到此結束,你保持手機暢通回去等下通知吧”,我看了看時間,11:50了,肚子餓了,想必MM也餓了,然後說了句:“謝謝您,您還沒吃飯把,您幸苦了!”,然後MM送我到門口,說了彼此說了聲再見,這麼神奇的一面就這樣結束了。感覺很好,聊的很哈皮,這次面試真是我這麼多面試裏最美好的一次。

百度二面

不出所料,晚上8點多,接到百度2面的電話,約好時間是次日上午9點,一大早7點就起了,去實驗室整理了下就騎車去了中央飯店。貌似那天沒什麼二面,好多都是一面的。約好的9點,一直等到10點二面。這次是男面官。上來讓我挑一個項目介紹了下,因爲項目中涉及到網絡的問題。面試管順勢問到,:“網絡序是什麼大端模式還是小端模式啊,x86的本機序呢?知道什麼叫大端模式和小端模式嗎?”。我說:“知道,就把大小端模式的區別說了下”。他說:“那你寫個小端模式轉大端模式函數把”。這個以前還真沒怎麼想過啊,不太確定對不對,想了下就寫了,因爲要求輸小端int,輸出大端 int ,沒深入地想,用了個最笨的方法,用%  / 把int 數據的每個字節都取出來存入數組中交換順序,寫完給面試官講了下,他也沒說什麼。後來想了下,不必這樣用位運算&加移位運算就可以搞定了。和同學討論了下,他提出了一種方法更簡單,共用體union

Class Union

{

 Int a;

 Char b[4];

}

只需交換b中字節的順序,int a 自動大小端轉換了 這個方法好啊。

然後又問,命令執行的狀態怎麼看,我說看$?就可以了。命令執行失敗$?爲1,執行成功$?爲0,然後說通過查看這個值,經常可以把shell腳本寫成交互式的。

然後說你懂shell編程是吧,那現在給你一個日誌文件,文件有3列,分別爲iP,訪問時間,內容。你用shell編程找出訪問量最多的10個IP。想了下,這個用shell還真不會啊,就和面試官說了,我shell一般是配置文件,和自動安裝rpm等,這個要到排序啊,用C++,我會啊,用shell真不會。

那出道編程題把,面試噼裏啪啦在紙上畫了棵二叉樹,說找最低公共祖先。我一看這不是劍指offer上面的最後一題嗎,我想了一下,把幾種方法一一道來,果斷搞定啊。

然後面試官看了下時間,說你有問題問我不,我說有啊,又把一面官的前兩個問題問了一遍,哈哈,其實問什麼問題不重要,重要的是通過問問題表現出我對百度的興趣,和對未來工作的熱情和關心。

百度三面

百度3面大概等了3天,據說是要1,2面都結束,統一3面。3面約定的是上午11點,這次貌似是個boss,很有氣場的樣子,上來遞過簡歷和筆試試卷。他看我的簡歷時,我說,需要自我介紹下不,他說,不需要。好吧,上來就說,你不是計算機系的,數據結構與算法 分析,系統學過沒啊?我說,學過啊,不過是自學的,看了幾遍了。本科和研究生也學過部分計算機相關的課程。還有研究生的一些項目也和軟件編程相關的。然後,他問那你是怎麼學的啊,我說通過看書、看博客、編程實踐、和實驗室的同學討論、還有實驗室的一些項目也正好用到一些,就這樣學的啊。

然後就出了個題目讓我求時間複雜度:

Int i=0;

Int s=0;

While(s<N)

S+=i++;

這個乍看還還不好看出來,我在紙上畫了下,想了下,說時間複雜度是根號N。確實是的,他也認同了。

然後讓我寫了個二分查找,二分查找容易出現死循環,這個當然要注意了啊,其實還有二分,三分,遞歸實現和循環實現,都練習過了,所以很快就一氣呵成的寫出來了。然後給面試官講了下,二分查找有多種實現方式,這裏給出了一種,並且說了應注意的問題。面試官也認同了。

然後讓我做了個邏輯題,100個人,100盞燈,每個人走在燈前,若的燈序號是人號的倍數的,把燈開關按下,之前燈都是關的,問最後哪些燈是開着的。這個題目做過多遍的,只要是燈序號是平方項的,就是奇數次開關燈啊,燈肯定亮着的啊,問題轉換爲看燈號是否是平方項,若是則亮的,否則是關的。

然後問了幾個和技術無關的問題,比如,效率和質量出現衝突,你怎麼解決。他說,比如你老闆交給你個任務,要在某個時間點之前搞出來,但如果保證高質量,就任務就完不成。我說,效率第一,兼顧質量,先保證有,再保證好。說如果在時間節點之前不能交貨,就是事故,要負責任的。但如果,能在時間節點交貨,即使質量上還有些小問題,但後續還可以完善的。如果什麼都沒有怎麼和客戶交代呢。面試官也點頭認同。

又問,在職場交流中,你有什麼技巧啊。我說了相互尊重,分享、交流溝通、幽默感。相互尊重是一切的基礎和前提,然後逐個舉例論證了下,每個人可能會有一些新的想法或接觸一些新的知識,可以和同事分享,這樣慢慢的,團隊的整個實力就會提高。

然後又問了下,你經常在網上看技術文章不,我說看啊,他說在哪兒看啊,我說csdn 博客園,他說,最近看過沒啊。我說看過了,他說,最近看過啥啊,我說看過電商架構,他說,哦哦,那你把電商架構畫一下。我噼裏啪啦就 大概的畫了下,然後,他又問,最上層是負載均衡。那你給我講下,什麼叫負載均衡。我說負載均衡一般在4和7層上的。還沒說完,他打斷了我,說你給我講什麼叫負載均衡就行了。好吧,我說:“負載均衡有兩種,一種是,講海量的訪問iP,導向不同的服務器;另一種是對於重載的單任務,將其分解爲很多小任務,分配給不同的服務器,服務器處理完後,講結構歸併整理,得到總任務的結果。”

最後不小心扯到cdn,面試官又追問了,cdn的英文是啥啊?我靠,這個只知道用途啊,算是給自己挖了個坑啊,後來查了下,是content delivery network 一種智能網絡。

總結:所以面試的時候,自己不太清楚的東西最好不要說,不要挖個坑把自己埋了,還不知道。

5、趨勢科技—>拿到offer

一面

一面一上來問了我1個數據安全的問題,不是很懂,然後問了個http協議懂不懂,我說懂點。他說HTTP協議怎樣保證安全呢?我說,現在不是有個https協議嗎,銀行和企業一般是採用這種協議,s是security的意思。他說,這個協議和http協議有什麼區別啊?我說,https採用安全套接字ssl,鏈接過程需要認證,握手次數多於http中TCP鏈接的建立,要保證安全就必須手續複雜點啊,這個和我們的日常生活差不多啊,便利都意味着犧牲一定的安全性,需要在他們之間找到一個平衡點,還有http採用的是80端口,https採用是443端口。然後這個問題就算過了。

接着給以他們正在做的一個項目爲背景,看我以前參加過趨勢的比賽,就讓我講了下比賽的內容,對趨勢的瞭解。然後出了一道題,讓我寫代碼,說:“我們這邊正在做一個郵件安全的項目,因爲用戶可能不注意把信用卡或者儲蓄卡號放在郵件裏發送出去了,這樣會給用戶帶來很大的潛在安全問題,我們的任務是發現郵件裏的信用卡或者儲蓄卡號,用*替代。現在簡化一下,給你一個string,你檢測下是否有銀行卡號,如有用*替代,若木有,不做處理”

我一聽,貌似不是很難,和面試官交流了下要求,銀行卡號的特徵是:每4個數字一組,一共4組,每組中間用-隔開。然後又問了下能不能用STL啊,他說可以。

這個問題主要是檢測數字,對數字出現的次數計數,對“-”出現的次數計數,判斷是否是信用卡號,若是則用*替代。還有就是考慮異常情況。寫完給面試官講了下,異常情況我只判斷了空串返回,面試官提示了下,你再想想還有哪些可能不是空串也可以返回呢,想了下不知道啊,說可以提示下不,他說如果字符串長度小於16呢,哦哦對了,小於16就不可能有信用卡號了。

接着,面試官又說,那你看看你的程序哪些地方還可以優化啊,我說對啊,如果剩下的長度小於16,且數字計數爲0時,後面的也不用判斷了。面試官說,嗯嗯,我覺得你還不錯,去準備二面吧。

二面

趨勢科技的二面,是2對1,折騰了我將近1個半小時,不過確實學到了很多東西。下面一一道來啊。一上來,讓我講了(項目架構和應用場景)下實習做的東西,cloudstack架構啊,什麼的大講特講啊,然後問了下,這個有哪些應用場景。這個說完了。

接着讓我寫了個strcpy的函數。先用循環寫了。面試官又說,如果不用循環呢?,又用遞歸寫了一遍,遞歸裏用了個static變量保存dst的首地址。寫完面試官又問,如果不能用static變量呢,再寫一個看看,又想了下,又寫了個版本,把return dst放在後面就行了。寫完了,面試官又讓我想想,有哪些情況和場景,strcpy會出現異常呢?我說字符串木有結束符,他說還有呢?我說,字符串長度太長,遞歸調用棧溢出。他說,還有呢?我說,指針有個爲空,或者兩個指針爲同一個指針?我靠,還接着問還有呢?還有dst的內存區域小於src的內存大小,copy時,dst區域空間不夠用,產生越界。那,還有呢?我靠。。。你想咋折騰啊?又想了想,還有dst和src有內存重疊,有一種重疊要從後面向前面複製。然後又解釋了下,這種情況一般不會出現,一般dst和src是用戶new出來的。如果內存不夠,dst就會是空指針啊?然後面試官反駁了下:“誰告訴你,dst區域一定就是new出來的呢?”好吧,不一定是new出來的?“你只管寫strcpy函數,你能控制用戶怎麼用你的函數嗎?”,好吧,我不能,經過這幾輪的轟炸,真的對這一小小的strcpy函數有了深入的理解。還是很感謝面試官的,讓我寫到了好多啊!

接着問,打開電腦,發現電腦速度慢,你怎麼處理。我說,查看任務管理器,kill掉內存或cpu佔用大的進程。他說,電腦還是慢呢?我說查看C盤,清出C盤的垃圾,看看C盤是不是太小了。他說,磁盤爲什麼會影響速度,我說內存一般有個虛擬內存,其實就是將部分硬盤作爲內存使用,若發生缺頁從再從硬盤內調入。內存要和磁盤頻繁交換數據,磁盤當然會影響速度啊。他說,如果清除垃圾,電腦還慢呢?我說是不是硬盤有壞道,或者磁盤接口壞了。再往下真的不知道了啊,哎。。。這個問題就到這兒了。

接着又問了一個,打開瀏覽器,其他的網站都可以上,唯獨新浪網上不了,你怎麼處理啊?想了一下,我說:“是不是設置了代理服務器,代理服務器掛掉了,不對,代理掛了,其他的什麼都不能訪問了,有可能是新浪網是服務器掛了,這時可以看到狀態碼爲500,server error”,他說,如果新浪的服務器沒掛呢?我說,那有可能是瀏覽器不小心把新浪網加入黑名單了,換個瀏覽器試試,排除瀏覽器的問題?他說,如果又不是瀏覽器的問題呢?我靠,想玩死我啊,想了想說,那有可能是在某某單位上網,單位的交換機把新浪網屏蔽了,防火牆把新浪的ip過濾掉了,linux防火牆有iptable可以設置丟棄的ip。問到這兒,這個問題也結束了。

接着又問了個,如果給你兩個host,ping不通,你怎麼處理啊?我想了想說,先看看,這兩臺host的network 服務有沒有打開,若沒打開則打開它。再看看這兩個host的ip是不是在同一網段,是不是同一網絡的,同一個局域網的一般不會經過交換機啥的。如果是不同的網段,使用tracertroute 命令跟蹤源ip到目的ip的中間站點,看看中間經過哪些路由器,哪個站點出問題了,再排查。然後說,這個細節不是很懂,然後他就沒再追問。

然後2個面試官,走了一個,又來了一個新的面試官,我靠,問了幾個關於測試的問題。問我報的研發還是測試,我說研發。然後他說,你覺得研發和測試的區別是什麼啊?我言簡意賅的說了句:“研發偏重深度,測試偏重廣度,然後舉例說了下,測試要懂好多測試工具,還要知道軟件的需求設計測試用例,還要和研發人員溝通,要求知識面比較寬,所以偏廣度。這只是我的看法,不知道對不對”,然後面試官說,你說的有一定的道理,確實是這樣。然後又問了我一個關於測試的問題:“我現在有一個拷貝文件的程序,你打算怎麼測試,能想到哪些場景?”我想了想問:“是linux還是windows下的啊”,他說都有可能。然後我說:“如果在linux下的話,要保證拷貝完畢的文件和原來的文件具有相同的用戶權限和用戶組合讀寫權限,linux下有權限問題,還有整個拷貝過程中不能破壞原來的文件。這是正常情況下,還有一些異常情景,首先,要保證如果拷貝過程中,若認爲取消拷貝,已拷貝的部分要刪掉,源文件要保證安全不被破壞。其次若拷貝過程中,由於斷電、關機、磁盤容量不足等異常要保證源文件安全,同時要刪除已拷貝的部分文件”。然後他也認同了

然後又問了個關於網絡的問題,說你爸媽在家裏上網,突然不能上網了,你在電話裏怎麼解決這個問題。我靠。。。這個奇葩的問題,還真沒遇到啊。想了想,我說先看看網線是不是沒插好,看那個信號燈閃不閃,先保證物理連接好,幸虧哥還是做過一點硬件的,這點還是懂的。然後打開網絡適配器看看有木有獲取正常的ip,說不定DHCP服務器掛了呢。他說,ip正常?那再看看防火牆配置,把防火牆先關掉試試,然後再看看瀏覽器配置,是不是設置了一個不存在的代理,或者瀏覽器安全級別太高了,把安全級別降低一點。他說:“安全級別太高了,會不能上網嗎”,我想了想說,不會,安全級別高只會屏蔽一些不安全的網站,不會所有都不能上啊。他說,那如果你所說的都正常呢?我說,那再看看別人能不能上網,說不定是服務提供商的問題呢。他說我只想考察下你想問題的思路,其實這中間從哪一個過程出現問題都有可能。

好吧,折騰到現在,新來的面試官,問另一個面試官,C++和編程方面的問題問了沒,我滴個神啊,心想,難道還要折騰嗎,親!另一個面試官說都問過了。然後面試官問我,你有問題問我不。我說有啊:“趨勢是外企啊,請問下,在趨勢工作的話,有沒有可能出國啊”,他說可:“他說可能啊,一般是到臺灣、日本、新加坡等”。心想,臺灣算出國嗎?不是祖國的嗎?然後問了下,這個出國的機會多不,他說,這個看項目,如果有項目上的合作,出國的可能性大,我們這邊做數據安全的,有很多和國外合作的項目,出國的機會還是挺多的。

三面

三面是羣面,7人一組,給定一話題,採用正反方辯論的方式,討論問題,然後小組內部相互評論,面試官提問。整個過程1個半小時吧,一個小組3個面試官,全程記錄各個同學的發言和表現。我們小組的話題是apple wath,覺得這個羣面還是挺有意思的,挺鍛鍊人的,反映個人思想、團隊合作、交流溝通能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章