因为我的自由就个人诠释是 :"用自己的思路来自由的写验证性的usecase"
就个人的学习心得而言 :
1.在你学习C++的过程中,你首先需要扎实的实践一本C++基础教程,这个教程不在深而在全.使你能够全览之.最好结合基本数据结构来练习.不要整天Hello World~~Hello MM的.
2.再下来你需要《(More)Effective C++》,它使你可以对C++也多了份思考,也了解到一些技巧和误区,不过,你需要同步实践,不然可能一时你并不能真正掌握这些技巧、避开误区.
3.提高,你需要:(下面的书可能已经讲烂了:))
《Design Pattern》 :个人感觉,设计模式虽说是一种思维方式,具体实现上,只是
对OOP语言的发掘和巧妙组合而已.而且这里组合是主要的,
特性是有限的,这本书中有几个模式没用虚特性的?
C++ Standard Document: 在你用它来做专项研究的时候,就会体会到什么才叫真正的
全而深 (自然指在语法和语义的阐述上).
《STL源码剖析》 :没有深厚的功底,想来个闭门造车独挑STL源码是不可能的.
不过,这本说也重在关键技术的讲解和引导罢了~~
这里关于GP和STL的名著不少,本人没看过。不做品评。
《 Inside The C++ Object Model》:最具价值的一本书,没了它,C++永远是个迷,哪怕
你浸淫之N载~~
《Moden In C++ Design》 :这里的很多思路是你自己的思维很难接触到的~~:)
我不得不佩服Andrei Alexandrescu.
市面上其它的C++书籍可牛车载,我感觉除了《The Design And Evolution Of C++》是异品,值得一读.其它的不建议花太多的时间,哪怕是Bjarne Stroustrup、Stanley B.Lippman等的作品.自然,你有时间读更好,反正我现在有点后悔,当初只顾多,不顾深读,反复读.经典的书不在本数多,在于每本读的遍数多.一经验之谈,BBS上经常有人,在介绍COM技术书籍时,想也不想的指出,入门级<<Inside The COM>>.是这样的吗?我想,正如Dale Rogerson所说,将这本书完全看懂,你就是COM专家了~~书中,作者很多话可能你没有注意到,因为你还不懂之,对之没感觉,一遍翻下来,感觉哦~~简单~全看了 :) 这些书,跟国内的很多书籍最大的不同就是
国内书籍的作者写的出,可能自己还不懂:)Copy什么资料上的:)??
4.浸淫一门语言本身的语法语义再久,你不一定能够深入它的精妙之处.
你需要学习应用这门语言的实作品(技术),你可以研究一些FrameWork或是一些具体的技术 如CORBA、COM等.就个人而已,有心接触C++十个月左右,对于Virtual的认识有过几次较大的的改变.在《 Inside The C++ Object Model》中算第一次,在《COM本质论》中关于COM对二进制兼容布局需求而用虚机制来解决是第二次,到目前为止,使我对virtual流下最深刻印象的是在Automation技术中组件由于环境是否有能力分析virtual结构而导致是否需要分发接口的问题.如果,整天抱着《C++语法语义深入》这样的书,我不知你何时才能真正了解C++很多的特性.
即使你可以对别人说上一大套,这行啊~那不行啊~~云云~~:)
在这整个的过程中,我喜欢这样对学弟说,你需要经常将C++的各种特性在脑中反复混合酝踉,这也是我强调学基础时,要求教材知识点全的原因.经常的,为了研究某些特性而自由的写、修改、增加UseCase,是我自认为很好的一个习惯.整天记他人的经验之言,不知几个月后还记得几层:)
总之,我认为学习C++,需要多思考(譬如你想想为什么模板类继承不支持virtual、模板
类继承,基类实例和继承类实例产生的关系是什么样的)、
多写usecase、
多将一堆特性混合酝晾(譬如模板类
成员签名、多种嵌套模板类成员签名、嵌套类与包裹类生命期
控制等等)
要尽早选择应用方向(这点很重要,附加个人观点:大多数人认为理论很
难,可是我要说:应用一样是有难度的:)).
将00工程学中的理论适时的来对照自己的行为.
后话:
上面提到,就应用而已,比较语言的是没有什么意义的.然而我想说的是,不敢想象
没有经过C++锤炼的人,可以深入的研究C#(事实上,我一直也不人为C#比C++好学,只是他们的深入点是不同的,冒昧说一句,C++中很多难度是人为制造出来的),就目前的情况来说,还有就是由于C++历史、
社团、资源等因素.
共勉 :
因用而择、因爱而择
学究其深
勿以善小而不为 :)