日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++后端开发学习路线总结(附带实习学习经历分享)

發布時間:2023/12/20 c/c++ 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++后端开发学习路线总结(附带实习学习经历分享) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好哇,九月份了;不知道大家的工作或者實習都安排的怎么樣了?反正獅作為一個過來人只能在各種論壇上面看到都是哀鴻遍野;暗自驚心感慨現在年輕人不好混啊~

然后呢,獅最近后臺收到不少C/C++后端怎么學的邀請回答;那這里就再發一次關于C/C++后端開發學習路線總結及實習經歷分享


除了知乎呢,還有某DN,某破站上也有太多的讀者詢問我這樣的問題:新手怎么學?要學到什么樣子才能找工作?有什么學習資料推薦?


其實學習路線一類的文章網絡上也有不少,但我看了很多,大部分都是羅列了許多的課程和知識點,卻缺少一個類似時間軸的東西,告訴大家按照什么樣的節奏來推進,所以呢,我希望補上這一個重要的信息。


這份學習路線,包含了從新手到工作分階段所需要學習的內容、詳細的知識點、可以參考的書單、電子書資源等等。給大家看C/C++后端開發的,最后一段附帶我一個小老弟的實習與學習經歷,發車~
路線圖
開局一張圖,內容全靠編,沒錯,咱們先來看一張全局圖,先從總體上有個宏觀的認識。

這張圖有點大,由于微信對圖片壓縮的厲害,如果想要高清版的,可以私信獅:C++自動獲取。

基礎部分到處都能學,這里就不做過多贅述了;如若是想轉行或者轉崗C/C++后端的,獅之后也會寫一個更加詳細基礎的分享;這里就先將學習路線分為十個板塊來進行。

一、精進基石

1.數據結構與算法

  • 隨處可見的紅黑樹
  • 磁盤存儲鏈式的B樹與B+樹
  • 海量數據去重的Hash與BloomFilter,bitmap

2.設計模式

  • 創建型設計模式
  • 結構型設計模式

3.c++新特性

  • stl容器,智能指針,正則表達式
  • 新特性的線程,協程,原子操作,lamda表達式

4.Linux工程管理

  • Makefile/cmake/configure
  • 分布式版本控制git
  • Linux系統運行時參數命令

二、高性能網絡設計

1.網絡編程

  • 網絡IO與select,poll,epoll
  • reactor的原理與實現
  • http/https服務器的實現
  • websocket協議與服務器實現

2.網絡原理

  • 服務器百萬并發實現
  • redis,memcached,nginx網絡組件
  • Posix API與網絡協議棧
  • UDP的可靠傳輸協議QUIC

3.協程框架NtyCo的實現

  • 協程設計原理與匯編實現
  • 協程調度器實現與性能測試

4.用戶態協議棧NtyTcp的實現

  • 用戶態協議棧設計實現
  • tcp/ip定時器與滑動窗口
  • 手把手設計實現epoll

5.高性能異步io機制io_uring

  • 與epoll媲美的io_uring
  • io_uring的使用場景

三、基礎組件設計

1.池式組件

  • 手寫線程池與性能分析
  • 內存池的實現與場景分析
  • 異步請求池的實現
  • mysql連接池的實現

2.高性能組件

  • 原子操作CAS與鎖實現
  • 無鎖消息隊列實現RingBuffer
  • 定時器方案紅黑樹,時間輪,最小堆
  • 手寫死鎖檢測組件
  • 手寫內存泄漏檢測組件
  • 手把手實現分布式鎖

3.開源組件

  • Libevent/Libev框架實戰的那些坑
  • 異步日志方案log4cpp
  • 應用層協議設計ProtoBuf/Thrift

四、中間件開發

1.redis

  • redis相關命令詳解及其原理
  • redis協議與異步方式
  • 存儲原理與數據模型
  • 主從同步與對象模型

2.MySQL

  • SQL語句,索引,視圖,存儲過程,觸發器
  • MySQL索引原理以及SQL優化
  • MySQL事務原理分析
  • MySQL緩存策略

