秋招總結

博主簡介:

ACM鐵牌,只有邀請賽銅,暴力杯這種獎。項目也就libco,幸虧意識好一點加運氣,拿到了還不錯的offer。

最終結果:

9月
公司 進度
海康威視 一二面 offer到手
東品遊戲 一二面 offer到手
歡聚時代 一面掛
美團 一面掛
字節跳動 一面掛
騰訊 一面掛

從這裏就可以看出來博主賊菜了。。所以9月下旬瘋狂看面經補基礎知識。

10月

大概是轉運了。

公司 進度
帆軟 一面 offer到手
拼多多 一二面hr面 池子裏面泡着
奇安信 一二面hr面 池子裏面泡着
像素軟件 筆試+面試+hr面 池子裏面泡着
銷售易 一二面 後續估計涼
吉比特 一面掛
58 一二面掛
網易互娛 一面掛
高德 一面掛

面經:

之前寫過的就貼鏈接,沒寫過的就儘量寫一寫,10月的面試,人心態容易崩。

9月份的吐槽:

海康威視:
C++軟件開發

現場面 一面:技術面 30+
全程看簡歷懟項目,沒問基礎知識。項目寫的作用優點,爲什麼?爲什麼需要這個東西?有沒有驗證過?校園經歷有什麼收穫?編程題:手寫代碼,二叉樹中找到10的節點並輸出路經。dfs加棧。如何找最近的10節點?bfs加回溯。

現場面 二面: 綜合面 20+
講一下項目做了什麼?以及hr常見問題,四級,女朋友,日常,意向薪資,工作城市等等。

東品遊戲:
cocos_2d開發 語言c++

現場面一面:技術面 30+
因爲是做遊戲的,我沒相關技能點,就很尬。
b+樹 紅黑樹 map和set區別 epoll 智能指針 vector和list 剩下相關一律不會。

二面:hr面 20+
實習時間 技術棧 還有一些常見問題。

歡聚時代
c++後臺

現場面 一面: 技術面 20+
問得很快,當時早上跑了1000米,人都廢了。回答也很隨意。
自我介紹 算法簡介:動態規劃 分治 紅黑樹優點 窗口n 虛表靜態 epoll sleect sort內部實現 以及修改靜態庫或者動態庫的源文件會不會有影響。

美團:
後臺開發

視頻一面:技術面 50+
https://blog.csdn.net/practer/article/details/101074810
吐槽一下牛客網的網頁寫代碼,面試官還要你能編譯運行。真的難頂。

騰訊:
後臺開發

電話一面:技術面 50+
https://blog.csdn.net/practer/article/details/101068645
第一次面試,回答問題的時候沒經驗,就很尬。

字節跳動:
後臺開發

視頻一面:計數面 50+
自我介紹 經歷 線程進程區別 線程通信方式 互斥鎖?如何優化? 堆插入 流中輸出中位數
結束後2分鐘代碼運行正確。再次吐槽牛客網頁寫代碼。

10月份的吐槽

因爲9月份的基本都不滿意或者拒了。所以10月處於沒offer的狀態。建議還是多看面經,多記。有時間還是多看看書。

帆軟:
後臺開發

電話一面:50+
自我介紹 linux 數據結構 計算機網絡 操作系統 基本都有問到,估計不太用c++ 所以基本沒問c++ 回答的也都還行。
隔天hr就oc了。效率真快。秋招末期流程走的快。

拼多多:
後臺開發
拼多多基本都是微信電話面,然後代碼題髮網頁寫。

電話一面:40+
自我介紹 懟項目 紅黑樹 touch一個文件發生了什麼 tcp 手寫hash_table
感覺沒什麼希望了,結果隔天發來二面通知,真是神奇。

電話二面:40+
自我介紹 項目簡單說了一下 一些基礎概念 代碼 鏈表合併 最近公共祖先
gcc 靜態庫如何生成 沒試過x
最開心的一場面試了。比較愉快。溝通很順利。開心了一下午。隔天吉比特掛的短信發過來就尬住了。10月情緒容易波動。特別是沒offer的時候。

