面試雜談之我的秋招求職之路


昨天正式確認了百度的offer,宣告着我的秋招正式結束了,雖然我的秋招還算是比較順利,沒有他們所說的那樣痛苦不堪,但是我還是想把我面試過程中經歷的面試題目共享出來,供大家參考,秋招面試的難度整體上要比實習略難一些,不過只要認真准備的話,我覺得還是很容易拿到心儀的offer的,下面我將給出我秋招面試過程中經歷的所有面試過程,僅供參考。

美團點評篇

后台開發工程師,Java開發。

美團點評是實習轉正,整體難度並不難,下午三點安排在美團B座7樓面試廳進行面試的,一個酷酷的程序員小哥哥面試的,首先介紹的是我實習這幾個月做的東西,以及遇到的一些困難。在面試過程中,會對你實習中遇到的困難和挑戰各種深問,建議這個題型還是要多准備准備。畫了項目的架構圖,以及實現的技術的一些細節,基礎也問了一些,比如計算機網絡,三次握手,TCP擁塞控制和流量控制,數據庫的索引機制等,最后出了一道算法題,三數之和,這是LeetCode的原題,可以參考我的這篇博客:

https://www.cnblogs.com/DarrenChan/p/8871495.html

百度篇

數據挖掘和機器學習研發工程師,大數據架構方向。

百度是7月31號面試的,印象比較深,當時還在美團實習,內推了百度提前批,就通知31號下午去百度科技園面試,當時也沒想着一定可以過,就打算去試試,於是中午請假過去了。在路上還在看面試相關資料,因為之前確實沒復習,就想着聽天由命吧。到了百度,去早了,就在樓下待了一個小時,兩點才被叫進去進行面試,面試地點還是一個不錯的會議室,一共進行了三面。

我遇到的百度的套路是上來先自我介紹,大概說一下個人情況,面試官就問,你數據結構和算法怎么樣,我說還不錯,然后直接開始做題,印象里一下做了四道算法題,都是在紙上手撕代碼,是算法都做出來之后才進行的后面的面試,我在想如果我算法沒做好,很可能就謝謝再見了。四道算法題目不是很難,主要還是考察思維邏輯和基礎吧。

快速排序,基於單鏈表實現(傳統的前后指針的方式實現起來比較困難)
給定無序數組,查找中位數(基於堆排序)
撲克牌第一張放桌子,第二張放到最后,第三張放桌子,第四張放在最后,以此類推,求最后桌子上上1到k,還原原來的撲克牌什么樣
完全背包問題

 

第一題可以參考我的這篇博客:

https://www.cnblogs.com/DarrenChan/p/8807112.html#_label0_1

第二題的解題思路是:

首先將數組的前(n+1)/2個元素建立一個小頂堆。

然后,對於下一個元素,和堆頂的元素比較,如果小於等於,丟棄之,接着看下一個元素。如果大於,則用該元素取代堆頂,再調整堆,接着看下一個元素。重復這個步驟,直到數組為空。

當數組都遍歷完了,那么,堆頂的元素即是中位數。

思路有了,實現起來還是有一定復雜度的,要多注意。

第三題第四題都是常見題,第四題可以參考我的博客:

https://www.cnblogs.com/DarrenChan/p/8734203.html#_label9

剩下的就是考察一些常見知識點了,包括基礎知識和框架的,大致如下:

介紹一下kafka分區,內部原理
介紹實習項目,具體
Hashmap原理
設計一種存儲數據結構,使得類似於pandas那種取數據
介紹大數據框架體系,流式處理流程
流式處理流程
裝飾器模式,接口和抽象類區別如何設計
maven打包流程,如何打出類似tomcat的數據結構
說項目和項目難點
介紹百度信息流推薦
自己最大的優勢
遇到哈希沖突怎么辦
NLP相關知識,智能問答
推薦算法介紹,協同過濾

 

百度一面二面三面是在一起面的,面完就直接給我要了身份證號,說應該沒問題,哈哈,就這樣確定了百度offer,還是挺幸運的。

映客直播篇

數據研發工程師,離線大數據處理。

映客直播是一個中午面試的,吃了飯,就順便過去了,因為當時在美團實習,而映客就在望京附近,特別近,騎自行車過去的。映客沒有自己的樓,是一個大廈里面,進去還得登記。上去了感覺里面裝修還不錯,有個很大的貓頭鷹,等了一會,面試官就來了,剛來感覺人挺嚴肅,聊了一會感覺我會的挺多,就跟我扯了點別的,哈哈~問的東西不是很難,比較基礎,當然也手撕代碼了。

自己實現多線程MQ,用數組實現隊列,保障數據安全性加鎖
說一下mapreduce的shuffle機制,map階段是快排,reduce階段是歸並排序
說說產生數據傾斜怎么辦,優化措施(重寫partition,加上負載因子,再次哈希)
什么情況下會產生數據傾斜,比如group by,join,count(distinct)等
寫SQL語句,左連接關聯查詢
寫500億top 10問題,寫hive
問我會不會執行到order by語句
線程有哪幾種狀態

 

