本篇只讲述我的经验,有不同看法的大伙一起评论区讨论1. 学徒阶段:C++语法,包括C++11重要特性,比如线程、智能指针之类的。此阶段前面的基础语法,就是条件语句、指针、结构体、类等那些一定要扎实,可以多练习语法题来巩固,比如牛客网上就可以练习,后面的新特性智能指针、线程之类的可以简单有个印象即可。对应资料我推荐b站码农论坛。2. 入门阶段:这一阶段需要学习数据结构、计算机网络、操作系统。学习数据结构的时候配合刷题来加深自己对数据结构的理解,通过前期扎实的语法基础,实现基本的数据结构。计算机网络和操作系统大家可以同步进行学习,有能力的可以训练对应的代码,比如计算机网络对应网络编程,操作系统对应Linux系统编程,这个阶段你将对网络有一个大概的认知,对学徒阶段的线程会有新的理解,对进程也会有新的理解。这一阶段主要是开始刷题(算法题),并且对计算机有一个初步的认识。(这些内容我看了很多教程,也跟着学校认真学了,就不推荐了,大家只要认真学就可以了,忘了回头补充一下即可)3. 实习门槛阶段:这一阶段需要学习网络编程、Linux系统编程,学会写makefile或者cmake,使用gdb等。也许还会要求看对应的书籍,比如游双的那本高性能服务器,APUE等。这一阶段就是需要写代码练习,熟悉各种api如何操作,深挖一些细节。比如网络编程那几个api的细节,进程线程的区别、进程通信、线程通信等。可以参考一些面经找到一些答案。对于编写makefile或者cmake时,需要你熟悉计算机组成原理的编译和链接,希望大伙对于这方面要弄清楚,编译四个阶段做了什么事情之类的(这个很重要)。我还是推荐b站码农论坛。4. 跨越实习门槛阶段:这一阶段在我看来就是代表你已经有了不错的基础知识了,可以开始做项目,并且之后可以拿到offer了。这一阶段主要的事情就是做项目,要把之前所有的知识串起来,可以增添数据库等内容在你的项目之中,可以让你对后台软件开发有了一个大概的认知。或者也可以做一些轮子项目,比如学习网络编程的时候深入各种模式,什么阻塞同步、阻塞异步、非阻塞异步之类的,可以学习陈硕大佬的muduo网络库。webserver就是游双大佬那本高性能服务器里的东西,只不过作为项目来说太儿戏了,学习熟悉api还可以。(项目大伙自己找吧,就不推荐了,要不说我是卖课的了)5. 扩展阶段:经历以上四个阶段,你手上有2 - 3个项目,你就已经达到找工作的要求了。如果你还有时间就可以补充相关行业知识了,比如你可以学习一下Qt、音视频、嵌入式之类的,了解一下你感兴趣行业的知识。最后再多说一句,后台开发是通用路线,公司大多不会要求你很多特定领域知识,基础一定是最重要的,八股很重要,大家要深入理解,不是去背,弄懂它,如果又想进的公司需要特定知识,你就按照扩展阶段去补充就可以了。当然这只是我的经验,如果你一开始就打定主意要干什么行业,你可以参考b站程序员老秦给出的学习路线去学习。各位加油!