如何学好C++?
展开全部
学习一门语言,很多人说:要学以致用。 但事实并不是如此,尤其是对C++而言。
首先:软件开发技术发展的历程告诉我们——软件是思维过程的集合而不是语言特性的拼接。跨过低级语言和过程式语言(我们也没啥兴趣现在了解不是),针对高级语言而言,模式、方法要比语言本身更重要,这是为什么有些人说学要致用才能体现学的价值。
C++ 也存在了30多年,对于使用来说,确实有很多现成的优秀实例摆在我们面前。然而更多地时候,效果并不如预期那样。由于语言本身的问题,掌握C++语言精髓的人是少之又少,可以说上世纪80年代-90年代中期这段时间是C++发展的黄金时期,C++98公布之后,C++语言进入应用期,随着应用系统的爆炸增长,对开发周期提出了十分苛刻的要求,因而出现了更加简单和易于快速开发的语言:java C#等。
问题就在这里出现了,C++语言本身就对很多软件开发中的高层特性予以支持同时兼容底层代码,语言复杂度是阻碍发展的一个重要因素。21世纪以来,开发要求的重点不在集中在算法和性能上,而是集中到了开发周期和开发难度上。使用C++的程序员也大多是经过很初步的培训就直接进入岗位,很少有人真正了解这门语言设计的初衷和演化历程。造成很多从格式到算法都非常混乱的C/C++混合应用。所以现代的C++程序员常常被指摘使用者很高级的特性做着很蠢的事情。
就学习C++而言,要放更多的时间去做对语言本身的和计算机运行机制的了解,以此确定对语言的最佳使用方式。C++中对于C的兼容部分和C在实现上有些微妙的差别,虽然不足以造成太大的差异,但还是需要注意的。C++的强大和灵活有其两面性,一方面为实现提供了最大的可能性,另一方面也提供了更多误用方法。所以C++不适合初学者或者非专业人士学习,甚至国内某些教材都令人发指的误解误用,还大言不惭。
要学好C++,只能从底层开始,一步一步的了解机器的运行方式,这样你同时也深入了解了C语言。然后通过设计模式和面向对象方法学,来了解C++的高级特性,同时你也了解了C#和java的构建方法。虽然很麻烦,但是受益终生!千万不要看某些国人写的教材,误人子弟!
有人说C++最终会退出历史舞台,这句话是没错的,但是你要知道现在所有的高级开发人员毫无例外的都学过C(C也是一门很老的语言了),所以,学语言学的不是语法,学的是语言本身所提倡的哲学和背后所依赖 的方法论。一门语言设计的初衷不同,实现方式也就不同,也注定了其应用领域的不同。
实际点说,参考如下:TCPL(《The C++ Programming Language》)、 depeth in C++ series:例如Generic Programming and the STL(中文已经绝版)。 还有就是C++ primer 和C++ primer plus(前者是技术性参考(中级)、后者是语言特性讲解(初级))。
初学者强烈推荐:TCPL或者C++ primer plus(注意是primer plus,不是primer)
首先:软件开发技术发展的历程告诉我们——软件是思维过程的集合而不是语言特性的拼接。跨过低级语言和过程式语言(我们也没啥兴趣现在了解不是),针对高级语言而言,模式、方法要比语言本身更重要,这是为什么有些人说学要致用才能体现学的价值。
C++ 也存在了30多年,对于使用来说,确实有很多现成的优秀实例摆在我们面前。然而更多地时候,效果并不如预期那样。由于语言本身的问题,掌握C++语言精髓的人是少之又少,可以说上世纪80年代-90年代中期这段时间是C++发展的黄金时期,C++98公布之后,C++语言进入应用期,随着应用系统的爆炸增长,对开发周期提出了十分苛刻的要求,因而出现了更加简单和易于快速开发的语言:java C#等。
问题就在这里出现了,C++语言本身就对很多软件开发中的高层特性予以支持同时兼容底层代码,语言复杂度是阻碍发展的一个重要因素。21世纪以来,开发要求的重点不在集中在算法和性能上,而是集中到了开发周期和开发难度上。使用C++的程序员也大多是经过很初步的培训就直接进入岗位,很少有人真正了解这门语言设计的初衷和演化历程。造成很多从格式到算法都非常混乱的C/C++混合应用。所以现代的C++程序员常常被指摘使用者很高级的特性做着很蠢的事情。
就学习C++而言,要放更多的时间去做对语言本身的和计算机运行机制的了解,以此确定对语言的最佳使用方式。C++中对于C的兼容部分和C在实现上有些微妙的差别,虽然不足以造成太大的差异,但还是需要注意的。C++的强大和灵活有其两面性,一方面为实现提供了最大的可能性,另一方面也提供了更多误用方法。所以C++不适合初学者或者非专业人士学习,甚至国内某些教材都令人发指的误解误用,还大言不惭。
要学好C++,只能从底层开始,一步一步的了解机器的运行方式,这样你同时也深入了解了C语言。然后通过设计模式和面向对象方法学,来了解C++的高级特性,同时你也了解了C#和java的构建方法。虽然很麻烦,但是受益终生!千万不要看某些国人写的教材,误人子弟!
有人说C++最终会退出历史舞台,这句话是没错的,但是你要知道现在所有的高级开发人员毫无例外的都学过C(C也是一门很老的语言了),所以,学语言学的不是语法,学的是语言本身所提倡的哲学和背后所依赖 的方法论。一门语言设计的初衷不同,实现方式也就不同,也注定了其应用领域的不同。
实际点说,参考如下:TCPL(《The C++ Programming Language》)、 depeth in C++ series:例如Generic Programming and the STL(中文已经绝版)。 还有就是C++ primer 和C++ primer plus(前者是技术性参考(中级)、后者是语言特性讲解(初级))。
初学者强烈推荐:TCPL或者C++ primer plus(注意是primer plus,不是primer)
展开全部
第一步,看书,把书看懂,毕竟那是基础;第二部,做一些简单的题加深掌握;第三部,上机演练书上实例,结合看书,理解,然后试着自己编一些程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看书,看教程,动手写程序,遇到问题,调试,实在没招,就百度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询