C/C++教程

硬核干货 | C++后台开发学习路线

本文主要是介绍硬核干货 | C++后台开发学习路线,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 2020秋招提前批
  • C/C++相关开发
  • 拿到腾讯、华为等offer

在这里插入图片描述

学习路线及时间安排

推荐时间为4个月,包括四部分:语言,计算机基础知识,项目基础知识,项目实践。

语言

  • 推荐学习1个月
    • 学习方针:视频为主,书籍为辅。

    • 配套视频:C语言,C++语言

    • C++ Primer Plus

      • 集中学习该书的1~8章,涉及C语言基础语法及指针、结构体的使用。
    • C和指针

      • 该书全面深入的剖析了指针的概念与使用,是C语言的进阶。
    • C++ Primer

      • 作为C++查询的工具书,相当于新华词典,里面会涉及C++的很多技术细节,实际工程中用到的并不会太多。平时遇到问题可以查询该书,另外也可以作为面试的参考书。
    • STL源码解析

      • 涉及C++标准模板库的源码实现,其中vector、map的实现需要重点关注,比如内存分配,底层数据结构等。
        在这里插入图片描述

计算机基础知识

  • 推荐学习1个月
  • 配套视频:数据结构
  • 数据结构
    • 视频为主,书籍为辅。看小甲鱼的数据结构,该视频以大话数据结构为蓝本讲解,了解链表,栈,队列,二叉树,哈希表,堆等基础的数据结构。
  • 算法
    • 推荐直接刷题,先临摹再实战。推荐书籍剑指offer,左程云大神的程序员代码面试指南;刷题网站推荐牛客网。
  • 操作系统
    • 推荐书籍学习,重点看深入理解计算机系统的6,7,9,10章。主要理解线程,进程,虚拟内存及锁机制。
  • 计算机网络
    • 推荐书籍学习。主要理解TCP/UDP/HTTP三种协议。其中TCP/UDP以谢希仁老师的计算机网络为主,HTTP以图解HTTP协议为主。
  • 设计模式
    • 推荐书籍学习,大话设计模式。设计模式可以放在所有知识的最后进行学习。
      在这里插入图片描述

项目基础知识

  • 推荐学习1个月
  • 配套视频:Linux,数据库
  • Linux基本命令
    • 该部分主要以看视频为主,记住常用的即可,其余的在实际使用时即用即搜。
  • Linux系统编程
    • 在Linux下进行编程,会涉及到与系统的交互,内存访问,需要学习Linux系统API用法。
  • 网络编程
    • 视频为主,书籍为辅。书籍先看tcp/ip网络编程查漏补缺,补齐网络编程基础知识,然后看Linux高性能编程。
  • 数据库
    • 视频为主,书籍为辅。MySQL和Redis数据库是当前面试的热门,书籍先看MySQL必知必会,再看Redis设计与实现。
      在这里插入图片描述

项目实践

  • 项目名称为Linux下C++轻量级Web服务器开发,实现web端用户注册,登录功能,经压力测试可以实现上万的并发连接。(测试机器为Intel i7 7700,16G内存)
  • 推荐学习1个月
  • 线程池
    • 涉及线程,锁机制。使用一个工作队列完全解除了主线程和工作线程的耦合关系:主线程往工作队列中插入任务,工作线程通过竞争来取得任务并执行它。
  • HTTP请求与响应
    • 涉及Linux系统编程,网络编程,TCP和HTTP协议。根据状态转移,通过主从状态机封装了http连接类。其中,主状态机在内部调用从状态机,从状态机将处理状态和数据传给主状态机。
  • 注册登录
    • 涉及少许网页html知识。实现用户名和密码校验,另外通过html文件设置action实现跳转。
  • 定时器
    • 涉及Linux系统信号及数据结构的使用。由于非活跃连接占用了连接资源,严重影响服务器的性能,通过实现一个服务器定时器,处理这种非活跃连接,释放连接资源。
  • 数据库连接池
    • 涉及MySQL数据库。建立数据库连接池,通过重复使用这些已经建立的数据库连接,解决频繁建立连接的缺点,从而提高系统性能。
  • 同步/异步日志系统
    • 涉及设计模式,自定义阻塞队列。同步/异步日志系统主要涉及了两个模块,一个是日志模块,一个是阻塞队列模块,其中加入阻塞队列模块主要是解决异步写入日志做准备。
  • 压力测试
    • 阅读Webbench源码,对进程加深理解。通过Webbench创建多个进程,每个进程通过HTTP连接访问服务器,完成压力测试。
      在这里插入图片描述

相关资料

链接:https://pan.baidu.com/s/1eHVxlwVysOcAbAkerpx2bg
提取码:ulha

C/C++linux服务器开发/架构师学习地址

最新C/C++linux服务器开发/架构师面试题、学习资料、教学视频和学习路线脑图(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),有需要的可以自行添加学习交流群960994558

这篇关于硬核干货 | C++后台开发学习路线的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!