C++入门有什么好书?

我认为C++编程语言是C++初学者的最佳读物。原因如下:

1,入门书籍的选择一定要谨慎,否则会大大影响初学者对C++的理解。就像在木板上钉钉子一样。如果前几锤敲下来,后面就很难纠正了。很多人因为被一些坏书误导,最终放弃了学习C++,以至于还没来得及领略C++的宏大和壮丽就退出了。这种情况非常令人遗憾。有鉴于此,只要有人问我初学C++应该选哪本书,我都会毫不犹豫地推荐C++创始人比雅尼·斯特劳斯特鲁普的代表作《C++编程语言》!我之所以推荐这本书,对于初学者来说可能有点难,是因为选择C++作为学习对象的人,一般都是立志于专门从事软件研发的技术人员。一般来说,他们有一些计算机领域的基础知识。如果一个初学者不想在编程领域更进一步,那么我不会推荐他去学C++,而是去学其他语言。

2、不像市面上一些常见的编程书籍强调学习过程短而快,不要急于快速学习这本书。因为C++不是可以加速的语言。所谓速成,无非就是学一点点C++。C++编程语言可以长期放在你的枕头上陪你入眠,它会陪伴你走过编程生涯的每一个成长阶段。所以这本书的投资绝对划算。表面上看,学习这样的经典著作可能会很慢很辛苦,但我相信这才是真正的捷径,因为它不会让你走弯路,也不会让你在学习过程中一遍又一遍地去纠正自己在阅读其他低质量C++书籍的过程中逐渐形成的错误观念,所以说:好像很远!

3、OO概念的初步建立是学习C++的前提,要一直用OO概念去理解C++的设计决策。OO有三个核心概念:封装、继承和多态。网上对OO基本概念的介绍也是多如牛毛。初学者不必急于一下子完全理解,因为对OO概念的深刻理解只有通过长期的思考和实践才能获得。这本书最大的特点就是特别注重讲解C++各种语法特征的来龙去脉。尤其难能可贵的是,书中每一章都给出了极其实用的编程建议,这是国内C++作者写不出来的。我说这话绝对不是崇洋媚外。如果说中国的IT技术水平落后国外20年,那么中国的IT教育水平应该至少落后国外30年。目前中国在IT技术写作领域的原创技术作家,没有一个能称得上大师,大部分都是靠剪刀差和浆糊为生。低年级的直接抄袭拼凑国外名家的作品;等级高一点的要看技术标准和规范,然后翻译成中文,就成作品了。

4.看了国内作者写的C++书籍,你很难了解C++真正强大在哪里,好像你只是熟悉一门普通编程语言的语法细节。很多人问:C++的大部分语法概念在其他语言中也有,比如函数、结构、子程序、类等概念。那么是什么特点让C++成为目前最有影响力的编程语言之一呢?这是那些国产C++书不能告诉你的。国内C++书籍的大量着墨点基本都落在了各种编程语言的这些* * *特点上,基本上没见过专门介绍C++独特“特点”的书。这些作者为什么不说说呢?那是因为C++独有的“特性”通常隐藏在C++的整体设计中。如果不是比雅尼·斯特劳斯特鲁普这样的铁杆C++高手,一般的中国作者绝对没有能力忽略C++的整体设计。

5,各种编程语言的语法,短时间内大家都能掌握。关于C++入门语法的介绍,网上有很多免费资料。初学者可以在电脑上敲击的同时,按照这些入门资料的指导,快速度过学习一门语言的语法熟悉阶段。一旦初学者在短时间内熟悉了C++的基本语法,这些国内作者写的C++书基本上就可以束之高阁了。因为这些书大多没有思想价值,勉强可以称之为技术手册,但如果用来深入掌握C++只能说是缘木求鱼。此外,这些书通常不便宜,通常要30-50元人民币。学生普遍资金有限,所谓好钢要用在刀刃上。与其买一本使用价值不高的书,不如加一点钱买一本真正经典的书。所以我绝对不会建议初学者买国内作者写的C++书。

6.中国并不是没有IT领域的专家。据我所知,国内有不少技术专家,但我很少见到专家愿意把自己宝贵的经验和见解写进书里。首先,这些多年积累的知识财富对于一个吃技术饭的人来说太宝贵了,作者公开写书太不好了。希望大家承认和接受这个事实。知识具有财产的性质,否则“知识产权”一词从何而来?其次,写一本书要花很多时间,基本上是雷锋燃烧自己照亮别人的行为。当然,这里的写书是指作者毫无保留地写出自己的精华经验,而不是为了敛财而胡编乱造。最后,目前在中国,通过奉献自己的技术经验来获得合理的收入和报酬并不现实,中国也不具备产生专职技术写手的土壤,原因多种多样,大家都知道。

7.为什么那么多外国专家愿意写书?原因有很多。第一,国外有很好的知识产权保护制度,技术专家写书的收入不低于一个高级工程师的收入。二是国外技术积累太强。有些东西在中国可能是技术秘密,但对外国作家来说不是技术秘密,所以可以出书。第三,对于一些作家来说,越多发表自己的经历,对自己越有利。比如比雅尼·斯特劳斯特鲁普,显然,对他来说,世界上使用C++的程序员越多,他的地位就越不可动摇。因此,比雅尼·斯特劳斯特鲁普可以毫无保留地把他所有关于C++的技术思考和经验告诉全世界的C++程序员。微软和SUN免费发布自己的技术规范也是如此。因此,在国外,作者、读者、出版商已经形成了良性循环的知识生态系统。毫无疑问,这样的结果一定是双赢的。但是,请记住,你永远不可能通过买书获得真正有商业价值的技术。比如市面上你永远买不到Adobe的关于字体引擎的算法讲解书籍。如果你只是需要这些技术呢?答案是:买!买不起或者买不到,就得脱下外套,卷起袖子。没有技术封锁就没有技术进步,这又是一个需要用辩证法解释的问题。

8.我相信,只有精读这本C++创始人写的书,你才能最准确地理解和把握C++区别于其他语言的精髓。比雅尼·斯特劳斯特鲁普不仅介绍了C++的语法,还全面讲解了C++各种基础设施的设计动机以及应用过程中应该避免的问题。这本书不仅告诉你怎么做,更重要的是,它会告诉你为什么!此外,世界上没有人比比雅尼·斯特劳斯特鲁普更了解C++!世界上没有人能比比雅尼·斯特劳斯特鲁普更清楚地解释C++!这是我强烈推荐这本书的根本原因!我觉得在学习C++的过程中最好时刻问自己:为什么C++中的一些规范是这样做的?比如:为什么要重载运算符?为什么要保留广受诟病的多重继承机制?等一下。思考这些问题就是在揣摩C++标准委员会的设计意图,而这些设计意图实际上深刻地反映了业界面临的各种实际问题。

9.懂C语言并不是学习C++的先决条件。不仅是C++兼容C语言,更重要的是C++所倡导的编程理念与C语言完全不同。从某种意义上说,C语言是CPU模型的抽象。虽然C++完全保留了C语言的机器模型,但C++更注重对现实世界的抽象。因此,C++的创始人比雅尼·斯特劳斯特鲁普写了一篇著名的文章:把标准C++作为一种新的语言来学习(把标准c++作为一种全新的语言来学习)。