C/C++Linux服务器开发完整学习路线(含免费学习资料下载地址)
相信大部分同学刚毕业或者想转行做c++服务端开发的时候都很迷茫不知道从哪里开始学习,于是准备参加各种培训班或者网络培训,有不知道该怎么选择,对于在校学生或者刚出来就业的新人无疑是沉重都打击,但是却不知道从哪里下手。我写这篇文章的目的就是为了帮助更多想入行或者想转行做c++服务器的新人避免走更多的弯路,最终能够顺利的掌握相关知识找到心仪的工作。
一. 基础阶段
c/c++编程语言
linux基础
数据结构与算法
设计模式
脚本语言(可选)
二. 入门阶段
linux系统编程
linux网络编程
三. 进阶阶段
数据库mysql
分布式缓存redis
网络库
四. 项目实践阶段
百度网盘实战项目
五. 高级阶段
nginx
zookeeper
消息队列
skynet
boost
负载均衡
容器
rpc
微服务
……
六.系统学习
C/C++Linux服务器开发系统学习视频链接:C/C++Linux服务器开发/Linux后台开发架构师-学习视频
附上腾讯核心技术学习路线(T1-T9)
一. 基础阶段
1. c/c++编程语言
c语言必备的入门书籍就是这本《C程序设计语言》
剖析C/C++编程精华
视频链接:https://pan.baidu.com/s/1_3cA9dz6vRp5iwBTfvhA8g密码:cirr
2. linux基础
linux系统安装和命令、工具使用
c++服务器程序基本都是运行在linux系统下面,所以对于linux的系统安装、命令工具等的使用要学会。 下面视频获取点击:学习资料
3. 数据结构与算法
电子版书籍链接: https://pan.baidu.com/s/14s4FDJaTaDrUqh0AJgouag密码:e729
4. 设计模式
设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
视频链接:https://pan.baidu.com/s/1EL8GUdwSqwRImikdCHTsmw密码:xehz
5. 脚本语言(可选)
做c++开发很多情况下会和其他脚本语言做混合编程,特别是游戏公司以c++配合lua脚本编程作为主流,也有一些用python, 所以建议大家学一下这两门脚本语言
lua书籍推荐,包括入门书籍《lua程序设计》和深入原理书籍《lua设计与实现》
二. 入门阶段
1. linux系统编程
linux下的编程你首先要学会文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC等方面的内容。 下面视频获取点击:学习资料
2. linux网络编程
网络编程可以编写网络通讯程序,比如聊天程序、数据传输程序、文件传输程序等到;可以让你对网络通讯有更深的理解,当你遇到网络通讯方面的问题时,会有很深入的分析;为学习涌现很多分布式应用系统打下坚实的基础。
除了学习资料之外,其实还有很多面试的资料,包括面试题、教程、简历模板等,我也是看这些资料,还有群里大牛的指导,才得到了这份让我非常满意的工作。
IT编程技术交流qun 学习资料,免费领取
相比很多人学C++学的怀疑人生,我学习的过程其实没有走多少弯路,毕竟一开始就找到了优质的教程和学习资料,而且大牛带飞嘛,结果自然不同凡响。
我是感觉学习任何一门技术都不能闭门造车,因为学习过程中很多问题不是你一个人遇到过,多和同仁交流,钻牛角尖的概率低很多。
另外,作为一个过来人,也想提醒大家:想要学习C++,一定要努力且有耐心,不可能一天就能走到罗马,唯一可以做的,就是立刻出发。
三. 进阶阶段
1. 数据库mysql
入门推荐《MySQL必知必会》这是最好的数据库入门书,在Amazon上长期排在数据库销售榜首,建议想快速了解数据库原理和MySQL的新手阅读。快餐性质,简洁明快,小开本,而且很薄,比较好读。
MySQL数据库视频讲解链接:https://pan.baidu.com/s/1mWqUinQysWwbJZCAxRLrGw
密码:npa4
2. 分布式缓存redis
《Redis 设计与实现》一书全面而完整地讲解了 Redis 的内部运行机制, 对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍, 展示了这些功能的核心数据结构以及关键的算法思想。 通过阅读本书, 读者可以快速、有效地了解 Redis 的内部构造以及运作机制, 从而学会如何更高效地使用 Redis。
redis相关视频讲解链接:https://pan.baidu.com/s/1hD1GK8HJkHtf5RG1enVGDA
密码:4bfa
3. 网络库
linux c/c++网络库比较多,有boost.asio、libevent、libev、libuv、muduo、ace等, 建议找一个代码比较少够精简的来反复学习,琢磨内部原理,有效提升网络编程能力。我自己反复研究了muduo网络库几遍收获不少,你们可以选libevent、libev、libuv、muduo中的一个学习即可,其中libev和muduo最为精简,容易学习。
四. 项目实践阶段
1. 大数据云存储
五. 高级阶段
1. nginx
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。
2. zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
3. 消息队列
当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等,
4. skynet
Skynet是一个基于C跟lua的开源服务端并发框架, 现在很多游戏公司都在用它,特别是中小型的公司,棋牌公司,越来越多公司采用, 想往游戏方面发展建议认真学一下原理。
六.系统学习推荐
技术的瓶颈是认知的问题,认知不是知其名,还需要知其因,更需要知其原。
对于自学的朋友,耗时比较久,技术栈不完善,架构不成体系,自律性差。学习进阶、完善技术栈体系、提升自己、跳槽涨薪、往更高层次发展
推荐这个C/C++Linux 服务器开发进阶高级架构学习相关视频点击链接订阅后观看:C/C++Linux服务器开发/Linux后台开发架构师-学习视频