電話hr面:10+
簡單問一下,意向工作城市,薪資,手裏offer這些問題。2-3周出結果。感覺池子裏估計泡死了。撈不出來。準備籤其他公司了。

奇安信
linux開發

視頻一面:20
自我介紹,主要問題集中在linux,以及線程進程方面,學習的不是很深入。很多問題回答的不好。不知道刷kpi還是啥,給通過了。也許有一些問題回答的還不錯。比如tcp包頭大小20-60?

視頻二面:20
自我介紹 問題和一面類似。簡單問了問項目。又是神奇的通過了。

hr電話面:20+
問了一些,很有水平的問題,或者說簡單問題進行了探討。感覺很專業的樣子。我沒什麼準備反而回答的一般。
總體來說面試難度不小。現在池子裏面泡着。

像素軟件
遊戲c++開發

現場筆試:40+
A B卷 做完A做B 面試官會根據你得分是否繼續下一個流程。題量不小,還有叉積點積 矩陣(都忘了 理論上做遊戲需要這個

面試:20+
兩個面試官輪流問問題,比較隨意,問問項目,問問基礎。筆試已經包括了不少面試基礎題了。

hr面:10+
之前有電話聯繫過 所以就簡單的問了一些問題,談談實習什麼的。然後就回去等通知了。
一家零幾年比較出名的公司,可惜受限制與國內市場了。又是泡池子了。

銷售易:
java研發

現場一面:40+
面試官是java的,不太會c++,問了一下基礎問題,就開始聊如果入職改怎麼轉崗的問題了。

現場二面:30
面試官還是java的,應該和一面面試官交接了一下。面了一會就開始問我對java有什麼瞭解?對最新的語言有什麼瞭解?
聊完之後說,不能決定是否錄取,宣講會再面一次大leader,不過太晚了,感覺我等不起了。

吉比特:
遊戲研發

現場一面:40+
都是經典的問題,主要問數據結構和c++,然後就掛了,很神奇。
自我介紹 虛函數 內存泄漏 深拷貝淺拷貝 const和指針 引用 排序 歸併排序 快排 堆排 無向聯通圖 dfs o(n) ku o(n^3) 並查集 筆試題 說了思路 其他不會 聊天 人生規劃 平時幹什麼 結束 常規問題 沒問操作系統和計算機網絡x

58:
後臺

QQ一面:20+
記不清了,估計刷kpi。當天回答的賊差。結果過了一面。
QQ二面:20+
kpi 然後掛了。

網易互娛
遊戲研發

視頻一面:40+
幾個面試官輪流問問題。有一些地方就不太會。比較尬的是有一個問題我加錯了。然後回答錯了。結束才發現。

高德
研發

電話一面:30+
感覺阿里的電話噪聲很大。。。。面試官用自己電話好多了。
就是基礎問題,面試太多,根本記不清了。

總結一下。沒什麼項目和實習,很吃虧。所以就要從基礎補。基礎回答的好一點。看面經不要浮於表面,要深入其中。這樣才能`留下不錯的印象。可能有你不會的。但是會的一定要回答的很精彩。每次面試都是差缺補漏的好時機。不要浪費機會。知識面也要及時擴展。
項目:比較難準備,起碼源碼都知道在幹什麼。在做什麼。
基礎知識:瘋狂補面經,看博客。
算法:大數據和智商題就那麼多,看多了就會了。代碼題最好看見一個實現一次。面試沒什麼時間給你思考,調試。

知識點延伸很重要。類似客戶端發送包,但是服務器端口沒打開回去rst包,linux如果查看哪個線程佔用cpu高這些都要會。top+gdb 很多種方法 另外投簡歷不要拘泥。客戶端這些能投也可以投一投。別頭鐵。看清楚自己在哪,能拿到什麼offer。然後去準備。

一些自己準備的一下基礎知識。不全,可以簡單看看。
1.網絡
(1).tcp 三次握手:
c代表客戶端 s代表服務端
第一次 c->s 發送 syn包 seq=n 客戶端狀態變爲syn_send
第二次 s->c 發送 syn ack包 ack=n+1 seq=m 服務器轉檯變爲 syn_recv
第三次 c->s 發送 ack包 ack=m+1 seq=n+2 服務器客戶端變爲establelished
(2).爲什麼要三次握手:
建立可靠連接,確定序號,序號一般爲隨機值,防止網絡中被延遲的分組在以後被重傳。
(3).爲什麼不兩次握手:
兩次握手有可能第二次丟失,造成建立多個鏈接,浪費資源。序列號得到確認。
(4).四次揮手過程:
第一次 c 發送fin c 狀態變爲 fin_wait_1
第二次 s 發送 ack s 狀態變爲 close_wait c 狀態變爲 fin_wait_2
第三次 s 發送 fin s 狀態變爲 last_ack c 狀態變爲 time_wait
第四次 c 發送 ack s 狀態變爲 closed
(5).四次揮手原因:
tcp是雙工的協議所以接收方發送方都需要fin和ack 所以有四次
(6).time_wait狀態原因:
時長爲2msl 如果客戶端直接進去close 服務器沒收到ack 就會重新發送fin包,客戶端close之後 服務端就不會接收到ack而是收到rst,防止最後一次握手數據丟失。 而且如果關閉之後又使用有可能造成數據混淆。
(7)tcp udp 區別:
tcp 有連接的流服務 tcp 擁有標誌位 序號 數據校驗 超時重傳 窗口 擁塞控制 等來控制鏈接的可靠,以及進行會對網絡有益。慢但是可靠 文件傳輸 重要信息
udp 無連接的報文服務 快 但是不可靠 視頻 實時通信等
(8)p2p:
https://www.cnblogs.com/linsanshu/p/5546948.html 特點減少了服務器的負載,負載均衡,人人都是用戶也是服務器,缺點用戶少了用戶體驗極差。越多越好。採用哪種拓撲以及如何優化是重點。
(9)打開一個網頁發生了什麼,例如 www.baidu.com :
dns協議查找到 網址的ip 順序 瀏覽器 電腦 路由器 isp網絡服務提供商 域名服務器 用tcp協議建立連接 然後就開始用http協議 post get這些請求了 用到的協議 dns http tcp ip arp(以太網會用到mac地址) 路由器上ospf等內部網關協議 bgp等外部網關協議 「
(10)網頁打不開問題在哪:
本機 網絡 服務器 服務器檢測:http協議會返回錯誤碼 網絡檢測:用手機打開 本次錯誤:ping 127.0.0.0 本地迴環 可以就是本地沒問題 有問題可能是硬件或者網絡配置
(11)tcp同時打開或關閉
打開:同時兩端的狀態變化都是由CLOSED->SYN_SENT->SYN_RCVD->ESTABLISHED。
建立連接的時候需要四個數據包的交換,並且每個數據包中都攜帶有SYN標識,直到收到SYN的ACK爲止
關閉:ESTABLISHED->FIN_WAIT_1->CLOSING->TIME_WAIT->CLOSED
CLOSING狀態表示你發送FIN報文後,並沒有收到對方的ACK報文,反而卻也收到了對方的FIN報文
(12).哪些方法解決TIME_WAIT狀態過多
保證由客戶端主動發起關閉(即做爲B端)
關閉的時候使用RST的方式
對處於TIME_WAIT狀態的TCP允許重用

2.操作系統
(1).虛擬內存
三級頁表
(2).進程和線程
https://blog.csdn.net/zhou753099943/article/details/51771220
線程和進程如何切換:https://www.cnblogs.com/kkshaq/p/4547725.html
協程切換快的原因 只是在用戶態 不涉及內核態 只涉及寄存器 沒有私有棧。
(3)線程通信方式:
互斥鎖 信號量 條件變量
(4)epoll 內核實現
實現:紅黑樹加鏈表 紅黑樹添加刪除事件 內核中斷髮生事件後會回調添加到鏈表中,查詢時返回鏈表中的事件。
epoll是線程安全的,如果當前線程阻塞,管理的epoll_fd其他線程加入socket且處於ready狀態 線程會不再阻塞。
如果是刪除socker 結果未知 有的unix會返回socketfd是就緒,除非刪除之後立即使用。但是後續操作會失敗(bug行爲
(5).驚羣問題
簡單來說就是有多個線程在等待同一個事件,事件發生後,多個線程被喚醒,但是隻有一個線程處理事件。其他都會繼續等待。
linux內核2.6版本之後解決這個問題,只會喚醒一個。網上看見有人說其實是假處理。
(6).進程間傳遞文件描述符
使用匿名Unix域套接字,即socketpair()和sendmsg/recvmsg來實現。
(7).select poll epoll
select:輪詢,大小有限制1024 每次將所有描述符從用戶態複製進內核態
poll:輪詢 大小無限制 每次將所有描述符從用戶態複製進內核態
epoll:返回鏈表中的元素 鏈表 + 紅黑樹 紅黑樹管理插入刪除 鏈表用來接受回調函數返回的事件

3.C++
(1).分配空間 malloc:
小於128k調用brk函數分配 由鏈表管理的內存 大於128kmmap函數分配文件映射區
(2).
靜態多態和動態多態:
靜態多態 函數重載 編譯期確定
動態多態 虛函數 定義時在數據的頭部 sizeof 當前類的虛函數只會佔用一個指針的空間
作用 確定類型裝換之後調用的函數爲原先類型的函數。一般接下來就會問你虛函數相關的。
(3).unsigned
存儲首位是不是符號位,有符號數 補碼運算 無符號不用
(4).引用和指針
引用:別名 不佔用空間 只是聲明沒有定義 必須初始化 不可以空 不可以指向其他變量
指針 :變量 有空間 聲明和定義可以分開 可以不用初始化 可以爲空 可以改變
(5).右值引用 https://www.jianshu.com/p/d19fc8447eaa
用來延長生命期
可用於實現移動語義 減少不必要的內存拷貝。需要移動構造函數和移動賦值函數。
(6).std::move
std::move函數可以以非常簡單的方式將左值引用轉換爲右值引用。
(7).內存管理
堆,棧,自由存儲區,全局/靜態存儲區,常量存儲區,代碼區
堆:用於系統分配內存,malloc從堆上分配內存,小於128k用brk函數,大於用mmap函數從映射區分配。
棧:函數運行時,創建變量,結束是釋放,高效,但是容量有限。
自由存儲區:用new申請的內存。
全局/靜態存儲區:程序編譯時就分配好的,例如全局變量,靜態變量。
常量存儲區:存放const常量,不可改變。
new和malloc區別(略)
malloc brk函數如何管理內存(略)brk是將數據段(.data)的最高地址指針_edata往高地址推 https://www.cnblogs.com/vinozly/p/5489138.html
(8).動態鏈接和靜態鏈接
簡單來說靜態鏈接會在每個可執行文件內產生一個副本,浪費空間。但是執行速度快。動態鏈接只有一個庫,不會有多個副本,節省空間。更新是只需要更新原來的目標文件。無需將所有的程序重新編譯一遍,因爲動態是每次執行時鏈接,所以耗時。
q:靜態庫的源文件被修改會有什麼結果

4.大數據
(1).32位1e9求中位數
當時思路:分組 例如 0-1e8 1e8-2e8…確定是哪組 然後重複這個行爲

5.項目
(1).介紹一下libco 如何實現,爲什麼高效,有什麼特點。
(2).爲什麼用這個 爲什麼快 有沒有測過
別人介紹/吹優點 不用切換內核態和用戶態 libgo 1個切換24ns 1000個切換 27ns golang 75/95

6.算法
(1).整數:
求有多少個和爲100 不重複 sort 雙指針 複雜度 nlogn
可以重複 例如0 100 統計有多少個100 多少個0 最後計數 注意50
(2).bfs不用函數 就是隊列 dfs是棧
(3).二叉樹左右切換 :
dfs的時候 更換一下left和right就可以了

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