面前準備
敲定了方向和目標后就開始系統準備,主要分為以下幾個方面來準備,
演算法題
事先已經看過別人的社招面經知道頭條每輪技術面都有演算法題,而這一塊平時練習的比較少,校招時刷的題也忘記了很多,因此系統復習的時候演算法題還是花了比較多時間的,先是快速刷完了劍指 offer,這個校招時已經刷過兩邊了,因此現在刷起來會相對快一些,然后就是啃 LeetCode 的題了,LeetCode 的題比較多,想在短短幾周內刷完基本是不可能的,因此我主要按照型別去刷,每個型別刷幾道就會比較有感覺了,比如鏈表的題優先考慮遞回和雙指標來解決,堆疊和佇列的題優先考慮用兩個堆疊或佇列來解決,樹的題基本都是遞回等,不過陣列和字串的題一般比較靈活,這種題只能盡量多刷了,平時要上班刷題也不方便,我采用的方法就是看題,用手機打開 LeetCode 的網站,看完題目后直接想解決方案,腦子里大概捋一下代碼怎么寫,能想到的就過,想不出的就看看別人的解法,用這個方法刷起來就很快,用這種方法你可能會擔心面試時題寫不完整,其實不用太擔心,因為面試的時候面試官看你寫的核心思路是正確的,邊界處理是對的基本就過了,面試時間比較有限,
理論基礎
基礎這一塊主要以快速復習為主,主要是語言(我主要用C++,所以復習C++)、作業系統和網路編程,校招這一塊會問題的比較多,社招這一塊問的比較少,但是如果這一塊打不上來就比較尷尬了,語言就不說了,這一塊大家應該都知道會考些什么,校招的時候畢竟都瘋狂準備過,作業系統就看記憶體管理、行程管理和檔案系統,一般虛擬記憶體問的多,網路編程這塊就包括 TCP/IP 協議,HTTP協議,網路安全三個方面,TCP/IP主要就是三次握手,四次揮手,TIME_WAIT 的作用等這些常考的題了,HTTP 協議考察 HTTP 協議的回傳碼、HTTP 的方法等,需要特別指出的是 HTTPS 加密的詳細程序要非常透徹,不然容易產生一種感覺好像都清楚了,但是一問就有點說不清楚,最后就是網路安全,主要考察也是 WEB 安全,包括XSS,CSRF,SQL注入等,
后端技術
這里的后端技術主要指作業中要用到的一些基礎組件,一些常見的后端架構設計,主要準備了MySQL、Redis、訊息佇列、zookeeper、分布式系統架構設計和docker,MySQL 主要看了 《高性能MySQL 第三版》,關于事務、索引、鎖以及 binlog 和 redolog 都講的非常好,也是面試最愛考的,除此之外對資料庫的讀寫分離、分庫分表也要掌握,Redis 主要看了《Redis 的設計與實作》,然后自己再總結了一下 Redis 的使用場景,以及 Redis 實作分布式鎖基本 Redis 就沒有問題了,分布式系統的就準備CAP理論、BASE理論、限流、熔斷、一致性***演算法、主從架構、集群架構、異地多活、負載均衡、分層架構、微服務等,
深挖專案
沒有參與開源專案的經驗,作業中做的專案也很一般,專案這塊我實在沒什么太多拿的出手的,不過還是要挖掘一下,畢竟這一塊是逃不掉,我說幾個我思考的點吧:
找專案中相對而言具有亮點的地方,比如我用 redis 實作了一個延時佇列,然后對這個延時佇列我通過分片來解決瓶頸,通過分發來加快處理速度,
找專案中復雜的地方,如果你做的專案中有復雜的地方,即使不是你做的,也可以拿來說,前提是你要搞得非常清楚來,
量化指標,一個介面原來有性能問題,比如你做了一個小的優化,將其 TP99 的耗時從原來的 500ms 優化至多少 200ms,
賦能整個團隊,在開發業務的程序中肯定會遇到一些重復的作業,或者可以復用的服務,你可以開發了某個工具或者服務化了某個功能推廣到了全組使用,給公司創造了價值,
騰訊面試
騰訊面試提前1天和提前一個小時都會發短信提示,去的騰訊濱海大廈面試,大樓的現代化程度很高,不過需要提醒一下的是,騰訊的濱海大廈分為南塔和北塔,我去的時候就上錯樓了,需要下到4樓重新換成電梯,
筆試
微服務的特點,如何實作服務發現和負載均衡
c++記憶體管理
time_wait在哪一端產生,作用是什么
程式crash如何定位
服務性能問題如何定位
兩個排序陣列找中位數
就數字n的平方根
設計一個演算法,抽獎次數越多中獎概率就越高
MySQL 如何分析一條陳述句的執行程序,delete from t1 limit 3和delete from t1的區別?
一面
問專案
跳臺階
陣列中奇數個元素
一棟樓有n層,不知道雞蛋從第幾層扔下去會碎,用最少的次數找出剛好會碎的樓層
動態規劃與貪心有什么區別
redis資料結構的底層實作
redis如何實作高可用
負載均衡演算法有哪些
服務發現是怎么實作的
熔斷是怎么實作的
id生成器怎么實作的,如何實作全域遞增
協程和執行緒的區別
行程間通訊方法
平時逛哪些論壇,研究哪些演算法
paxos演算法,這個演算法我說不清楚,然后說了raft演算法
gdb怎么切換執行緒
如何判斷一個圖是否有環
介紹一下快取
查看 CPU 的命令和磁盤 IO 的命令
二面
專案的系統架構畫一下
如果用戶量上漲怎么優化
負載均衡的加權輪詢演算法怎么實作
背包問題
貝葉斯的概率學原理
分詞演算法
連續整數求和(leetcode 第 829 題),要求時間復雜度小于O(N)
HR面
1.詢問了除騰訊以外,還在看其他作業機會么?分別是什么
2.騰訊、XXX公司、XXX公司,你的優先級是什么,為什么?
3.之前薪資待遇是多少?你期望的薪資是多少?
4.平時有什么愛好?
5.了解職位需求嗎?
6.有沒有想問的?
騰訊二面最后一道演算法題只能想出 O(N) 復雜度的,面試官一定要小于 O(N) 的,答不上來,這道題是 leetcode hard 級別的難度,所以沒有刷,后來又跟面試官探討了一下自己比較擅長的方面,比如協程與TCP方面的,因為自己也比較喜歡在GitHub上面鉆研這些東西,
協程
TCP
我個人在這里學到的東西比較多(/狗頭)
技術知識學習路線
【文章福利】小編推薦自己的linuxC/C++語言交流群:832218493!整理了一些個人覺得比較好的學習書籍、視頻資料共享在里面,有需要的可以自行添加哦!~


