一、前言
筆者是2021屆畢業的本科生,計算機科學與技術(網路空間安全)相關方向,學校還可以,面試程序中從沒有因為學校被掛簡歷或者審批不通過,沒過的都是技術不到家,
本文將從心態、專案、基礎知識、手撕代碼、面試經驗等方面介紹,以期給讀者一點幫助,
二、經歷
筆者是打算兩手準備的,也就是2020年前期找作業,后期準備考研,這樣做風險很大,如果沒有找到合適的作業勢必會耽誤考研,因此大家最好能在最早的時候有一個清晰的規劃,或者大二就開始投遞實習,或者大二就準備考研留出大三實習,筆者見到的很多超級offer都是這樣誕生的,
面試主要考察專案、基礎知識、手撕代碼,
另外還有心態、職業規劃、是否吃苦耐勞等,一般比較好準備,
1、投實習(無果)
筆者開始的很晚了,打算投遞實習的時候各大公司已經錄取到了尾聲,報錄比從4:1到了7:1,沒有辦法,不能先拿小一點的公司汲取一點經驗,硬著頭皮報大公司,實習的時候報了美團、華為、位元組,紛紛掛在了1、2面,后面聯系學長投遞的網易和騰訊直接沒敢去,
每次失敗都應該有反思,或者叫復盤,筆者發現自己的主要不足在于手撕代碼寫不出來,現在想想也是,一共做過30道力扣怎么秒題?接下來的很長時間都在刷題,集中在leetcode熱題100道、劍指offer原題、牛客在線編程中的熱題等,前后刷了300多道,面試的時候就好多了,基本力扣簡單和中等的題目都能秒,至于困難級別的題我基本沒遇見過,遇見我就認栽了,沒什么好說的,
2、提前批
后來提前批來了,投遞了很多公司,很多沒過,有的因為已經有了更好的沒去,
這里介紹一下筆者心中各大公司面試的題目和面試風格,以及題目,至于專案和基礎知識放在后面介紹,
(1)vivo,(掛)
性格測驗掛,筆者自認性格還行,搞不懂,
(2)網易(互娛一面已過,約二面)(三大部門分開投)
網易后臺開發對學歷和語言要求比較嚴格,因此筆者主要投遞了測驗開發,因為與筆者的python比較接近,
筆者問到的比較偏基礎,例如服務端的時候問python的“+”多載,形如“init()”的函式、python裝飾器,網頁前后端互動(主要是因為嘴欠提了句ajax被瘋狂問,筆者說了不會還是問、然后二面就掛了、后悔)等,演算法考察了迪杰斯特拉、最長遞增序列等,
面測驗開發的時候還問了測驗網易云音樂這個軟體,其實測驗什么東西都是大同小異的,主要把功能、性能(包括壓測)、界面、兼容、安全、可用性這幾個方面答全并簡單舉例,推薦牛客的測驗工程師面試寶典,很棒也簡潔,
最后筆者考慮應該是掛在基礎上了,后來惡補了python基礎,
(3)百度(意向書)
投遞了測開,面試體驗非常好,在筆者體驗中與美團并列為體驗最好的公司,不會的知識會提示,筆者甚至覺得,即便不通過也是值得的,
知識偏開發,只在二面的時候對手撕代碼要求設計測驗用例,
演算法有:不使用第三個變數進行兩個數字的交換、判斷回圈鏈表、快排(最好非遞回實作)、給定一個整數陣列要求只使用每個元素一次拼接成最大的數、第一個重復的字符、大數乘法、字串壓縮、三數之和等,難度中等,
(4)華為(通過)
軟體開發崗,知識和專案比較通用,難度尚可,
演算法:二分求平方根、使用原字串中的字母拼成盡可能多的新字串、給定的幾個十進制一位數中拼出最小的目標數的整數倍,
(5)拼多多(一面掛)
沒想明白哪里不對,演算法是二分,筆者寫出來之后給面試官介紹了半天,面試官最后說應該對,,可能是講解的時候態度不夠好?
(6)美團(HR面后等通知)
后臺開發崗,面試體驗極佳,不會也不覺得尷尬,善于引導,
行程間通信,三次握手與四次揮手等,
演算法:鏈表拆解成二叉樹、最大連續子陣列和、還有兩個比較簡單的記不得了,
(7)位元組跳動(通過)
后端開發崗,這我真得說明一下,我面了三輪,一共七面才進去,社區里面還有面了十多面才進去的,為什么呢,手撕代碼比較難、HR瘋狂撈,撈起來面,面完掛,掛了再撈,真滴可怕,
演算法:十六進制數加法、快排非遞回、三數之和(要求n2復雜度)、兩個數字之間的所有數字258出現的次數(最好不能遍歷,用數學分析)、陣列求一個峰值(不能遍歷,最好為logn復雜度),五花八門,筆者建議沒有好思路的時候先把笨辦法寫出來證明代碼能力,比什么都寫不出來強,說不定就能過,
(8)騰訊(掛)
筆試5道A了4道,但是據說面試很考基礎,筆者基礎知識掌握不太好,基本不報能過的希望,
(后補:)果然,筆者基礎不好,尤其是C++基礎不扎實,致命傷,面試的時候顯然面試官對我的專案不太感興趣,怎么說都是“哦,還有嗎”,加上現在也是秋招末尾了,20分鐘,沒給做題就掛了,還是有點難受的,建議大家好好準備C++,春招的時候再投遞爭取過了,
(9)京東(掛)
第一次:之前實習投過,秋招邀請投遞簡歷,投遞以后簡歷不合適,給兄弟整蒙了,
第二次:會java嗎,不會,為什么來測開?可能沒說好,一共聊了不到15分鐘,掛,
不能和東哥做兄弟了(哭),
(10)海爾(通過)
你能來公司做什么?用過什么演算法?只是聽過還是真的用過?
兩面一共40分鐘,過,
(11)快手(掛)
TCP擁塞控制和流量控制各自的目的?測驗朋友圈點贊功能?
測驗知識掌握不到位?掛,
(12)浪潮(已拒)
一面機器人面試,不太喜歡,另外當時百度基本已過,沒再往下走,
(13)猿輔導(掛)
不愧是今年白菜價40w+的公司,筆試很難,筆試即掛,
(14)嗶哩嗶哩(二面后等待)
筆試過于簡單,一半人全A,
一面面試官魔鬼,讓我寫了6道代碼,后兩道比較難,但是恰巧做過所以都做出來了,
二面超大量資料亂序(筆者專案中做過,有興趣的可以翻翻之前的博客),
據說今年招人不多,估計夠嗆,
3、秋招
秋招大概就不投遞了吧,上面許多介紹也是正式批的,
這幾個月筆者要開始準備考研,干就完了,
三、主要內容
1、心態
同學之中總有大神,還有的同學保研成功了,社區里也不乏offer收割機,這時候我怎么辦呢?
認真準備,有效努力,知識必須能寫出來、簡單-中等題目必須能做出來,提交正確才算會,
不必羨慕,明珠上的人很多,你不斷的進步,只會越來越近,
筆者找作業的時候被拒絕了很多次,但筆者始終有一種盲目的自信,每次面試都有識訓,都有針對專案或者知識或者題目的短板被補上,也算不虛此行,相信下次不會再在這里跌倒,知識盲區越來越少,很快就能通過面試,
面試的時候最好錄音,方便以后復盤,尤其是位元組跳動,非常喜歡考察之前面試官掛你的地方的知識你補齊了沒有,
2、專案
這個因人而異,但是寫在簡歷上的一定非常數量,并能對每一點做一定的擴展,例如筆者專案中用mongo資料庫加快速度,做的時候沒想那么多,面試的時候面試官幫我想了好多,淚目~
比如為什么選mongo,棄用了mysql:答:b樹相較b+樹快以及兩種樹的基本原理、專案中很少使用段查詢、記憶體映射機制、高可用(主從和投票機制)等,
說實話,人家不問,我真說不出來,問了幾次之后再被問的時候就比較從容了,
3、基礎知識
選擇一門好的語言還是很重要的,尤其是應用比較多的JAVA,C++,像筆者的python:
(1)只是在寫題的時候占優勢,因為寫起來簡單,但是運行速度慢,有的題目同樣的思路C++能通過,python兩倍時間也過不了,
(2)問到基礎知識的時候,比如多型及其實作細節、左值參考和右值參考、垃圾回收這些,是,python可以實作,但畢竟不是那種直接面向物件的語言,平常很少用到這些機制,就比較難回答,
建議時間充足的同學好好學學C++或者JAVA,
話說回來,這就是簡單的代價,優秀的程式員寫好了你直接用,和自己寫一遍這些機制是完全不同的,還是不能偷懶,好好練習一下,
不同公司考察方向區別較大,建議在牛客上多讀幾篇相關公司相關崗位的面經,解答他們的問題,幫助很大,
比較多的通用考點我這里羅列一下,方便大家查看,
測開相關崗位:
1、對你寫的代碼寫測驗用例,
2、測驗某個軟體或者這個杯子,
開發:
1、快排,普通快排->原地快排->非遞回快排,考察極多,
2、topk問題,主要考察堆排序,
3、紅黑樹及其插入洗掉元素,大概能說即可,
計算機網路
2、TCP和UDP的區別、應用場景,
3、TCP擁塞控制、流量控制及其對比
4、OSI七層模型,中上層中的代表協議,
5、url輸入到顯示網頁經歷了哪些程序,
6、http狀態碼,
7、TCP三次握手與四次揮手,timewait狀態,為甚是三次握手不是兩次,
8、TCP可靠連接的機制
資料庫:
1、mysql資料庫的兩大引擎及其對比,innodb的特點,
2、非關系資料庫和關系型資料庫的對比,
3、資料庫四大隔離級別,
4、臟讀、不可重復讀、幻讀及其原理,如何解決,
5、ER圖設計資料庫,
6、sql陳述句,
作業系統:
1、虛擬地址與物理地址映射,段頁式
2、行程有哪些資源
3、行程間通信(IPC)
4、死鎖的形成條件,如何避免,
語言相關,以python為例:
(1)python裝飾器
(2)生成器
(3)is和==的區別
(4)運算子多載
(5)建類,實作鏈表
(6)=號,深淺拷貝,
(7)可變物件與不可變物件,
(8)python中面向物件的實作,
,,,python建議學習廖雪峰的python教程,免費快捷
C++選手推薦牛客的C++工程師面試寶典,也很棒,
4、演算法
演算法主要靠自己刷題,而且非常重要,寫不出來基本就涼了,
推薦leetcode、牛客各大公司各大崗位熱題(很多公司都是用牛客的線上編程系統進行考核,至少應該熟悉)、劍指offer題目等,
大概有個標準,leetcode上面簡單題應該秒,中等的題也能秒(雖然不一定是最佳思路),但是一定看看最優的思路學習一下,
大概刷到400道題就比較穩了,筆者刷了300多道,基本能應付面試,但是偶爾會被問住,這個越多越好,對思路的掌握越純屬,不是單純的蒙原題啊,那太難了,需要讀者自己把握刷題和知識的平衡吧,看面試的時候哪方面比較欠缺,
5、HR面
比較偏重性格和規劃,主要這么幾點吧,讀者自己選擇
1、積極樂觀,
2、吃苦耐勞,接受加班
3、認同企業文化,最好能提前了解一下,
4、為什么選擇這個崗位?你做這個崗位有什么優勢?這個最好學習下別人怎么說的,你會發現同樣的想法,人家說出來就那么有條理那么好聽,還是比較重要的,
(ps:筆者京東一面15分鐘掛估計就是職業規劃沒說好,人家明顯不愿意聽了就結束了)
5、其他offer?如何選擇?
6、小技巧以及注意事項
筆者經歷,千人千面,擇優選用,
1、面試錄音,事后復盤,
2、對于自己準備好的比較有亮點的地方,在自我介紹的時候一定要引匯出來,給面試官一個一聽這里就可以問一下考察一下的感覺,這個非常非常非常有用,
3、另外遇到不會的問題的時候,可以打打擦邊球,回答另外一個比較接近的問題來拖延一下時間回想一下,比較和善的面試官就不會再往下問了;如果面試官一定要問,不會就直接說不太了解,同時往自己熟悉的領域引導,切忌現場造輪子胡說,態度誠懇一般沒什么問題,
4、面試官說時間就到這里的時候,如果你還沒寫完,有思路說完思路就結束,不要拖時間,浪費人家的時間,即便做出來大概率還是不過,
5、有思路即便不是最佳也要寫出來,表名代碼能力和思考的程序(即邊寫邊說),
6、禮貌熱情不做作,有時間可以了解下部門業務,
7、薪資爆料可參考公眾號offershow,最好作為了解,切勿將這種爆料作為談薪依據,因為面評不同,拿別人的offer來求公平會很傻也沒什么用,據說談薪一般需要其他公司的offer來談比較管用,但也不排除有的公司不給什么談判的余地,需要自行了解,
8、非常非常非常重要的一點是,早報早上岸,早報早上岸,早報早上岸,招聘開始和招聘末尾的難度差距很大,招到最后基本大家都招滿人了,除非你非常優秀,否則是不好過的,有提前批就走提前批,招聘一開始就報上,真就是特別占便宜和特別吃虧的區別,話至于此,望重視,
四、后記
如有疑問或補充,歡迎留言,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41741.html
標籤:其他
上一篇:小甲魚筆記:資料結構——線性表(一)線性表的順序存盤結構,線性表順序存盤結構的增,刪,插入元素操作
下一篇:實戰位元幣腳本編程(1)兩段
