你说“零基础”?得界定一下。是代码都没摸过的新手?还是学过点别的语言(Python、Java啥的)想转C++?这区别大了去了。不过呢,既然是零基础,咱就按最最白纸一张的来。
第一本,也是我经常推荐,但又得打个小补丁的,是《C++ Primer》。注意啊,是 Lippman、Lajoie、Moo 合著的那本,不是后面带 “Plus” 的。这本砖头啊,厚得能砸死人。内容是真全,真扎实,从最基本的变量、循环讲到模板、STL、面向对象的高级玩意儿。信息量是爆炸,啥都有,啥都深。但你刚起步,真可能被淹死在里面。它不是那种手把手哄着你走的风格,更像是一本巨™详细的参考手册或者百科全书。如果你是那种自学能力爆表,或者有计算机科学背景,能硬啃,那可以试试。啃下来,地基绝对稳。问题是,很多人啃到指针、引用那章就吐了。

所以,对于大多数完全没碰过代码的新手来说,我更倾向于推荐另一本,那就是《C++ Primer Plus》。虽然名字只多了个“Plus”,但风格差挺多。它更像一本正经的“入门”教材。讲解更循序渐进,例子多,废话也多一点(这点有好有坏,废话多有时能降低理解门槛),但对得起“零基础”这三个字。它会带你一步一步地认识C++的各种特性,语法,而且很多例子都挺贴近实际(至少是教学的“实际”)。如果你问我,零基础买哪本?《C++ Primer Plus》,尤其是第六版中文版,评价普遍不错。别追求最新版了,对新手来说,基础知识变化不大,能看懂、能练起来是王道。这本书,你可以从头开始读,跟着敲代码,它会给你一个相对平缓的曲线。别指望一本书读完就变大神,那不可能。但它能给你个地图,让你知道C++世界大概长啥样。
话说回来,还有一本叫《Accelerated C++》的,听名字就知道了,它恨不得让你坐火箭。这本书非常薄,内容也很棒,它是以解决实际问题(比如处理学生成绩)为导向来讲解C++的。思路很赞,效率很高。但是!如果你是完全没碰过代码的新手,千万别拿它当第一本!它假设你已经有其他编程语言的基础,或者你是一个学习能力超强、一点就通的人。它会很快地引入一些高级概念,如果你连基本的循环、函数都还不熟,直接读它会让你觉得像在看天书。所以,《Accelerated C++》,留给你学完《Primer Plus》或者《Primer》前面大部分内容后,想快速提升或者换个角度理解C++时再看。那时候再读它,你会觉得醍醐灌顶。
光看书没用!重要的事情说一百遍都不嫌多。编程是门手艺活,不是理论课。别把书捧在手里读故事似的,读完一章,或者一个知识点,屁股挪到电脑前,把书上的代码敲一遍!别复制粘贴!敲错!debug!再敲!再错!再debug!这才是学编程!书是地图,代码才是路。你在路上摔跤,爬起来,才知道怎么走。
学C++躲不开几个坎儿:指针、内存管理、引用、面向对象思想、模板、STL… 每一个都可能让你掉头发。别怕!谁学C++不掉几把头发?这是正常的。遇到某个地方卡住了,死活看不懂书上的讲解?跳过去!对,你没听错,暂时跳过去。记着这个地方,继续往下学,也许后面的知识会帮你理解前面卡住的地方。或者,换个姿势!去网上搜这个知识点,看看别人是怎么讲解的,也许换个说法你就懂了。论坛、技术博客、Stack Overflow(虽然是英文的,但现在翻译工具很强大)都是你的救星。别一个人闷头死磕,有时候问一个对的人,一句话就点醒你了。
还有啊,别追求完美。刚开始写出来的代码肯定又烂又臭。能跑就行!先实现功能,再考虑优化、考虑代码风格。这是一个逐步提高的过程。别一开始就想写出多优雅、多高效的代码。那不现实。
除了上面提到的两本主书,你还可以把《大话数据结构》或者《算法图解》这类书加进来,一边学C++语法,一边用它来实现一些简单的数据结构和算法。这能帮你把语言知识用起来,而不是光停留在纸面。C++跟数据结构和算法简直是天生一对。
总的来说,我的建议路线是:1.《C++ Primer Plus》:老老实实从头啃,跟着敲代码。这是你的第一本入门书。不用追求一遍懂所有,至少读完前面关于基础语法、函数、类、指针(入门级别)的部分。2.实践:开始写点小程序。实现个通讯录?计算器?简单的游戏?用你刚学的C++知识去搞定它。这是巩固和检验。3.如果学有余力或者想拔高:可以回头啃《C++ Primer》里之前跳过的或者讲得更深的部分。或者开始看《Accelerated C++》换个思路。4.辅助阅读:穿插看点关于数据结构、算法的书,用C++实现它们。5.进阶(等你不是零基础了):再去碰《Effective C++》、《More Effective C++》、《深入理解C++对象模型》这类告诉你“如何用好C++”、“C++为什么这样”的书。那时候看这些才真有味儿。
别急,慢慢来。C++这东西,急不得。选一本你看得下去的书,找个能写代码的环境(比如安装个Visual Studio社区版或者Code::Blocks、CLion啥的),然后,就是不停地写代码,不停地遇到问题,不停地解决问题。这过程,才是真正学到C++的。祝你旅途顺利,也祝你头发茂密!
本文由用户 好好学习 上传分享,若内容存在侵权,请联系我们(点这里联系)处理。如若转载,请注明出处:http://www.365yunshebao.com/book/5231.html