數據傾斜問的很多,大家可以總結一下,參考這篇博客:

https://www.cnblogs.com/DarrenChan/p/9431427.html

就面了一面,面試官對我的評價還不錯,面試完就讓我過去先實習,我說實在抱歉,還在美團呢,而且得先回學校做畢設,他說他們比較缺人,希望我快點過來,我說實在抱歉,他們就說沒事,等12月份還可以再聊聊。

阿里巴巴篇

數據研發工程師,實時計算。

還是想說,阿里真的面試時間太長了,總共得一個月,算上加面,經歷了六面。除了一面是現場,剩下的都是遠程電話面試,雖然中間拉了很長時間,不過好在最后也拿到了阿里offer。

當時也是八月份,阿里北京這邊組織了一個夏令營,因為也在望京,而且是美團旁邊,我就過去參加了,上午扯了好多阿里有多牛逼,下午就開始面試了,這只是一面,估計是為了挑選候選人吧。我是最后過去的,我去的時候都沒多少人了,然后跟我的一面面試官大概談了談,主要是了解一下,面試官人很好,后面也幫助了我很多,很感激他。主要問的是實習經歷和項目經歷,然后問了下對大數據體系的看法,一面還是很簡單的。

從二面開始,就變得難了,問的開始越來越深了,各種基礎知識問的越來越多,果然符合阿里的作風,阿里就是特別重視基礎,而且各種知識點要求也很高。

算法最長重復子串
說一下成長最快的收獲最大的項目
分布式緩存的負載均衡
session共享
一致性哈希算法
離線hadoop原理,寫文件流程,什么時候都返回成功,說項目
實時storm和flink原理,編程模型,說項目
Top k解決方案
如何數據去重,set在內存宕機怎么辦
你了解的hbase按照列存儲和關系數據庫行存儲區別
並發方案,針對優酷世界杯
lock和synchronized區別
兩個線程交替打印字符串
實現NIO模型,怎么設計
如何涉及分布式可靠的消息隊列,怎么保障
職業規划

介紹實習項目,mafka如何保障消息不丟失,發送一次
介紹離線大數據項目,數據處理用hive的場景
介紹課題項目,redis應用場景,存儲方案
Storm編程模型
Python2和3的區別,多線程咋回事
Hive如何防止數據傾斜,對Hive的理解
MapReduce,map階段,reduce階段,combiner階段
Yarn階段介紹
集中在同一個reduce,分桶
Hashmap,Hashtable,concurrenthashmap
數據庫建模
Hive分組取top k請求
如何處理url
數據倉庫
數據庫索引

 

建議要是面試阿里的話,先要把基礎知識都要認真過一遍,不然很容易被虐,哈哈,阿里算法也會考察,不過感覺沒有百度頭條那么多,相反框架原理啥的,Java基礎啥的反而問的比其他公司更深。

猿輔導篇

服務端開發工程師,Java方向。

這個公司是聽同學說的,貌似給錢很多,就去試了一下,感覺這個公司特別重視算法。人文關懷很棒,去了有免費的零食和水果,大家坐在一起吃東西,叫到誰誰就去面試,一共經歷了兩面。第一面上去大概自我介紹完,就直接寫算法,因為我寫的比較快,就多寫了一道題,當時沒用遞歸的方式,結果面試官看我的代碼看了好久,說寫的太復雜,哈哈~二面面試官是經理級別的,說普通話不標准,感覺不太懂大數據,他讓我介紹項目,我說了個大數據的項目,感覺興趣不大。后來就全程在寫一道ringbuffer的題目,猿輔導的面試題目如下:

自我介紹,說一下項目
JVM問了一些,JVM模型啥的
HashMap原理,底層
線程池的內部實現原理
Top K問題
負載均衡問了一些
一增一減兩個鏈表合並
最長回文子串
兩個變量實現ringbuffer
Hadoop讀寫文件過程
最大問題和挑戰

 

ringbuffer那道題是環形隊列,即采用兩個變量判斷隊列為空,判斷隊列為滿。可以參考我的博客:

https://www.cnblogs.com/DarrenChan/p/9535557.html

騰訊篇

后台研發工程師,C++和Java方向。

騰訊先是騰訊雲,存儲方向的部門面的,全程在問C++,我說明自己很久不用C++了,面試官開始問我很多基礎,不過當我說到Java一些術語,面試官一臉懵逼,他說的一些術語,我也一臉懵逼,就這么尷尬了一個小時,哈哈,不過算法題和基礎知識答得還不錯。

字符串判斷包含
判斷一棵樹是不是另一個子樹
大頭傳輸和小頭傳輸
三次握手,滑動窗口
epoll,select模型
TCP和UDP
Linux top和ps
操作日志的一些指令
紅黑樹
SortSet
進程通信的方式,哪種方式速度最快

 

后來部門轉到了TEG,直播方向,這次是Java,全程很順利,面試官的問題基本答得都不錯。主要是Java相關的技術,包括JVM,還有hashmap原理,1.7和1.8的區別,字節移位,主要涉及一道bitmap的題目,可以參考這篇博客:

