C语言和C++属于“造轮子”语言,简直什么都能做。不过一般来说,C语言和C++次要还是做后盾(服务端)开发比拟多,包含:
通信公司后盾开发
互联网公司后盾开发
游戏公司后盾开发
……
当然这个后盾开发具体职责又有很多细分,比方:
有做数据处理和剖析的
有做根底协定和通信的
有做服务端底层利用优化的
甚至还有做后盾零碎驱动和内核的
……
从技术学习和理论使用的角度来看,C/C++和Java到底区别在哪?
C/C++,它和Java的确不太一样。C语言和C++,尤其C++,语言粒度细、机制多,性能尽管高,但语言自身的包袱也的确重,咱们更违心称它“造轮子”的语言!也正是因为C语言和C++性能好、粒度细,所以什么都能做。而Java自身就是一种服务于互联网软件开发(后端开发+客户端开发)的语言,它有一个显著的“生态圈”的概念,所以应用领域十分清晰。我集体感觉C语言和C++编程比Java还是要难一些,Java毕竟是纯应用层的,C语言和C++则对程序员能力的要求要更高一些。
C/C++的利用方向大多都是后盾或者server开发.,所以我认为必须要学会Linux零碎。
不管怎样,上面行将要介绍的这些学习路线和内容实用于以上所有状况。
根底
数据结构与算法
排序与KMP
红黑树
B树与B+树
Hash与布隆过滤器
设计模式
责任链模式
过滤器模式
公布订阅模式
工厂模式
代理模式
工程治理
Makefi le/cmake/conf i gure
git/svn与继续集成
Linux 零碎运行时参数命令
高性能网络设计
代码实现
网络io与select/poll/epoll
reactor的原理与实现
http/https web服务器的实现
websocket协定与服务器实现
计划剖析
服务器百万并发的实现
redis/memcached/Nginx网络组件
Posix API与网络协议栈
UDP可靠性协定 QUIC/KCP
根底组件实现
池式组件
手写线程池与性能剖析
ringbuffer与 内存池实现
异步申请池http/mysq1/redis/dns
mysq1连接池的实现
redis连接池的实现
高性能组件
原子操作CAS
音讯队列与无锁实现
定时器计划红黑树工夫轮最小堆
锁实现原理实现
服务器连贯保活设计
try/catch组 件的实现
开源组件
libevent/libev框架实战
异步日志计划log4cpp
应用层协定设计ProtoBuf/Thr ift
OpenssI对称加密与非对称加密
Json数据解析/Xml解析器和工具包
字符编码Unicode原理及编程实际
框架
协程框架实现NtyCo
协程的设计原理与工程案例
协程的调度器实现与性能测试
用户态协定栈NtyTCP
tcp/ip设计与EpolI的实现
tcp/ip定时器与滑动窗口的实现
滑动窗口/拥塞慢启动
中间件开发
MySQL
SQL语句,索引,存储过程,触发器
数据库连接池与SQL协定分析
存储引擎原理MyISAM与InnoDb
本人入手实现一个存储引擎
MySQI集群 计划与Rep1 ication原理
Redis
Redis相干命令与长久化
Redis连接池与协定实现_
存储原理与数据模型
主从同步与原子模型
集群计划主从复制/哨兵/集群
Nginx
Nginx反向代理与零碎参数配置conf原理
广告内容推送Nginx过滤模块的实现
拜访频率统计Nginx handler模块的实现
Nginx http状态机流程
过程间通信与Slab共享机制
MongoDB
接口编程与文档操作
集群计划与长久化备份
dfs
内核级反对的分布式存储Ceph
分布式小文件存储fastdfs
开源框架
Skynet
手撕Skynet高性能网关
actor实现与cluster集群/负载平衡
:skynet网络模块热更新数据共享
ZeroMQ
ZeroMQ Router-Dealer模式实现
音讯模型与工程案例
网络机制与性能剖析
DPDK
PCI原理与testpmd/ 13fwd/skeleton
kni数据流程与协定栈解析
DNS协定解析与服务器实现
高性能Nginx网关实现
半虛拟化virtio与vhost减速
Linux内核源码
过程治理
过程治理和调度
锁与过程间通信
零碎调用与自定义syscall的实现
内存治理
物理内存治理
过程虚拟内存mm_ struct剖析
我的项目:页面回收和页替换
内存治理
物理内存治理
过程虚拟内存mm_ struct剖析
页面回收和页替换
文件系统
虚构文件系统
Ext文件系统族
无长久存储的文件系统
扩大属性和访问控制表
设施驱动
内核编译与虚拟机系统升级
过程间通信组件实现
虚构网络适配器的实现
性能剖析
性能工具
高性能代码构建零碎tundra
Http压测工具WRK
网站压测工具webbench
调试库
内存调试性能剖析工具Valgr ind
谷歌C++测试框架GoogleTest
内存调配跟踪库MemTrack
内核跟踪
内核探测SystemTap
热图剖析与生成
配套参考书籍材料
MySQL:《高性 能MySQL第3版》
Nginx:《深 入了解Nginx:模块开发与架构剖析(第2版)》(陶辉)
Redis:《Redis 5设计与源码剖析》(陈 雷)
Linux内核:《深 入了解Linux内核架构》(郭旭 译)
数据结构与算法:《算法导论》 (第3版)
性能剖析:《性能之巅 洞悉零碎、企业与云计算》
MongoDB:《MongoDB权威 指南》
Ceph:《Cep分布式存储学 习指南》(Ceph中 国社区)
Docker:《Docker容器 与容器云(第2版)》
TCP/IP:《Tcp/Ip详解卷一卷二卷三》
Linux零碎编程:《Unix高 级环境编程》
计算机:《深刻了解计 算机零碎》
ZeroMQ:《ZeroMQ: 云时代极速音讯通信库》
DPDK:《深 入浅出DPDK》
**以上有有余的中央欢送指出探讨,感觉不错的敌人心愿能失去您的转发反对
最初,如果感觉学习材料难找的话,能够增加C/C++Linux学习交换群:960994558 学习材料曾经共享在群里了,期待你的退出~**