本节书摘来自异步社区出版社《易学C++(第2版)》一书中的第1章,第1.7节,作者:潘嘉杰 ,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.7 C++学习的常见问题
在学习C++语言之前,不少初学者就已经有了很多疑问,这是件好事。在正式学习之前对所学的内容和整个过程有一个大致的了解有助于安排学习的进度和深度。因此,下面罗列了初学者的常见问题,并根据笔者的经验给出了答复。如果您没有以下这些问题,那么可以跳过本章节,避免引入过多的新名词而产生困扰。
问题1:学习C++大约需要多久?有些书籍上说几十天就能学会C++这是真的吗?(来自网友E-mail)
回答:在高校中安排的C++课程约为半年至一年,但事实上要精通C++,这点时间是远远不够的。C++并不只是一门简单的计算机语言,而是逐渐形成了一个学科体系。要熟练运用C++,做出界面美观、功能强大的程序,还必须对数据结构、STL、设计模式等各个专题进行深入学习。因此,学习C++所需时间取决于学习者本身的基础和期望达到的学习效果。如果一位零基础的初学者要掌握C++语言本身的所有特性,1~2年的时间是比较正常的。至于说几十天能够学会C++,对于已经精通其他计算机语言的学习者来说也是可能的。
问题2:学习C++需要什么样的数学和英语水平?学历较低可以学C++么?(来自网友留言)
回答:学习程序设计必然会用到数学和英语。至少输入的代码基本都是英文字母,我们要用的算法多少和数学、逻辑学有些关系。因此,彻底没有数学和英语基础就学习程序设计真的很困难。一般认为,有初中或以上的数学和英语基础就可以学习程序设计了。在现实中,很多中学生已经成为了编程高手。如果已经忘记以前所学的数学和英语知识,建议略花一些时间去回顾一下。数学和英语对学习程序设计还是有莫大的裨益。数学能够锻炼一个人的逻辑思维能力,使接受算法的速度更快;英语则有助于学习者看懂计算机的反馈信息、阅读更多原版的技术资料。
问题3:以前学习过程序设计,时间长都忘记了,现在不从事计算机行业。随着年龄增加,学习能力和记忆力都可能有所减弱,这样能学习C++吗?(来自网友E-mail)
回答:学习能力和记忆力的确会随年龄受到影响。但是学习C++本来就是一个周期相对较长的过程,最重要的是保持学习的热情和耐心。C++语言的基础部分已经基本固定,不会经常发生重大变化,因此即使年龄稍大,经过努力后掌握C++是完全可能的。
问题4:很多网友说学习C++之前要学C语言,是这样吗?(来自网友留言)
回答:在1.5节中已经说明,C语言的部分语法的确与C++相似甚至相同。如果有C语言的基础学习C++肯定会更快。但是,这并不意味着学习C++之前必须要学C语言,而且对于初学者来说在短时间内接触这两种语言反而会造成部分概念的混淆。因此,如果你的目标是C++而不是C语言,那么不必特意在学习C++之前先去学C语言。
问题5:现在学习C++主要有哪些集成开发环境?哪个最适合初学者?(来自网友E-mail)
回答:首先需要说明的是,集成开发环境和编译器又不是一回事情。通常集成开发环境可以搭配一种或多种编译器。编译器的功能是将C++源程序转变成可执行的程序,而集成开发环境则是一系列代码编辑、调试和管理工具。目前Windows操作系统下使用比较广泛的集成开发环境有微软的Visual Studio(包括6.0版、2010版和2012版等)、Dev-C++、Eclipse、Code::Blocks等。从集成开发环境的界面友好程度来看,微软的Visual Studio有着不小的优势。并且Visual Studio的市场占有率也是非常高的,很多院校、培训机构、企业都在使用。因此,建议有条件的初学者优先选用Visual Studio。如果实在无法安装Visual Studio,那么Dev-C++或Code::Blocks也可以作为替代。
问题6:如何保持学习C++的积极性和热情?(来自网友E-mail)
回答:对于大多数初学者来说,学习C++语言还是有一定难度的。因此,必须要掌握好学习的速度和节奏,不要对自己产生过大的压力。有些读者说只需要3周就能把小半本书看完,可是剩下的那部分却始终看不进去。事实上这说明了前面的小半本书还没有完全消化吸收——暴饮暴食自然就要没胃口了。建议初学者不要贪急贪快,那样很容易毁掉自己的学习热情。如果为自己订制了一个相对长期的、宽松的学习计划,反而更容易培养自己的积极性。
问题7:零基础的初学者应该学VB还是学C++?(来自网友留言)
回答:不得不承认,用Visual Basic制作一个Windows窗口界面的程序比C++方便得多。因此,初学者可能在学习Visual Basic的时候觉得更容易,更有成就感。Basic和C++属于计算机高级语言中的两支路线,各有所长。但是,从计算机高级语言的发展趋势来说,C++更具有代表性。如果只是想了解一下程序设计,学习Visual Basic也未尝不可。
问题8:看完《易学C++》之后应该学习些什么内容?(来自网友留言)
回答:《易学C++》是一本入门级的C++教程,主要面向没有程序设计基础的读者。本书中的内容都是C++语言中必须掌握的基础知识。当看完《易学C++》之后,并不表示你已经成为一个C++高手,而只能表示你入门了。因此,如果想更深入地了解,在看完《易学C++》之后必须再去看一些更高层次的书籍。此外,还可以去阅读一些关于数据结构、算法、设计模式等方面的书籍,强化实际应用。