https://www.cnblogs.com/DarrenChan/p/9549435.html

AiBee篇

算法工程師,機器學習方向。

AiBee是一個創業公司,主要是搞AI的,好像創始人是原百度的高管。當時看到群里有人內推,就過去了。但是感覺面試安排的不合理,過去了之后,hr說面試官在開會,在那里等了一個多小時,面試官才來,都快中午了,就草草問了兩道題目,就結束了,整體的面試體驗不是很好,不知道別人什么感受。

KMeans,手動實現算法
判斷一個點是不是在三角形內部,寫算法
查找含有某些關鍵字的進程,一起殺掉(linux指令)

 

宜信大數據創新中心篇

大數據研發工程師,分布式計算。

自我介紹,詳細介紹項目,主要是美團實習項目,然后畫項目架構圖。

五道編程題目:

1.設計一個數據結構可以存儲一組整型數,並且能夠O(1)時間查找中位數和O(logN) add操作。

本來想的是采用map的結構,最后其實是采用堆進行存儲,在Java中可以看一下PriorityQueue,內部是采用堆進行實現的。

2.

中序遍歷,存儲根節點到每個葉子節點的路徑。

3.求平方根,兩種方式。

# 輸入:整數 n
# 輸出:n 的平方根
# 精度 10^(-5),定義域:實數

(1)二分法

public static double sqrt(double t, Double precise) {
        double low = 0, high = t, middle, squre,
                prec = precise != null ? precise : 1e-7;
        if ( t < 0 ) {
            throw new RuntimeException("Negetive number cannot have a sqrt root.");
        }
        
        while ( high - low > prec ) {
            middle = ( low + high ) / 2;
            squre = middle * middle;
            
            if ( squre > t ) {
                high = middle;
            } else {
                low = middle;
            }
        }
        return ( low + high ) / 2;
    }

(2)牛頓迭代法

public static double sqrt_ ( double t, Double precise) {
        double x0 = t, x1, differ,
                prec = precise != null ? precise : 1e-7;
        
        while ( true ) {
            x1 = ( x0 * x0 + t ) / ( 2 * x0 );
            differ = x1 * x1 - t;
            
            if ( differ <= prec && differ >= -prec ) {
                return x1;
            }
            x0 = x1;
        }
    }

(4)兩數之和為定值

參考:https://www.cnblogs.com/DarrenChan/p/8871495.html#_label0

(5)遍歷一遍用兩個指針實現刪除倒數第k個單鏈表節點

class Node{
    int val;
    Node next;
}

public void delete(Node head,int num){
    Node p1 = head;
    Node p2 = head;
    int index = 0;
    while(p1 != null){
        p1 = p1.next;
        index++;
        if(index > num){
            p2 = p2.next;
        }
    }
    if(p2.next == null){
        p2 = null;
    }else{
        p2.val = p2.next.val;
        p2.next = p2.next.next;
    }
}

三面過了幾天,上來同樣是介紹項目,自我介紹一系列,感覺宜信的面試過程沒有過於重視基礎知識,主要還是圍繞算法展開,最后同樣來了一道算法題,求若干個線段的最大重合個數,可以詳見我的另一篇博客:

https://www.cnblogs.com/DarrenChan/p/9688175.html 

宜信的面試比較注重算法,尤其是研發崗,按照同一個模式進行面試,具體到大數據開發還是Java開發等,都是去了以后再進行分配,整體來看這個公司的面試還是有一定難度,公司在互聯網金融也有一定前途。

快手篇

大數據研發工程師,實時計算。

快手是有一個學長內推的,遠程面試的,整體感覺不是很難,感覺快手最近如日中天,這個公司還是不錯的。有感興趣的小伙伴可以考慮加入,快手比較重視基礎,問的東西和阿里有點類似,總體來看還是偏難的。

印象里面的面試題如下:

快排
SQL,統計第二天重新登錄的人的個數(和第一天相比)
Hadoop原理
網絡,操作系統常見題目
2.5億個數全排序
項目,top k
JVM內存模型

華為篇

大數據研發工程師,方向隨機。

因為之前實習過了華為,沒有去,所以通知只需要參加一輪終面即可。因為自己被選入了華為的一個“領鷹計划”,最后簽約的時候還給漲薪了,當然最后沒有簽華為,覺得華為還是不錯的,可是我還是想去互聯網公司。華為面了一面,這次主要問了問項目,基礎知識也問了一下,反正不難,跟聊天似的,華為校招看學歷,看來國防科大的牌子還是挺有用的,面試題想不起來了,總之,挺簡單的,主要是聊為主,面試官人很好。

寫在后面的話

有幾個公司,筆試過了沒有面試,比如頭條,第四范式,搜狗,搜狐,主要是后面要准備答辯了,沒有那么多時間了,不然還是想好好准備,面試一下。

總之,秋招面試算是結束了,這一年,是我記憶深刻的一年,通過面試,我的水平提高了很多,希望去了公司還能好好努力,下一次,爭取可以面試別人,嘿嘿~還沒找到工作的小伙伴,加油哈!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM