一度怀疑花了那么多精力学习C++是否值得,直到后面有机会专攻Webkit内核代码,里面有些对性能有变态要求的模块,诸如JavaScript解析引擎,内存池管理,C++的高级玩法都玩到了,C++的优势得得到了充分的展现。在Webkit里面浸淫了两年,在实际层面理解了C++的价值,她在复杂性管理和效率之间的有着完美平衡,但是前提是你能驾驭它。
再往后就不写代码了,回顾下C++的学习过程与我而言是一门修行,作为一个合格的程序员,深入理解一门语言是必须的,一通百通,后面Java,C#,OC基本上都是一周上手,轻轻松松。但是回顾学习本身,还是值得商阙,
1.语言光看是没用的,看了不实践,分分忘光,很多Effective C++提到的问题,只有实际犯错后才会真正记住,多看,多练。
2.语言只是知识体系里面很小的一部分,其他诸如算法,设计模式,计算机体系结构,编译系统的理解,同样重要,缺了就是短板,把读C++设计新思维,More Efftive C++的时间拿去读APUE,敏捷软件开发与实践,收获会更大。
3. 书先读厚,再读薄,看Webkit最大的感受是,里面的C++用得很克制,只是在必须使用时才会用到高阶技术,而这种场合无非是一些基础数据结构,一些对内存和性能有极致要求的地方,否则不光维护难,哪天出问题了,debug多层模版时想死的心都有…。建议看一篇Google写的C++编码规范,如果只是达到这个要求,精读三四本书就够了。
4.既然学深了就多去理解他背后的设计逻辑和哲学体系,为什么引入一些特性,抛弃一些特性,原因是什么。看看STL的一些源码,那是精髓中的精髓,最后试着自己写一套自己的基础数据结构和算法出来,比光看书有效多了。
整理了一些机构的c++的资料视频,也许能帮助到大家。https://pan.baidu.com/s/1NU1ouGy563dvxhYk4pimgg?pwd=825i
提取码:825i