知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

Linux C++后台开发自学路线,看完醍醐灌顶

发表时间:2022-03-25来源:网络

后台开发包括的知识点很多,包括语言基础,算法,linux编程基础,linux内核,网络,数据库,分布式等等。面面俱到很难,一个领域钻研的很深也很难。我认识的大神里有把C++语言吃的非常透的,拿offer都非常轻松。

学习路线有点长,但非常的细,争取做到让看到的同学有一种相见恨晚的感觉!

Linux C++ 服务器/后台开发指的什么呢,其实就是基于 Linux 上 的 C++ 编程,较于其他语言开发,更着重Linux系统编程能力。

这里我就不讲C++基础了,申明一下,此路线只适合有C语言基础或者C++基础的人去看。

一、基础知识

(1)数据结构与算法

面试必聊的排序与KMP

插入排序、快速排序、希尔排序、桶排序、基数排序、归并排序、字符串匹配 KMP算法

随处可以见的红黑树

红黑树的应用场景,进程调度CFS,内存管理等等

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

磁盘结构与数据存储原理、B树插入的分裂、B+树的定义与实现等等

海量数据去重的Hash与布隆过滤器 bitmap

hsah的原理和hash函数的实现、分布式hsah、海量数据去重布隆过滤器

图论算法、di jkstra、dfs、bfs、动态规划

图的构建与需求应用场景、di jkstra的实现、经典动态规划问题

这里推荐大家去看《算法导论》第三版,讲的非常详细!

(2)设计模式

创作型设计模式

单例模式、工厂方法模式与抽象工厂模式

结构型设计模式

适配器模式、代理模式、桥接模式、组合模式

行为型设计模式

责任链模式、策略模式、观察者模式、状态模式

(三)工厂管理

Makefile/cmake/configuregit/svn与持续集成Linux系统运行时的命令参数

福利分享

价值199协程框架实现微课资料领取


(4)用户态协议栈NtyTCP

推荐大家去看

《TCP详解卷一卷二卷三》《Unix高级环境编程》《深入理解计算机系统》

三、基础组件

池式组件

线程池与性能分析线程池的异步处理使用场景线程池的动态回缩ringbuffer与内存池的实现手写内存池,结构体封装与API实现避免内存泄露的两种方法定位内存泄露的三种工具Nginx内存池的实现异步请求池 http/mysql/redis/dns异步请求处理流程MySQL/Redis连接池的实现

高性能组件

原子操作CAS与锁实现原理实现互斥锁自旋锁消息队列与无锁实现有锁队列内存屏障Barr ier定时器方案红黑树最小堆时间轮

开源组件

libevent/libev框架异步日志方案log4cpp应用层协议设计protoBuf/thriftopenss丨对称加密与非对称加密json数据解析丨Xml数据解析器与工具包


中间件开发

MySQL

MySQLSQL语句、索引、视图、存储过程、触发器MySQL索引原理与SQL优化MySQL事物原理分析MySQL缓存策略MySQL集群方案

Redis

Redis相关命令及其原理Redis协议与异步方式存储原理与数据模型主从同步与对象模型集群方案主从复制

Nginx

Nginx反向代理与系统参数配置进程间通信与slab共享机制Nginx过滤模块实现

推荐书籍

《高性能MySQL 第三版》《Redis实现与原理》 (黄建宏)(深入理解Nginx:模块开发与架构分析 第二版)

实际上在腾讯这边的 C++ 后台开发,也是类似的,本身有非常成熟的基于 C++ 的微服务体系,大多数开发也只需要关注业务逻辑就好,不过还是会要求 Linux 系统编程、网络编程等能力。
这里推荐大家可以看看腾讯课堂零声学院 Linux C/C++ 高级开发架构的【免费】课程:

课程内容的话和腾讯C++后台开发T8职级技术栈对标,围绕数据结构与算法、数据库、网络、操作系统、网络编程、分布式架构等方面全面提升,值得学习一波~


还有一份大厂面经集合:

和技术路线总结图:

资料领取

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