零基础C++学习路线(亲身经历版)

0 阅读4分钟

前言:以下都来自个人亲身经历,因为本人之前408选手,所以推荐的几乎都是实操,如果时间充足或者是大一大二的学生还是强烈建议每个阶段都看书深入学习

**必学:**C++语法,数据结构,Linux系统编程,Linux网络编程

避坑指南:

  1. 下面的全部内容如果只是为了抓紧找工作,去B站看网课完全够用,书可以等工作后再补(比如《C++ Primer》《UNIX环境高级编程》)
  2. 实习/初阶工作别死磕选音视频、Qt、嵌入式还是后台, 初期你根本没足够的行业经验做判断。首要目标是掌握下面这些所有技术方向都需要的通用基础。拿到几个Offer后,再结合兴趣和前景选也不迟。
  3. 下面列的“必学核心”,就是公司招人的时候最看重的“基础”。掌握它们,你才有选择方向的资本。

第一阶段:c++语法

  • 记得边看视频边跟着敲,千万别囫囵吞枣的过一遍!!
  • 这个阶段要的就是速度,时间拉长到几个月的话容易学了前面忘了后面
  • 至于笔记我个人感觉没必要写,直接看视频里面总结好的就行
  • 学完之后可以自己试着写个简单增删改查的管理系统出来,没问题了就直接到下一个阶段
  • 务必学习 C++11核心特性! (智能指针 std::shared_ptr/unique_ptr、自动类型推导auto、范围for循环)。

黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili

第二阶段:数据结构

  • 建议把每种数据结构都自己实现一遍,写个增删改查的demo出来
  • 如果实现出来的困难也得尽量能看懂每种结构,因为后面刷算法题的时候要用到
  • 链表操作、二叉树遍历(前中后序)、堆(优先队列)、哈希表原理。图论基础了解即可(除非面特定岗位)

第01周a--前言_哔哩哔哩_bilibili

第三阶段:Linux系统编程

  • 搞懂Linux下的进程(Process)和线程(Thread) 怎么创建、通信、同步。
  • 将视频里面案例都敲一遍,能理解多线程进程就差不多了

黑马程序员-Linux系统编程_哔哩哔哩_bilibili

第四阶段:Linux网络编程

  • 掌握socket编程,tcp/udp协议
  • 不仅仅要会使用select、epoll,还要理解它们的底层实现原理,这块属于面试的高频问题

黑马程序员-Linux网络编程_哔哩哔哩_bilibili

第五阶段:力扣+八股+项目(同步准备)

1、力扣:

  • 学完数据结构就开始准备!!!!
  • 这个时候基本上该学的知识点都学的差不多了,可以开始准备刷题
  • 先从力扣简单的题目开始,刚开始一道题花上一两个钟都很正常,但也没必要死磕一道题
  • 下面推荐一个up主,可以跟着他的视频合集顺序来走
  • 没必要全部都看(时间充分的当我没说),遇到不理解的时候再去翻一翻就行

手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili

2、八股:

  • 网上或者微信公众号随便搜就有一堆,不推荐具体那个了
  • **方法:**看总结 -> 理解 -> 用自己的话复述 -> 定期回顾。理解比死记重要!

3、项目

可以去github找找高分的开源项目看,最好是找有完整文档的,将开源其中一部分模块看懂,就可以往简历上写了。或者是把在学校写过的课设包装一下换个名字之类的。

第六阶段:加分技能

CMake,git,Docker,Linux命令,gdb调试等……….

其他碎碎念:

遥想当初在学校看网上铺天盖地的学习路线,加上身边没有人指路,导致走过不少弯路、浪费不少时间。

在学校的时候看过很多路线都没有概念,不知道要学多久,以及学完这个之后要接着学什么。不知道学的东西离实习要求的差距有多大。但当工作接触了一段时间后再回过头看,真正要学的其实也不多,找到实习的核心技能就上面这些“基础” 。学完并掌握它们,足够你拿下中小厂实习和不少校招Offer。

学完这些并且掌握的话,完全够你找到实习。如果要进大厂的话这些还是远远不够,虽然要学的也基本是这些,但主要的差距还是项目跟学历以及你理论知识掌握的深度,他们很喜欢一层一层的问,如果理论知识掌握的不行,很容易就给pass。