更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

学习C++编程语言其实没那么难,学习C++要多转换思路

  • 发布:C++培训
  • 来源:学习笔记
  • 时间:2017-05-15 16:33

想必只要是以C++作为启蒙语言的程序员,只要工作常用不是C++,都会对重新使用这门“万能”的语言抱有一丝恐惧。以C++作为初学语言甚至影响到一部分新手程序员去学习其它语言的信心。

C++之父Bjarne Stroustrup

C++之父Bjarne Stroustrup

如果把编程语言比作程序员的工具箱,那么C++这个工具箱无疑是目前我们接触的主流语言中最大、最沉的一个。

为什么会这样?举个不恰当的例子,现在你要把一颗钉子锤到木板里,其它语言的工具箱会直接给你一把锤子,你直接用就行了;而在C++的工具箱里,你会找到好几把锤子,作为初学者第一反应肯定是懵比的,怎么选?是不是用哪一把都可以?然后你才发现每把锤子还附带了一页说明书,里面的内容大致是这样的:“当钉子为XX型号,木板材质为XX时,请使用这把锤子”,这个时候你认真阅读每一把锤子的说明书,直到其中一把锤子的说明书写着:“这把锤子是一把通用的锤子,无论是什么型号的钉子、什么材质的木板,都可以用这把锤子”。

再举一个例子,《孔乙己》一文中曾有一句经典的话:你可知道“茴”字有几种写法?

在C++里面,尤其从C++11之后,你可以这么问:你可知道数组的初始化有几种写法?你可知道vector的构造函数有多少种?你可知道...

作为初学者,很少有人不被C++那复杂的语言细节、“灵活性”、繁多的选择所困惑,初学者很难知道当他碰到一个问题时,解决这个问题的最佳实践是什么。

作为初学者,很少有人在第一次看到数十屏的编译错误时,能准确说出自己到底错哪儿了,初学者很难从C++的编译错误信息中快速发现自己的编码问题。

可以先抬头看看其它的编程语言

现在仍然在写C++的程序员,或曾经被C++伤害过的程序员,如果你们长期在使用单一的编程语言,且接触其它编程语言不多,那么我建议各位可以先放下手头的工作,抬头看看最近几年编程语言的发展以及一些新的编程语言。

最近两年,对整个程序员社区贡献最大的语言无疑就是Golang(下文简称Go),不少程序员可能对社区谈起Go这件事已经免疫了,甚至每次看到就会心想“怎么又是它”,然而这才说明这门语言带来的革命性变化。

Go语言吉祥物Gopher

自从Go语言出现后,“协程”这种原本严重依靠程序员脑力去设计的编程模式突然变得唾手可得。就正如下面的漫画中提到的,Go语言的出现让原本多线程、多进程编程的专家显得更普通了。

当人们都在朋友圈歌颂《人民的名义》,在各大评分网站不吝对《摔跤吧!爸爸》竖起大拇指的时候,我们都想凑个热闹;而这种心态,也应该放到对编程语言的学习上。其它的新兴语言(或某些语言的新版本)也会带给你耳目一新的感觉,例如Python 3,Rust,Haskell等。

这些新的编程语言不但学习成本远远低于C++,而且它们会消除你在程序设计上的一些桎梏,可能还会让你在工程设计时得到极大的启发,在更短时间内编写出更高性能、易维护的程序。

最近的明星语言从诞生之初,就很注意新手文档、API文档等手册,一周之内你就能掌握新编程语言的大概,而且这个过程还很有趣,与啃《C++ Primer》可不一样。

现在不写C++的也可以回头看一看

我们前面不是还在说C++“坏话”吗,怎么现在又转变态度了?

C++这门语言的描述能力是目前我见过几乎最强的,它的复杂性一方面来自于“要兼容C语言”这个想法的包袱,一方面来自于其几乎要求无所不能、对程序行为最后一丝的控制能力。

在重新回到C++的时候,我们应该从容易的地方下手,例如声明变量总是用auto,使用指针总是用shared_ptr,要用数组的时候总是用vector(而不是自己new一个数组),故意不用函数重载而总是给函数不同的名字等,我们不需要一开始就面面俱到,让自己在每个细节一开始就做到最“高效”。重回C++我们不需要那么累,就往傻瓜喜欢去往的方向走就行,而显然C++也是在往这个方面努力的。

所以到最后,总结一下就是,学一门新的语言没那么难,多抬头看看世界,感受一些新的编程语言设计上的巧思;重回C++也没那么难,不要一开始就要求太高,往容易的方向去,再通过不断学习别人的代码吸收最佳实践。

这才是21世纪能用好语言工具箱的程序员。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C语言基础知识,C语言25个基础知识
下一篇:C语言怎么求最大公约数,C语言求最大公约数的三种方法

C语言创建windows窗口实例

C++回调函数是什么?

C++ shared_ptr和动态数组

C语言有哪些关键词,C语言44个关键词大全

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省