C++编程你也行 去年冬天,为了给C++爱好者推荐一些参考读物,我撰写了《C++程序设计之四书五经》一文。我将文中推荐的书单发给C++语言的创建者Bjarne Stroustrup征求建议。Bjarne告诉我,还缺一本给完完全全的C++初学者看的入门书,并向我推荐Francis Glassborow的《You Can Do It: A Beginner's Introduction to Computer Programming》。 Francis在C++社群大名鼎鼎。他曾任ACCU(The Association of C & C++ Users)主席,多年来评阅了成百上千本C++书籍。他有着30余年的编程和教学经验,并是C++标准委员会的一名重要成员,他的阅历决定了这本书在C++社群必然占有一席之地。 因为机缘,我很早浏览过这本书的英文版。我的感觉是Francis的本意似乎并不是想写一本关于C++的入门书,而是写一本关于如何编程的入门书,为希望体验编程乐趣的人 们提供一个入门导引。不过,恰巧Francis是一位C++权威,因此他采用C++作为本书的编程描述语言。这个巧合使得本书既是一本优秀的编程入门书,也是一本优秀的C++入门书,同时还证明了的确可以将C++作为第一门编程语言来教、来学。 本书写作风格清新,让人眼前一亮。它不是从“C++中的C”讲起,而是迅速展示类、名字空间、异常处理等C++核心语言特性。代码普遍使用vector、string、set、map等标准库组件。全书以有趣的实例拉动语言和标准库的讲解,学以致用,而不像其他C++教材那样,例子纯属虚构,仅为演示语言特性和库的用法,很难给读者留下深刻的印象,因此教学效果也就好不到哪里去。 为了确保本书能够为完完全全的外行所看懂,Francis特意邀请了一位家庭妇女Roberta Allen作为目标学生,互动写作。除了正文外,还安排有任务、练习、Roberta的疑问、Francis的解释、Roberta的评论、任务解决方案、练习解决方案等,此外,每章后还总结有关键的编程概念、C++要点等。读者应该尽可能完成Francis布置的任务和练习,因为要想真正掌握编程技术,你必须亲自动手写程序。对于作者提供的解决方案和宝贵的建议则要用心体会,它们有助于你提高编程技术。 我认为,如果你认真阅读了这本书,并动手实践了所有精心设定的练习,你应该可以入门现代风格的C++编程。不过,如果你希望跻身于职业C++程序员之列,阅读这本书只能算是一个良好的 开始,你还有很多东西要学,比如面向对象和泛型编程。 说到这儿,我不由得想起国内的C++教材、教育现状。众所周知,许多大学C++课程仍然在主讲C,学生写出来的大多是伪C++程序。作为一名C++讲师,我个人认为责任并不全在教育者,我的教学经验证明一上来就讲面向对象、标准库,为数不少的学生接受起来非常吃力,花一定的时间讲述C++中的C纯粹情非得已。尽管如此,我还是认为Francis的这本书可以为包括我本人在内的中国教师,提供关于如何进行新式C++教学的有益启发。 当然,我并不认为这本书就适合用作正规的C++大学教材,这种例子驱动的写作方式注定了本书的理论体系不够完整,概念阐述不够全面深入。它虽然很棒,但毕竟浅显了一些。我认为它最大的作用在于可以培养你编写程序、学习C++的兴趣,而这,正是国内C++教材和C++教育最最欠缺的! 因此,我认为,如果你是一名完完全全的C++初学者,此前对编程如雾里看花,虽然正忍受着糟糕的C++教材和教育的折磨,但对编程的热情火焰尚未完全熄灭,不妨读一读本书并动手实践,希望它可以重新唤起你对C++编程的热爱。 退一步来说,即使你不是一名学生,比如说,是中关村或珠江路上摆弄电脑硬件的新青年,但对编程充满了渴望,或是一名Web网站设计者,希望体验C++编程之乐,这本书都可以让你心想事成。 编程对于初学者来说是一件神秘的事情,而当程序能够如愿运行时那种快乐无与伦比。我还记得大学时使用SUN工作站编写第一个Basic程序(那时C++尚处于发育期)从激动到沮丧再到兴奋的体验。我折腾了好久也没能让计算1加1的代码算出2来,在克服“重重困难”运行出结果后,我几乎欢呼出来! 编程不仅可以成为一个兴趣,让我们乐在其中,编程也可以成为一种职业,我们靠它养活自己和家人。虽然绝大多数程序员并没有因为编程而发大财,不过可以肯定的是,几乎所有程序员都会从编程本身获得快乐,尤其当我们的工作为别人所欣赏时。 本书中文版名为《C++编程你也行》,即将由人民邮电出版社出版。译者徐波先生文风松弛流畅,读来甚为舒坦。作为一名C++老手和讲师,我饶有兴味地读完了这本入门读物,相信作为完完全全的编程新手的你,定会从中获得更大的快乐。我甚至幻想我的爱人有朝一日也能阅读本书并动手体验编程之乐,体会我为何心甘情愿年复一年、日复一日佝偻于手提电脑前,写程序,写关于C++的一切。 荣耀 |