C/C++Linux 服务器开发完整学习路线(含免费学习资料下载地址)
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 的开源服务端并发框架, 现在很多游戏公司都在用它,特别是中小型的公司,棋牌公司,越来越多公司采用, 想往游戏方面发展建议认真学一下原理。
六.系统学习推荐
技术的瓶颈是认知的问题,认知不是知其名,还需要知其因,更需要知其原。
评论