微信搜「 后端技术学堂 」程序员的学习课堂,回复「1024」获取 50 本计算机编程学习电子书,回复「路线」获取最全面技术学习路线思维导图
这个问题有点历史了,不过我想换个角度,从 C++ 应用方向来回答下这个问题。当初学习C++也是用知乎和 Google 搜索学习方法,现在把自己的学习经验分享出来给后来的同学。
首先,只是掌握 C++ 还不够,所有编程语言都只是个工具而已,本质上我们要用语言工具去实现产品逻辑,软件开发就是要做一个东西出来。
所以先想清楚,你想用C++做哪些事或者从事哪方面工作?
方向不同,需要学习掌握的内容也大不相同。我大概罗列一下,C++的应用方向,包括但不限于:
从上面可以看出,一样都是学 C++,应用方向不同,技能要求和需要掌握的技术栈也不一样。其中需求比较大,也是大部分人选择的方向是「C++服务器后台开发」方向,也是我自身工作相关内容。
在招聘网站找了一个「腾讯的 C++ 研发工程师招聘要求」,可以看到除了对 C++ 语言的要求外,对面试者的其他要求也不少,我们可以从招聘需求反推需要掌握的技能。
「如何用一年时间掌握C++」这个问题有点大,能力有限,我来回答如何用一年时间掌握C++服务器后台开发?
总结下 C++ 服务器后台开发的一般学习路线,可以归类为以下 4 个阶段:
C++后台开发,顾名思义也要先学 C++ 。题主有C语言基础的话,C++的学习还是相对会容易一些,但你要说「精通」,即使是用C++这么多年,也不敢在简历上写这两个字。
敢说精通C++的人要么是真的特别厉害,要么是半桶水学会了一点拿出来忽悠面试官,第二种人早晚会被遭受面试官‘毒打’,要是限定一年时间,达到熟练使用C++的水平没有问题,前提是按正确的学习路线,不要走了弯路。
开始之前,还是先来看下,C++学习到底要学哪些东西:
怎么学C++?看书学!最高效的学习方式,看经典图书。
我当初在学习C++的时候,第一件事就是 Google 搜索前辈们推荐的 C++ 经典书单,前人的经验能让你少走弯路,这里我也分享下自己学习C++,从入门到进阶之路看过的图书:基础 3 本,进阶 3 本,现代C++ 1本。
自学C++相比Java和Python还是要难一些,因为C++更接近操作系统底层,需要自己管理内存等等。
一定要看的书,总共 7 本书(带封面,方便你找),一年应该看得完。
所谓的现代C++就是C++1X 甚至 C++20 引入的新特性,让C++这门「古老」的编程语言更加现代化。学完上面推荐的书籍,你已经是算的上是掌握了传统 C++ 用法,如何快速上手现代 C++ 特性,入门我推荐开源电子书:
本书号称『高速上手』,从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容。这些特性并不需要全部掌握,只需针对自己的使用需求和特定的应用场景,学习、查阅最适合自己的新特性即可。
这本书已在Github开源 changkun/modern-cpp-tutorial
以上,多了也不推荐,看完这 7 本书差不多算是掌握C++,要达到熟练掌握,还需要项目练习和代码量积累,至于找哪些适合的练手项目,这个我后面会说。
其实 C++ 语言学习在 C++ 后台开发中,只占了非常非常小一的部分,要知道语言只是一个工具,你要做开发,工具使用是最低的要求,还需要学习以下内容才能符合岗位要求。
后端开发工作中经常用到 Java、C++、Python、Golang ,这些语言称为高级编程语言,之所以称为高级语言,是它们接近我们日常交流的自然语言,离计算机底层远。但所有的高级语言最终都会转化成汇编->计算机指令->控制流操控计算机硬件。
所以学习计算机构成和工作原理、操作系统这些基础知识,能够加深我们对高级语言的理解。
计算机科学技术 CS(Computer Science),大学计算机专业课,计算机基础是软件开发的基本功,当然也是C++开发的基本功,下面是一份中中科大的计算机技术本科主要课程结构安排。
数据结构大家最熟悉,大家面试刷的算法题本质上就是对各种数据结构的运用。
在完成上述学习内容的同时,可以同步找一些开源项目源码来学习,任何一门编程语言学习都需要多动手,一直看书不动手敲代码的效果也不好,可以试着着用C++造几个轮子玩玩,不仅可以积累代码量,同时也是一件很有成就感的事,编程是个手艺活,无他,唯手熟尔。
还是那句话,对于C++初学者推荐看书+视频的方式学习。
新年新气象,感谢各位读者大大对 @程序员柠檬橙 一年以来的关注和支持!
微信红包封面送给大家,数量有限,比手速拼运气,手慢无哦!
另外,牛气好运分享给更多小伙伴,祝大家新年牛气冲天~
C/C++后台研发需要点亮哪些技能树?学习路线规划
C++ 能用来做什么?八大就业方向分析
全网最全总结,如何高效学习C++软件开发(详细书单)
这个大学在Github开源了计算机课程,看完在家上个 985
我是@程序员柠檬橙 关注我,学习更多编程知识!若有帮助,请点赞转发支持~
点击下方「了解更多」下载学习资源