精通没有标准,但学习有路径。 我来说说 学习掌握C++的路径吧,从低到高,分0~10级:
0级:掌握常见C++语法和语言构造,能够顺溜地写清楚各种语言构造(很多小白鼠死在这里)
1级:掌握基本的编程范式:面向过程、面向对象、泛型编程、以及C++11/14支持的函数式编程
2级:清楚编译器在 后面干了什么(compiler under the hood-考验功力的时候到了)
3级:清楚运行时内存模型(memory under the hood)
4级:对经典库(包括但不限于STL, BOOST, Folly)应用熟练,关键原理清晰,掌握设计模式
5级:熟悉至少一个操作系统常用API和内核,调试工具和方法
6级:有清晰的机器和系统模型:CPU, Memery, Cache, GPU, Disk, I/O, Process, Thread, TCP/IP...
7级:有一定系统级应用开发经验,被系统级应用的性能、内存、规模等问题折磨过,并解决过...
8级:从头到尾设计过一个C++库、或框架,并被一定量级的应用使用过
9级:设计并开发过系统级、高性能、大规模的软件系统
10级:成为Bjarne Stroustrup,设计一门语言
当然,这些打怪升级并不完全线性递增,有些需要综合运用。修炼则需要 研习+实践,反复螺旋。
最后安利一下我正在主持操办的“
2016 C++及系统软件技术大会(10月28-29日,上海)。C++ 之父Bjarne Stroustrup 将出席并发表keynote演讲:《What C++ is and what it will become》 ,除了Bjarne之外,还有C++大神Andrei Alexandrescu,Mike Spertus等。
就拿这次会议的嘉宾来说,个人认为,Bjarne Stroustrup和Andrei Alexandrescu当属于第10级(别忘了Andrei除了在Facebook做了7-8年研究科学家,还是D语言之父)。 Mike Spertus 属于第9级(Symantec Fellow),然后大会其他嘉宾基本集中在第7级~8级之间。 |