开门,送快递的!
共 1896字,需浏览 4分钟
·
2021-07-18 17:41
大家好,我是轩辕。
前段时间,我写了一篇C/C++后端开发学习路线的文章,引起了很多朋友热议,很多人说,路线图清楚了,可是不懂学习方法啊,今天就来说说这个话题。
如何学好C++和后端开发
学好 C/C++ 体系的技术栈必须结合操作系统的运行机制来学习。展开来说,就是你必须掌握操作系统层面的几大基础知识:
第一个基础知识是汇编。 第二个基础知识是编译、链接与运行时体系知识。 第三个基础知识是狭义的操作系统原理。 第四个基础知识是多线程知识。 第五个是网络编程,直白地说就是 Socket 编程。
首先,应该打好基础。 我们要熟练使用C++,还要结合具体的操作系统学习C++,熟悉某操作系统的API函数,以及与系统API关联的各类技术,比如各种进程与线程函数、多线程资源同步函数、文件操作函数、系统时间函数、内存分配与管理函数、网络编程、PE或ELF文件的编译、链接原理等。
如果已打好基础,就可以找一些高质量的开源项目去实战。 最好找一些没有复杂业务的开源项目,或者是自己熟悉其业务的开源项目(如IM系统)。如果不熟悉其业务,那么不但要学习其业务(软件功能),还要学习其源码,最终两者难以兼顾。
因此,在学习这些项目之前,应该先确定自己的学习目的。 如果学习目的是学习和借鉴这款软件的架构设计,那么建议先进行整体把握,不要一开始就迷失在细枝末节中,这叫作“粗读”。如果学习目的是学习开源软件在一些细节上的处理方法,那么可以有针对性地阅读自己感兴趣的模块,深入每一行代码。当然,学习适合自己当前阶段的项目源码才是最好的。
学习的过程一般是接触、熟悉、模仿、创造。 不管对什么开源项目,在没有任何思路或者解决方案时,我们都应该先接触、熟悉、不断模仿,做到至少心中有一套对某场景的解决方案,再来谈创新、批判及改造。
总之,C++是一门讲究深度的编程语言,其“深度”不体现在掌握多少C++语法,而在于是否熟悉所写的C++代码背后的系统原理,这是需要长期积累的,当然,一旦学成,就可以快速学习其他编程语言和框架。
看书
说到学习方法,在众多学习方法中,看书无疑是最主要的一种。
问大家一个问题,你有多久没看到过C++方面的新书了?
如果去互联网上搜索C++方面的书籍推荐,大多数还停留在C++ Primer、Effective系列,可能还有一些STL源码剖析、Boost库之类的,但这些书,都已经是十几二十年前的了。
相对Java、Python两个方向每年都有大量的图书上市,C++这边显得落寞很多,一方面离不开互联网、大数据、人工智能一波又一波浪潮的兴起,另一方面,也与资本和各大培训机构的推波助澜有一些关系。
但实际上,C++这门语言也在悄然发生着许多变化,而一些陈旧的教材自然无法覆盖到这些最新的内容。
好在前段时间,电子工业出版社出了一本C++的新书,我第一时间就入手尝鲜了(声明一下,今天不是恰饭卖书,是真心推荐哈):
以往的一些C++技术栈开发的书有一个问题,要么就是纯粹讲编程语言语法的,要么是单独讲Unix/Linux/Windows系统编程的,却基本没看到二者的结合。
而这本书,不是学院派的那种偏理论教材,而是从实际工作出发,系统详尽的介绍了C++后端开发技术栈相关的一整套配套技术知识,不仅有现代C++语法知识讲解,还有C++开发涉及到的编译、调试工具和技术,此外还有多线程编程、网络编程、网络服务架构等等众多干货,实在是C++后端开发同学不可缺少的一部宝典。
具体的内容可以看看这张图:
这本书的作者张远龙,也是我的好朋友,曾就职于携程、字节跳动等多家大厂,拥有多年的C++开发经验,多年经验汇聚成了这本书,拿在手里相当有分量。
我听说这本书京东还没到货就已经预售出2000册,到货直接登顶京东计算机图书TOP1,我为粉丝们特意申请到了5折半价包邮的链接,大家可以通过下面的链接抢购(你去京东上是搜不到这个价格的哦):
赠书
看到这里的朋友有福了!
为了回馈读者们的支持,我向电子工业出版社的杨老师为大家申请到了6本赠书,大家可以在评论区写下自己为什么选择C++的原因,我将挑选写的不错的放出,24小时内点赞最高的前六名,将获得赠书。
不过为了防止羊毛党,本次活动只限发文时已关注的朋友参与,另外,留言字数在20字以上作数。
对了,拿到书的朋友答应我,入手后可要认真看,不要拿去垫显示器哦~