一、 資料結構與演算法、設計模式、工程管理
排序 (11種排序) 與 KMP
紅黑樹 證明
B樹與B+樹
Hash與布隆過濾器
責任鏈模式
過濾器模式
發布訂閱模式
工廠模式
Makefile/cmake/configure
git /svn與持續集成
Linux系統運行時命令
二、代碼實作、方案分析
網路io與select/poll/epoll
reactor的原理與實作
http/https web服務器的實作
websocket協議與服務器實作
服務器百萬并發的實現(c10K,c1000k, C10M)
redis/memcached/Nginx網路組件
Posix API與網路協議堆疊
UDP可靠協議 QUIC/KCP
三、池式結構、高性能組件、開源組件
執行緒池(手寫)
記憶體池 ringbuffer
異步請求池 性能優化,異步mysql 異步dns 異步redis
mysql連接池
redis連接池
原子操作 CAS
訊息佇列與無鎖佇列
定時器的方案 紅黑樹 時間輪 最小堆
鎖的實作原理 互斥鎖,自旋鎖 ,樂觀鎖,悲觀鎖,分布式鎖
服務器連接保活 keepalived
try/catch的實作
libevent/libev框架
異步日志方案 log4cpp
應用層協議 protobuf/thrift
openssl加密
json與xml決議器
字符編碼unicode/gbk/utf-
四、協程框架的實作、用戶態協議堆疊 NtyTCP (tcp/ip)
協程的原理與工程案例
協程的調度器實作
滑動視窗 擁塞控制 滿啟動
tcp定時器的實作
epoll的原始碼實作
五、Skynet、ZeroMQ、DPDK
skynet高性能網關
actor實作與cluster/負載均衡
skynet網路與熱更新 資料共享
ZeroMQ Router-Dealter模式
原始碼分析:訊息模型與工程案例
原始碼分析:網路機制
dpdk PCI原理與 testpmd/l3fwd/skeletion
kni資料流程
dpdk實作dns
dpdk的高性能網關的實作
半虛擬化 virtio/vhost的加速
六、 MySQL、Redis、Nginx、mongodb、dfs
SQL陳述句 索引 存盤程序 觸發器
2.資料庫連接池與sql決議剖析
存盤引擎原理 MyISAM與Innodb 事務隔離
自己實作一個存盤引擎 MySQL原始碼
MySQL集群與分布式 高可用高并發
Redis相關命令與持久化
Redis連接池與異步操作
原始碼分析:存盤原理與資料模型
原始碼分析:主從 原子模型
redis的集群方案
Nginx使用conf配置
nginx模塊開發 過濾器模塊
Nginx模塊開發 handler模塊
原始碼分析: Nginx Http狀態機
原始碼分析:行程間通信與Slab共享機制
Mongo介面編程與MongoDB命令使用
MongoDB的集群方案
ceph
fastdfs
七、Linux內核行程管理、記憶體管理、檔案系統
行程管理與調度
鎖與行程間通信
系統呼叫 如何自己實作一個syscall
物理記憶體 伙伴演算法
2.行程虛擬記憶體 mm_struct
頁的回收與頁交換
虛擬檔案系統
Ext2/3/4 檔案系統
無持久的存盤
八、性能分析
工具 wrk/ webbench/ loadbalance/valgrind
Google gTest/Memtrack
火焰圖/熱圖
九、分布式架構篇
騰訊的Tars
虛擬化的docker
分布式注冊中心etcd
P2P 網路穿透 打洞 去中心化的網路

榷訓月累,終有所成!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/230272.html
標籤:其他
