秋招筆試、面試隨感

從九月初打完省賽回學校開始,校招正式批拉開序幕,幾乎天天都有筆試題,每天在學校就是做筆試,看面經,複習知識點。個人的方向是後臺開發,使用的語言是Java/C++都可以,但更偏向於Java。因爲學得可能更多一點吧。

說說筆試題,大概就是20道單選題,10道多選題,2到3道編程題。難易程度各異,但涉及到的知識點大概就是計算機基礎知識(數據結構、操作系統、計算機網絡、數據庫),以及語言特性(C++/Java),在編程題上一般是一些簡單的題目(模擬、DFS、數學、貪心)

筆試題一般呢沒什麼好說的,畢竟各個公司的題目在牛客網上都有,大家可以自己去練習。

對於面試,可能個人覺得這是一件非常非常值得重視的一件事情吧。

個人面試的先列舉一下(按時間先後順序):

比較大的公司:

阿里(提前批一面   電話)
網易(提前批一面   現場)
頭條(正式批一面   視頻)
小米(提前批二面  視頻)
騰訊(霸面一面  現場)
迅雷(正式批二面  現場)
新浪(實習生一面  電話)

一些不出名的小公司:

    二維火(三面   現場)
    實在智能(一面  電話)
    數睿科技(一面  電話)
    揚訊科技(一面  視頻)

先說說大公司的面試。大公司的面試一般不會問很多,五六個知識點即可,然後必問的就是一道算法題。這個由於投的崗位不同,以及面試官偏向的工作方向不同,會使得問的東西也有所不同。

下面我仔細舉幾個例子講講吧

一般來說,對Java這一塊,基礎一點的會問問JVM的結構、GC回收機制、併發引起的問題、內存泄漏的問題、幾種異常產生的原因以及集合中的一些容器比較等等,框架的話會問問Spring的AOP和IOC機制、Bean的生命週期以及Spring中使用的代理的方法、使用了什麼設計模式、Hibernate的二級緩存、MyBatis逆向工程以及#和$的區別、SpringMVC的整個流程、常用註解以及前後端參數傳輸的問題;

對C++這一塊,因爲我投的也不多,經歷不是很足,涉及到的問題也就是Vector擴容、虛函數、虛函數表、內存管理等等;

在數據庫方面,基礎一點的會問到ACID、索引、四種隔離級別以及不設置隔離級別會發生的四種問題、三個範式、兩種引擎、悲觀鎖和樂觀鎖等等,若要深入的話會問問索引的內部結構中B+和B樹的區別、兩種索引存放的位置、Innodb和MyIASM的比較、數據庫優化的幾種方式以及X鎖和S鎖等等;

在計算機網絡方面,基礎一點的就是TCP和UDP的區別、三次握手、四次揮手、HTTP和HTTPS的區別、GET和POST的區別等等,深入問的話就會問一下HTTPS如何提高效率、擁塞控制、滑動窗口、DNS域名解析、在網址上輸入www.baidu.com會發生什麼等等;

在操作系統方面,沒有問的很深,主要是知識點比較散,需要多看書多積累,和你的擅長的語言結合起來問,比如說問線程和進程的區別、線程之間的通信方式、進程之間的通信方式、手寫一個死鎖、在Java中線程從啓動到終止的狀態圖、sleep和wait的區別、可重入鎖和synchronized、阻塞非阻塞和同步非同步的問題、爲了讓線程安全單例模式中懶漢式應該如何改寫、volatile關鍵字等等

然後就是數據結構方面的了,如果說前面的一些可以平時通過短時間惡補暫且能回答上來一些的話,那麼在數據結構這裏是行不通的。一般來說,大公司問的數據結構是必須要你手撕代碼的,比如會問紅黑樹的增和刪、手寫一個平衡二叉樹、手寫dfs遞歸判斷是否是平衡二叉樹、手寫普通樹的層次遍歷、手寫大頂堆、說一說快速排序和歸併排序的思想、寫一個圖的bfs等等

在算法題上面,因爲我簡歷上多一些ACM經歷,而且沒有項目內容可以嘮嗑,所以可能在做算法上面問的比較多吧。像我碰到過的算法題,我可以簡單描述一些,如下:

1、二分查找的過程中,如果數組中存在多個相同的數據,在查找函數中返回第一個位置和最後一個位置代碼上有什麼不同;

2、一個人一次可以走一步,也可以走兩步,走到n(大數)階可以有多少種方法,答案對1e9+10取膜;

3、從一組很大的數據中,找出那個出現次數超過一半以上的數;

4、一個人一次最少走n步,最多走m步,走到k階可以有多少種方法;

5、一個n*m大小的圖,限制1000*1000,從任意一個指定的點(x,y)出發找到最長遞減序列,如果可以,請寫出任意一種序列的答案;

6、一個容器爲x個單位的杯子和y個單位的杯子,要取K單位的水,寫出倒的過程;

7、12個球其中有1個質量不同,最多稱幾次可以找到那個球,並且判斷是輕了還是重了;

最後的話,還有些公司喜歡問場景題目,比如說:

1、10GB的數據如何從你的電腦上傳到服務器上,支持斷點續傳;

2、從兩個不同數據庫上面抽取兩個表的相同字段,字段已經排好序了,抽取合併前20的數據,SQL語句如何寫;

暫時記得的就這麼多了。

感觸:這一個月的筆試面試,對我最大的感觸就是,感覺好像知道了自己很多的不足。像我們平時在大學裏面的課堂上講的計算機方方面面的基礎知識,其實是很重要的,需要重新拿出來好好打好基礎。其實在做開發的時候,更多的不是寫代碼,而是看代碼,看書,交流溝通。

怎麼說呢,其實每一次大公司面試官面完我之後,都會有大概十幾分鐘的扯淡,而這些一針見血地評價你的扯淡,可能恰恰就是你以後行路的方向燈;

學無止境,有了基礎,才能提升。

基礎的積累,真的是需要靠一點一點的學習時間去用功的;

加油吧,最後祝大家早日找到好工作(PS:雖然我現在還沒有找到工作,但是感覺好像心裏也不那麼急了,感覺像我這種人頭鐵能去參加這麼多面試,已經很幸運了,不敢再奢求更多)

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