前几天转载一篇quora上的文章,但是英文的,我还是觉得有必要将这篇文章翻译一下,希望更多的人能够看到
C++是一门复杂的语言
成为专业级c++程序员的路线:
步骤0:理解c++语言
必须去读Stroustrup的《The C++ Programming Language》,这个是必经的道路
步骤1:了解c++历史,理解c++的特性是怎样被设计出来的
去读Stroustrup的《The Design and Evolution of C++》
步骤2:理解声明一个类时,c++内部做了什么
Stanley Lippman 的《Inside C++ Object Model》会告诉你的
步骤3:如何写出高效的c++程序
Agner Fog的优化指南会带你入门
步骤4:如何写出正确的c++程序
《Effective C++》和《More Effective C++》这两本书是必读的,读完这两本书之前,不要参加任何技术性的面试。最好在google搜索一下Scott Meyers,并阅读他所有的文章,他对如何写出正确的c++程序有深刻的理解
步骤5:理解设计模式
理解设计模式是你阅读大型c++库的基础,比如boot和qt。推荐阅读The Gang of 4 的《Design patterns》
步骤6:理解如何搭建一个高效的Framework
开始之前,最好阅读 Martin Reddy的《API design》。我们走了这么远,依然还没有触及到元编程和模板
步骤7:元编程和模板
- 理解c++模板 《c++ templates》
- Andrei Alexandrescu的《Modern C++ Techniques》
- Andrei Alexandrescu的《Elements-Programming》
- 理解怎样使用STL,《The C++ Standard Library》
步骤8:理解如何成为一个元编程的高手
这一步,你先不要学习c++,先学习一下Haskell 或者CommonLisp,最好学习Haskell 。阅读这篇文章What Does Haskell Have to Do with C++和这本书《Let Over Lambda》。
- 现在是时候放下c++了,去学习编译器、函数编程、元编程等。
- 自己去实现一个c++编译器(如果你能在google、facebook某个好前景,就不要在费心机了)
你可能已经注意到,从步骤8开始,这条道路已经变得模糊不清了,所以,步骤8之后,你要自己去寻找道路了
我好想还没有提及阅读c++ 0x11标准,唉,这么多需要学,但是生命短暂。
所以,我的观点是只要我们的计算机工作在冯诺依曼体系之下,c++语言就会在可预见的将来一直存在,所以,你最好准备投入十年的时间来学习c++和计算机编程,这是值得的,这会给你带来不错的薪水,不管你学的哪种语言(VB, Java, C# and now Go),这经得起时间的考验。