如何系统地学习 C++ 语言

第一步:放下书本,找一个设计优秀的C++代码库或者应用程序。可以是一个小型的引擎(例如Ogre的超早期版本、一个网络库),或者是你感兴趣的其它领域的优秀代码(例如一个简易的IM程序)。一定是大家认可的,设计优秀的代码。

第二步:自己拿这个库仿照已有代码写一些真的有趣的应用程序。这些好的代码库一般都有简单Tutorials,按着Tutorials一步一步的跟着写,学会调试,然后不断扩展。比如如果是Ogre你就写一个超小型游戏,如果是网络库你就写一个小型IM。

第三步:在你写的足够多以后就去看看代码库本身的代码和设计,遇到不会的就翻书就问别人。

第四步:拿起书本,找那基本大家公认的“解决实际问题”的C++书来看,比如Effective C++那些,但不要看C++ Primer这种大部头,这种是“工具书”,有问题去查,没问题就放那放着。这时候你经过第一步已经对C++语法基本熟悉了,并且经过第二步你会碰到一些实际问题,所以看一些解决实际问题的东西会很有效率,认识也会很深。

第五步:按着上面看书看到的知识,去修改第二步自己写的东西。

第六步:如果还有时间就按着你的想法去修改一开始你看到的那个库,把它改成属于你的库。这一步很可能是失败的,也是有始无终的,但拆过优秀的东西才能真正明白别人写的为啥优秀。这个过程学习的不止于C++还有设计和专业知识。

一般实习生进公司不用2个月C++至少写点小程序没问题,原因就是他终于开始写了,而不是继续看书!

不推荐一开始就看书特别是大部头的书,因为对基本的东西都没什么认识,人家说的能解决什么问题也不知道,看了也是白看。