3.Kafka

  • Kafka使用場景與設計原理
  • Kafka存儲機制

4.gRPC

  • gRPC的內部組件關聯
  • 基于http2的gRPC通信協議

5.nginx

  • nginx反向代理與系統參數配置conf原理
  • nginx過濾器模塊實現
  • nginx Handler模塊實現

五、開源框架

1.skynet

  • skynet設計原理
  • sky net網絡層封裝以及lua/c接口編程
  • sky net重要組件以及手撕游戲項目

2.分布式API網關

  • 高性能web網關Openresty
  • Kong動態負載均衡與服務發現

3.DPDK

  • DPDK環境與testpmd/I3fwd/skeletion
  • DPDK的用戶態協議棧
  • 千萬級流量并發的dns處理
  • 高性能數據處理框架vpp
  • DPDK的虛擬交換機框架OVS

4.高性能計算CUDA

  • gpu并行計算cuda的開發流程
  • 音視頻編解碼中的并行計算

六、云原生

1.Docker

  • Docker風光下的內核功能
  • Docker容器管理與鏡像操作
  • Docker網絡管理
  • Docker云與容器編排

2.Kubernetes

  • K8S環境搭建
  • Pod與Service的用法
  • K8S集群管理
  • K8S二次開發與K8S API

七、性能分析

1.性能與測試工具

  • 測試框架gtest以及內存泄漏檢測
  • 性能工具與性能分析
  • 火焰圖的生成原理與構建方式

2.觀測技術bpf與ebpf

  • 內核bpf的實現原理
  • bpf對內核功能的觀測

3.內核源碼機制

  • 進程調度機制
  • 內核內存管理運行機制
  • 網卡nic與網絡協議棧的關系
  • 文件系統組件

八、分布式架構

1.RocksDB

  • 不一樣的kv存儲RocksDB的使用場景
  • RocksDB的特殊操作

2.云原生分布式數據庫TiDB

  • TiDB存儲引擎的原理
  • TiDB集群方案與Replication的原理

3.分布式服務

  • 內核級支持的分布式存儲Ceph
  • 注冊服務中心Etcd

九、項目實戰

1.圖床共享云存儲

  • fastdfs架構分析和配置
  • fastdfs存儲原理
  • 分布式fastdfs存儲集群部署
  • 高負載nginx/fastcgi
  • 文件傳輸和接口設計
  • 產品上云公網發布/測試用例

2.微服務即時通訊

  • IM即時通訊項目框架分析和部署
  • IM消息服務器/文件傳輸服務器
  • 消息服務器/路由服務器
  • 數據庫代理服務器設計
  • 文件服務器和docker部署
  • 產品上云公網發布/公網測試上線

十,配套參考書籍資料

1. MySQL:《高性能MySQL 第3版》

2.Nginx: 《深入理解Nginx:模塊開發與架構分析(第2版)》(陶輝)

3.Redis:Redis設計與實現 (黃健宏)

4.Linux內核:《深入理解Linux內核架構》 (郭旭 譯)

5.數據結構與算法:《算法導論》(第3版)

6. 性能分析:《性能之巔 洞悉系統、企業與云計算》 8

7.MongoDB:《MongoDB權威指南》

8.Ceph:《Ceph分布式存儲學習指南》(Ceph中國社區)

9.Docker:《Docker容器與容器云(第2版)》。

10.TCP/IP:《Tcp/1p詳解卷一卷二卷三》 8

11.Linux系統編程:《Unix環境高級編程》

12.計算機:《深入理解計算機系統》

13. DPDK:《深入淺出DPDK》 8

14.k8s:《Kubernates權威指南》龔正等編著

15.bpf:《BPF之巔 洞悉Linux系統和應用性能》


總結

以上就是做C/C++后端開發,從新手入門到工作所需要學習的內容整理了,可能并不全面,但掌握以上這些內容足以勝任大部分的崗位要求了。

除了學習路線,我還整理了這個過程中學習的大量學習資料,配合上面的學習路線使用:


