C++学习的方法以及四大名著
转眼间学习和使用C++已经有近10个年头了,开始学习的时候走了不少的弯路,今天有些时间,希望写下这篇文章并且对开始学习C++的朋友有些帮助。当然我首先需要说明的是,这篇文章是根据本人的感受写的,可能不同的人有不同的观点,欢迎讨论。
开始学习C++的时候中国的互联网环境还不是很好,信息也比较闭塞,所以自己开始的时候是由Thinking in C++ 开始的,买了两卷本的英文版,废了好大的一番周折才算看完了,这个过程大约花费了近6个月的时间,当然期间也要花时间完成学业。后来就有这个根基开始了不断的写代码,做ACM的题,渐渐开始了C++真正的旅程。
时至今天我发现,其实这个过程可以更轻松,只要有过来人稍微点播一下,于是有了写这篇文章的想法。其实学习C++的读书顺序应该是这样的(对于有C基础的朋友):
C++ Primer
Effective C++
Exceptional C++
Inside the C++ Object Model
这就是我选的C++四大名著,那么我为什么选这四本书呢?
C++ Primer 这本书我看过第三版和第四版,目前这本书已经出到了第五版,不得不说,这本书太适合入门了,当然我指的是有C基础,而且基本上所有的语言特性都给予了说明,可以说是大而精。同等地位的书有C++ Programming Language 和 Thinking in C++ 这两本书我也读过,但是个人认为,读了C++ Primer再看这两本书意义不大。
Effective C++ 和Exceptional C++ 这两本书并不厚,但是涵盖的知识面是一般的C++书籍所无法企及的,可以说如果没看过这两本书就不算合格的C++程序员,俗话说磨刀不误砍柴,这两本书就是磨刀的,但是这两本书都不简单,建议看完了C++ Primer再看。
Inside the C++ Object Model看这本书可能需要一点功力,薄薄的一本书,足够全力的研读一周,一旦通关了可以说对于C++的理解可以到达另一种境界。
关于这些书籍是读中文版还是英文版的问题
我的建议是买一本中文版,找一本英文的电子版(可以去买电子书),直接读中文版,然后感觉可能翻译有问题的地方对照着看。为什么这么说呢,因为根据我的经验,这样读书的效率更高。而直接读英文版和所谓的“评注版”意义都不大,读书的时候会相对的浪费精力,这个和英语水平没关系,除非英语你的母语。
关于标准库和泛型编程的学习
这方面确实是对C++语言的增强,但是编码难度相对较大,也特别容易被人忽视,但是C++发展到今天标准库和泛型编程已经和完整,而且确实可以提高生产力,建议在看看相关的书籍,有时间写篇这方面的文章。
总结
本问总结了学习C++的一些需要注意的问题,并且推荐了四大名著,相信只要按照顺序修炼,大家一定可以学好C++的,祝大家功力更上一层楼。