腾讯大佬植发三次才学完的路线,你学废了多少?

其实学习路线一类的文章网络上也有不少,但我看了很多,大部分都是罗列了许多的课程和知识点,却缺少一个类似时间轴的东西,告诉大家按照什么样的节奏来推进,所以呢,我希望补上这一个重要的信息。

这份学习路线,包含了从新手到工作分阶段所需要学习的内容、详细的知识点、可以参考的书单、电子书资源等等。

先给大家看C/C++后端开发的,长文预警,发车~

路线图

开局一张图,内容全靠编,没错,咱们先来看一张全局图,先从总体上有个宏观的认识。

这张图有点大,由于平台对图片压缩的厉害,如果想要高清版的可以在文末地址中查看

精进基石专栏【一】

在我看来,相对来说,Python、Java这类上层语言是面向业务编程,而C/C++这类底层语言更多是面向计算机编程,所以第一个基础阶段需要补充一些基础知识

  • 随处可见的红黑树

  • 磁盘存储链式的B树与B+树

  • 海量数据去重的Hash与BloomFilter,bitmap

  • 创建型设计模式

  • 结构型设计模式

精进基石专栏【二】

  • stl容器,智能指针,正则表达式

  • 新特性的线程,协程,原子操作,lamda表达式

  • Makefile/cmake/configure

  • 分布式版本控制git

  • Linux系统运行时参数命令

高性能网络设计专栏-网络编程

网络编程,socket编程,各种网络IO模型的区别与底层原理,尤其是epoll模型中的各种细节问题,需要摸得非常熟悉

  • 网络io与select,poll。epoll

  • reactor的原理与实现

  • http/https服务器的实现

  • websocket协议与服务器实现

高性能网络设计专栏-网络原理

  • 服务器百万并发实现

  • redis,memcached,nginx网络组件

  • Posix API与网络协议栈

  • UDP的可靠传输协议QUIC

高性能网络设计专栏-自研协程框架

  • 协程设计原理与汇编实现

  • 协程调度器实现与性能测试

  • 用户态协议栈设计实现

  • tcp/ip定时器与滑动窗口

  • 手把手设计实现epoll

基础组件设计专栏-池式组件

  • 手写线程池与性能分析

  • 内存池的实现与场景分析

  • 异步请求池的实现

  • mysql连接池的实现

基础组件设计专栏-高性能组件

  • 原子操作CAS与锁实现

  • 无锁消息队列实现

  • 定时器方案红黑树,时间轮,最小堆

  • 手写死锁检测组件

  • 手写内存泄漏检测组件

  • 手把手实现分布式锁

基础组件设计专栏-开源组件

  • libevent/libev框架实战的那些坑

  • 异步日志方案log4cpp

  • 应用层协议设计ProtoBuf/Thrift

中间件开发专栏-MySQL

MySQL是互联网中应用非常多的数据库系统,在基础阶段只学习了数据库的理论知识和SQL的用法。

到这个阶段,需要更加深入,研究MySQL的底层原理,索引实现原理、事务实现原理、锁机制等等,不仅能用,还要能在开发大型项目遇到数据库性能问题时,了解原理更好的解决问题。

  • SQL语句,索引,视图,存储过程,触发器

  • MySQL索引原理以及SQL优化

  • MySQL事务原理分析

  • MySQL缓存策略

中间件开发专栏-TiDB

  • TiDB存储引擎的原理

  • TiDB集群方案与Replication原理

中间件开发专栏-Redis

Redis作为MySQL的好搭档,缓存系统的主流选择,其重要性越来越强了。

除了基本的使用,还需要学习一下Redis背后的原理,内存数据结构如何实现,持久化、高可用、集群扩展、分布式锁如何实现等等问题都值得研究。一方面Redis作为非常优秀的开源软件,其本身就非常值得借鉴学习,另一方面学习背后的实现原理,对实际工作中解决问题也有非常大的帮助。

  • Redis相关命令详解及其原理

  • Redis协议与异步方式

  • Redis源码 存储原理与数据模型

  • Reids源码 主从同步与对象模型

中间件开发专栏-RocksDB

  • 不一样的kv存储RocksDB的使用场景

  • RocksDB的特殊操作

中间件开发专栏-Nginx

  • Nginx反向代理与系统参数配置conf原理

  • Nginx过滤器模块实现

  • Nginx Handler模块实现

中间件开发专栏-MongoDB

  • 接口编程与文档操作

  • 集群方案与持久化备份

开源框架专栏-skynet

  • Skynet设计原理

  • skynet网络层封装以及lua/c接口编程

  • skynet重要组件以及手撕游戏项目

开源框架专栏-TARS

  • TARS RPC服务模型原理

  • TARS公共框架服务与数据库

  • 数据监控与服务性能压测

开源框架专栏-DPDK

  • DPDK环境与testpmd/l3fwd/skeletion

  • DPDK的用户态协议栈

  • 千万级流量并发的dns处理

  • 高性能数据处理框架vpp

  • DPDK的虚拟交换机框架OvS

Rust项目专栏【一】

  • Rust Slice类型与泛型

  • Rust文件操作与错误处理

  • Rust并发编程与智能指针

  • 组件实现之网卡速度监控

Rust项目专栏【二】

  • 组件实现之邮件发送

  • 组件实现之OAuth2 第三方登陆

  • Rust异步框架 tokio

  • Rust web框架 Warp

Rust项目专栏【三】

  • Rust http库 hyper

  • DBProxy功能分析与设计实现

  • DBProxy的MySQL代理

  • DBProxy的Redis代理

性能分析专栏

  • 测试框架gtest以及内存泄漏检测

  • 火焰图的生成原理与构建方式

分布式架构专栏【一】

  • Kafka使用场景与设计原理

  • Kafka存储机制

  • 远程调用brpc

  • 注册服务中心Etcd

分布式架构专栏【二】

  • Kong 动态负载均衡与服务发现

  • Kong 实时监控与REST API

  • 内核级支持的分布式存储Ceph

  • 服务容器化Docker

项目实战【一】-图床共享云存储

  • fastdfs架构分析和配置

  • fastdfs存储原理

  • 分布式fastdfs存储集群部署

  • 高负载nginx/fastcgi

  • 文件传输和接口设计

  • 产品上云公网发布/测试用例

项目实战【二】-微服务即时通讯

  • IM即时通讯项目框架分析和部署

  • IM消息服务器/文件传输服务器

  • 消息服务器/路由服务器

  • 数据库代理服务器设计

  • 文件服务器和docker部署

  • 产品上云公网发布/公网测试上线

总结

以上就是做C/C++后端开发,从新手入门到工作所需要学习的内容整理了,可能并不全面,但掌握以上这些内容足以胜任大部分的岗位要求了。

除了学习路线,我还整理了这个过程中学习的大量学习资料,配合上面的学习路线使用:

数十位跳槽大厂的面经视频分享

2021BATJ等大厂面试题集锦

如果你有需要,可以加交流群83218493,我发给你。

路线图地址: Linux C/C++后端服务器架构开发 成长体系

整理不易,如果觉得还不错的话,欢迎帮点赞评论转发三连支持呀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值