適宜工程師人群

1.從事業務開發多年,對底層原理理解不夠深入的在職工程師

2.從事嵌入式方向開發,想轉入互聯網開發的在職工程師

3.從事Qt/MFC等桌面開發的,薪資多年漲幅不大的在職工程師

4.從事非開發崗位(算法崗,運維崗,測試崗),想轉后臺開發崗位的在職工程師

5.工作中技術沒有挑戰,工作中接觸不到新技術的在職工程師

6.自己研究學習速度較慢,不能系統構建知識體系的開發人員

7.了解很多技術名詞,但是深入細問又不理解的工程師

8. 計算機相關專業想進入大廠的在校生(本科及以上學歷,有c/c基礎)


這里就拿一個學弟的實習經歷舉個例子(跟我關系比較好,啥都帶他)實習面試基本情況,參與面試的公司:CVTE、搜狐、東方財富、美團、騰訊、字節跳動、阿里巴巴

CVTE:筆試-技術面1-技術面2-hr面-offer(第一次面試,他是說挺順利的)

阿里巴巴提前批:技術面1-掛(當時沒復習,問他啥,啥不會,其實阿里面的真不難)

東方財富:技術面1-HR面-掛(HR面把他掛了,看不懂)

字節跳動:技術面1-技術面2-技術面3-hr面-offer(字節3面面試官拖了他快半個月才面,當時心態很差,同學都拿了大廠offer)

百度:技術面1-技術面2-技術面3(一個下午面完的,但是玩了一上午,百度打過來的2個電話沒接到,然后就沒了)

騰訊:技術面1-技術面2-技術面3-hr面(也挺順利,被我逼著復習了一頓,感覺跟阿里差不多)

后面其他公司筆試面試邀請都拒了。

然后是他的學習經歷,原話:

2020年3~8月:疫情在家大概3月份開始準備學習C++,因為在家效率極低,玩三天學一天,到7、8月份也只是會用C++,然后寫了個MFC的小項目練了練手。

2020年9月:前半個月學習計算機網絡,后半個月學習深入理解計算機系統(當然第一遍只看懂個大概)

2020年10月-12月:寫多線程服務器項目(即改編muduo),這個過程中伴隨學習網絡編程、操作系統、C++各種知識(之前C++只學了皮毛)

2021年1月-2月:學習數據結構與算法并刷題,刷了不到200題。(其中寒假在家玩了半個月)

2021年3月:開啟海投模式,先投了一批小公司,基本都簡歷掛,總算有幾個小廠給了面試機會,邊面試邊復習。3月中旬開始投大廠,除了美團一面掛,字節、騰訊、百度面試都很順利,沒掛過,清明之前拿到了字節的口頭offer。

2021年4月:字節的正式offer郵件。

(說實話我的學習效率不是很高,因為我喜歡睡懶覺。)

ps:他睡懶覺我是發現了,天天上午叫不動...


結語


不管是轉崗還是實習選方向的兄弟們,一個合格的 C++開發者從來不怕找不到工作的,即使你日后從事 Java或者Go的工作,由于語言的原理都是相通的,所以你的學習成本會比別人小的多。


我仔細想了想自己這些年的語言史:大學寫了一年的C語言和VB,三年的C#;研究生寫了一年的Python,兩年的C++;工作了開始寫JavaScript、Go以及Vue、React這些框架。


你要問我最喜歡哪門語言?
毫無疑問,絕對是是C++!
不為什么,就是喜歡它的嚴謹!

C++天下第一!!!


種一棵樹的最好時間是十年前,其次就是現在,真心希望學弟學妹們以及一些想要轉計算機的小伙伴們加油!

別辜負了自己這么多年苦讀與工作經歷;好好工作好好生活,想要相關資料或者學習路線圖的都可以私信獅,大庇天下寒士俱歡顏!!!

拜拜了您嘞~

總結

以上是生活随笔為你收集整理的C/C++后端开发学习路线总结(附带实习学习经历分享)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。