C++:定义、学习方法与学习成果

发表时间: 2019-08-24 15:48



学习C++,为什么有很多C++大牛,有各自不同的学习方式,这个人这么学,代码这么写,那个人那么学,代码那样写,到底谁的正确的?我告诉你:没有谁对谁错,因为他们的工作、学习、方向、环境造就了他们的学习方式。

很多刚出道的,慕名来学C++,但我想说一句,假如你想学C++,请拿出你的巨大的毅力和精力来学,不做好这种准备,不建议学习并精通C++。

这里只说C++,不涉及操作系统、计算机原理、网络通信、加密解密等其它计算机学科的知识,虽然他们是相辅相成的,但是我尽量不涉及这些知识。当你学完之后,你或许可以重新学一遍我上面所提的一些学科知识。当然,你不需要太过深入,把你大学里面的学会了理解了就可以了。

那么下面重点说说,如何学习C++:

当然首先无外乎重要的一点,一本C++语法方面的书,从头到尾看一遍,看的过程,多敲样例代码,书后习题一定要做,具体重点看那些了,我建议,看到类那里,把继承看完,全部弄懂基本就可以了。一定要多敲代码,多动手,一定要弄懂指针,不懂的话后面学习让你如坠云里雾里,所以指针一定要直到弄懂为止。

学习完以后,你的C++基本功底差不多了,那么如何巩固和提高你的基本功了,这个时候,你要重点专研C++的多态,虚函数、虚基类等一些容易搞混的东西,这些东西,你几个月不用,基本上就忘的差不多了。笔者是一个C/C++出身的程序员,学习编程有什么学习问题或者关于C/C++学习的路线的话可以私信我交流。



学习完上面之后,这个时候,你要开始学习STL,这个可以算是进阶了。当然,学习STL之前,你必须要有一点点数据结构的知识,假设你大学考试数据结构考试不是抄的过了,你就可以开始学习STL了,你需要弄懂vector、queue、deque、priority-queue、list、stack、map、set、multiset、multimap等,需要了解迭代器、算法、容器的概念以及使用方法。学习到什么程度就可以了呢,这个不好说,得看各人,自己把握。

然后,学习数据结构吧。用C++实现你大学数据结构课本上所有的知识点(栈、队列、树、图、查找排序算法等),当然,实现完之后,你需要将这些实现的代码记录下来,以备以后工作应聘等不时之需。

以上学完了,下一阶段该怎么学了,这个阶段很重要,是衔接理论与现实应用的衔接点,很多时候,C++如果不借助于其它方面的一些已经写好的库,一些很简单的任务C++都完成不了,比如说让你写一个windows的窗口应用程序,你用C++,就实现不了。因为C++的标准库,没有与GUI相关的东西,这个时候,我们需要借助于其他的一些库,比如,MFC,QT的库等,在这一个阶段,你需要学习如何使用IDE平台库或者系统平台的库,利用各种已经写好了现成的库,你只需要调用,就可以完成非常强大功能。这个时候,如果你挺聪明的,你或许可以用C++来写一些小游戏了,比如俄罗斯方块、贪食蛇等。

平台库我们用完了,但我们不局限于IDE或者系统函数库的调用与使用,我们要使用除此之外的其它第三方库,比如网络游戏那超级酷的3D效果,这个时候,比如opencv、PCL、opengl、directX等,具体怎么学,看你的工作学习所需了。

直到现在,我们一直从语言层面上来学习C++,这一次,我们要从俯瞰的角度来审视C++,我们要学习C++的开发模式,建议大家学习一下C++的开发方法,开发模式,二十几种的设计模式。

到了现在为止,你需要温故而知新,因为你前面很多细节都忘了。你可以报考一门中级软件工程师考试,用来让你的编程与所有学科的知识进行有效的糅合,系统化的学习计算机知识,让你对C++的理解和计算机的理解相辅相成,齐头并进。

学习完上面之后,C++我觉得你基本上算中上等水平了,可能很多的C++使用的人都停留在这个水平。不出意外,这个时候,你已经学会用C++走路了,以后的路,需要你自己走了,以后的进阶,你需要选择一个方向,比如通信、二维三维图像、3D大型网络游戏里面的某个重要的C++分支开发等(基本上是公司和你自己的定位来帮你选择方向),这个时候,需要的,大多是算法、算法优化等,我们发现C++的学习方式,就是先广度后深度。