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

作者:蓝色
链接:https://www.zhihu.com/question/23447320/answer/24657827
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

由于我大一也陷入过迷茫,也走过一些弯路,那时候学不会直接记忆代码之类的事情我都干过,我也希望我的这些经验可以对你有所帮助。首先是一本好的C++书籍(Accelerated C++, C++ Primer),然后以及尽量多的完成书籍的习题,可以帮助完成C++语法的学习。虽然前面的书籍涵盖了标准库,但是不够完善,这个时候你可以选择在线查阅C++标准库这种泛型的学习方式,也可以选择阅读《C++标准库》的方式进行学习。通过这样的步骤,你应该可以完成C++的初步学习了。然后,由于C++是一门系统级语言,我想你需要到大三学习操作系统的时候,才会明白栈与堆、内存管理等更深层次的含义。但是,在明白这些概念之前不会妨碍你利用C++做一些事情,比如写一个简单的XML Parser。这个时候,你应该会发现很多问题,如效率,代码规范等,这个时候,你可以研究Effective C++,Google C++ Code Standard等,只有自己犯了错,回过头反省才会更加深刻。随后,你可以更加深刻的去思考C++,你需要阅读《The Design and Evolution of C++》。这本书的阅读,会教会你很多,是对你影响最大的C++书籍。如果你对C++编译器的一些细节有兴趣,深入C++对象模型可以推荐。如果你对STL的一些实现有兴趣,可以去翻翻STL源代码(很多人推荐STL源码剖析,但是我没有阅读过,我没有办法发表是否应该推荐的观点,列出来供你自行判断是否应该阅读)。到这一步骤,我想你应该可以称为C++ Programmer了,剩下的就是实践中发现问题,然后补足自己。此外,由于C++博大精深,应用的范围多如牛毛,特定方向所需要的知识未列举。比如你要研究Android的NDK什么的,那就是属于你后面的事情了。=Update==========================说实话,我也不知道这一条为什么突然火了,发现突然有很多的赞。其实正如第一句而言,这是我走过来的经验,我不能说这就是权威的(甚至不能说是正确的),而当初回答这个问题也是以我走过来的经验来回答一个初学者的困惑。而这位初学者的困惑在我大一的时候也出现过,所以一下就引起了我的共鸣,我也只想把我的经验说出来希望可以帮助提问者少走一些弯路而已。至于这样学习的C++够不够,我想我按照这样的路线学习,可以做到我有能力去IBM写C++编译器,那么我想对于就单纯题主所提的C++语言方面来说应该已经足够了。诚然,计算机的世界不仅计算机编程语言,与之相关的还有操作系统、数据结构、编译原理、计算机网络等知识,但是,我想我们可以再开另外一个问题。同时,既然别人问了如何学C++,你让别人学Java、Python等,或者说C++大坑的,我觉得这种回答其实挺不好的,因为别人问什么,你老实认真答什么就好了,何必把自己的意愿加在别人的身上呢。
感兴趣的可以加群QQ:948954484 找雅丽 领取听课链接和往期学习资料噢

你可能感兴趣的:(如何系统地学习 C++ 语言?)