《C++程序设计原理与实践》书评

    在2周内,以1目10行的速度读过了这本书。小小书评如下:

    这是一本主要面向初学者的极好的教材。

    在我看过的编程书籍中,这是第二本适合于完全无编程经验的初学者的入门书籍(前面一本叫《C语言解析教程》)。但是,这本书目前还没听说有配套的习题、提问解答,所以它也还不能列为完全自学书籍。

    这是我见过的唯一一本不以语法为主线索的教材,它是以实践需要来逐次引入相关语法的。对于初学者,最重要的是建立自信。若以语法为主线,也许教材已经看了大半,可还没有实现过第一个完整程序,所有知识点都是完全依靠记忆的,而往往需要记的东西越多,人就越不自信。有多少人都曾经经历多,教材都看完了,可觉得自己还啥程序都不会编。

    这本书极度重视编程风格的引导。建立良好的审美观是极重要的。Kent Beck有语:“I'm not a great programmer; I'm just a good programmer with great habits.”《敏捷软件开发:原则、模式与实践》的翻译者邓辉有观点:“代码质量是软件质量的最直接、最根本的体现,所谓的设计、架构如果不能最终通过高质量的代码体现出来,都等于空。如果不真正的关注代码质量,不以最终代码作为衡量设计和架构的依据,那么其他一切所谓的要提高软件质量的活动基本上都是自欺欺人。Clean code matters most。”

    本书也极强调编程是一个渐进演变的过程,是一个多原则协同、冲突下进行取舍的过程。在“简单就是美”的认识下,KISS是最有指导性的原则。太多的教材是教会了语法,却没有教会编程了。

    本书也延续了Bjarne Stroustrup的风格:话说半句。后半句是要靠自己思考来补全的。习惯于填鸭式教育的人,常呈现轻微思考力退化,恐不能适应此书。另:在我的极速浏览中也还发现了至少10处显见错误(应该都是排版或者翻译造成的),希望你能在读的过程中发现更多处,并且用英文版作参考来自己判断。

    看书不做题,等于没看。希望你不是一位手懒的初学者。否则,你的学习之路可能会很漫长、很曲折。

    好奇,是学好编程的极重要的因素。但是,足够好奇就可以了,千万不要过于好奇。《C++ Primer》之所以很多人认为不适合初学者,就是因为列出了太多的语法细节,以至于成为了一本手册,虽然这么多细节是成为中高级C++程序员的必须。而《深度探索C++对象模型》几乎就是为了填补过度好奇(及因此造成的,对未知的恐惧),而来的。不要过度陷于语法细节之中。本书则多次明确地刻意保护你不要陷入的地方,对于初学者,请一定要于此收好自己的好奇心。不需要掌握这么多的细节,我们仍然足以完成绝大部分编程,并且绝大部分编程也应该优先选择那些不需要太多语法细节的解决方案(所谓“学深用浅”)。而试图了解这么多的(不怎么用得上的)细节,会因为记不住而恐惧,而击溃自信。

    对于已入门者,本书可以用来证明你真的懂了很多编程原则。记住一句老话:“再好的老师也不能教会你什么,只是证明你是否真的懂了”。就像我这样,用2周时间快速通览一下吧,你应该还是能有很多收获的。请着重关注第4、19、25章节。如果你对此书中的观点有排斥,有不认同,请自行关注一下“空杯理论”。

    另外,此书中文版没有带上原书的附录,实在可惜。而,尤其既然连最重要的索引表都砍了,可称可恨!我们有太多人,受填鸭式教育太久了,竟然都不知道有“索引表”这东东。《C++ Primer》和《The C++ Programming Language》最有价值的就是书后的索引表了。我在学习阶段,为了获得《The C++ Programming Language》的中文索引表,特意买了一本中文版呢。

    最后,本书只是一本入门书籍,要想成为高等级C++程序员,还有太多本书需要看呢,而总也绕不过去的书单里,会有《C++ Primer》和《The C++ Programming Language》。

    祝此书的读者顺利!

 

你可能感兴趣的:(c++,编程,教育,c,敏捷,活动)