在2018年,我为什么要学习C++?

语言之争是程序员永远不会疲倦的闲暇话题,初学者的语言选择也是大家所津津乐道的。回望这几年,各种新语言层出不穷,Python、Java、C#,那学习 C++ 的意义何在?

C++有一个最重要的特性,就是在某些领域具有不可替代的作用。驱动是要用C++,启动代码是要用C++,Android底层要C++,就连2018年最火的区块链,也和C++脱不了关系。

C++ 擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而 C++ 就适应的问题规模而论,大小由之。C++ 不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

另外,C++入门难,新生血液实在太少了,长期风险低。Python、Java、C#等入门简单,导致直接结果就是,学Python、Java、C#的初学者几何性地倍增,以后的竞争就会越大,这方面来说,C++算是因祸得福了。

在2018年,我为什么要学习C++?_第1张图片

C++ 能做什么?

在每年的 TIOBE 编程语言排行榜中,我们可以看到 C++ 一直保持在该榜单的前五名,更多的时候是前三,为什么 C++ 的生命力一直这么旺盛?

套用Bjarne Stroustrup博士的一句话,“C++就像一种新语言,各部分组合较之前更为顺畅。其更高层次的编程风格较之前更为自然,也一如既往的高效。”

因为 C++ 有一个最重要的特性,就是在某些领域具有不可替代的作用。驱动是要用 C++、启动代码是要用 C++、就连 Android 的的底层也和 C++ 脱不了关系。虽然 C++ 在很多大型应用中,无法施展拳脚;但在不少领域,却如同巨人一般又是不可或缺的顶梁柱。在游戏、HPC、编译器、金融财务领域等领域中,C++ 一直保持着唯我独尊的状态。

游戏行业:几乎所有 3A 游戏都是使用 C++ 编写的。大众公认电子游戏的开发者是软件行业里回报最高的工作之一,也是需求量最大的领域之一。因为速度非常重要,所以编写高效的代码就是最基本的要求。

HPC:以极限速度处理数据,要求对底层硬件有深刻的理解,这类知识可以直接应用在语言中。通用图形处理器及 CUDA、OpenCL 之类的并行计算框架的出现,引发了对有这类技术的 C++ 程序员的需求。

编译器:LLVM 项目如此成功,以致于很难找到一种既未使用 LLVM 库编写前端,也没有使用 LLVM 生成字节码的流行语言,而这些全都离不开 C++。

除此之外,金融领域也有很多工作需要有能力编写低延迟代码的程序员。在这个领域,数学背景也是一大加分亮点。

学C++该看什么书?

在2018年,我为什么要学习C++?_第2张图片

入门类:

C++ Primer, 3rd Edition

Thinking in C++, 2nd Edition

C++ 大学教程(这本书我没看过,但不少初学者说不错,留此存目)

The C++ Standard Library: A Tutorial and Reference

进阶类:

The C++ Programming Language, Special Edition

The Design and Evolution of C++

Inside C++ Object Model

C++ Templates: The Complete Guide

STL 源码剖析

Generic Programming and the STL

Modern C++ Design: Generic Programming and Design Patterns Applied

应用技巧类:

Effective C++, 2nd Editon

More Effective C++

Exceptional C++

More Exceptional C++

Effective ST

如何学好 C++?

1、C++ 需要不断地练习。计算机是一门注重实践的学科,一边学习,一边练习是非常好的学习方式。在看懂教材后及时着手去写代码,千万不要停留在阅读后的满足。当然,你也可以找一些开源项目进行练习。找一些小项目进行练习不仅能够提高你的编码能力,还可以在实践中发现自己的不足。通过不断地练习,你一定会成为你想变成的大神。

2、不要死抠语法。初学者最容易犯的错误就是抱着一本大书死抠语法,结果语法倒是很熟,程序还是一行都不会写,学习的积极性也受到很大打击。学习编程,语法是最不重要的,最重要的是思路。语法可以从任何一本书上查出来,比如说,用到循环语句的时候,你忘了语法,你可以翻书去查,但如果该用循环的时候你不知道用循环,该赋值的时候不知道用赋值,语法再熟有什么用呢?

3、建立面向对象的概念。不过这一关就永远写不出真正的 C++ 程序,因此从开始就要培养这一思维方式,不必一蹴而就,要慢慢来,一点一点把思想方法转变过去。

4、尽早接触标准库。这也就是我把 The C++ Standard Library: A Tutorial and Reference 归入入门类的出发点,标准库的概念接触越早越好,要把使用标准库作为天经地义的事情,作为自己的编程习惯,能用的地方一定要用。

5、认真分析例题。从别人的源代码中学习是最简单的学习方法。书上的例题大部分都是作者精心挑选的,最能体现某种语法特点或思想观念的程序,认真体会这些例题,理解程序的逻辑和结构,多问自己几个问题,例如:作者为什么要设计这个类?这个类有什么作用?作者是如何设计这个类的?如何使用这个类的?

6、培养良好的编程风格,积累编程技巧。只要你对 C++ 有了一个初步的概念,就可以开始看应用技巧类书籍了。当然初学者不可能理解很深,好在这些书也不是看一遍就够的,有些条款随着你学习的深入,反复阅读会有更深的体会。

7、擅于利用身边的工具与环境。大多数编程环境都提供丰富的工具供用户使用,比如调试器等,参照用户手册,利用这些工具对自己写的程序进行分析、监视和跟踪,可以在很大程度上提搞学习和工作效率。另外可以去互联网搜索一下相关知识,以及去论坛问。

你可能感兴趣的:(在2018年,我为什么要学习C++?)