1、如何学习 C+?(转载)来源: 孙君杰的日志最近打算学习 C+,在准备的过程中,我认为学习方法应该是最重要的,不能盲目的拿到书就看,而且如今书籍琳琅满目,因此对于任何一位像我这样的菜鸟来说 都是很迷茫,不知所措。这就是我为什么要学习一些高手牛人的学习经验。下面也是一位 C+高手的经验之谈,我认为还是非常有用,收藏之!1、关于要不要学习 C+?(结论:要学,一定要学!)如今在网上很多为要不要学 C+争的不可开交,因为现在JAVA,C# , .NET 都炒的很火,特别是 JAVA,大有炸平庐山,停止地球转动之势。用林锐同志的话说,其实 JAVA 只是 C+外甥,跑到舅舅身上撒了一泡尿而已。首先,我
2、们从 JAVA 的来历上来说,JAVA 的设计初衷是用来给家用电器设计程序使用的,最初设计者想用 C+,但觉得 C+太复杂,就在 C+的基础上做了一些简化,设计出了 JAVA,它的设计思想是跨平台,所以必须先在运行平台上安装虚拟机,然后把源程序编译成中间语言再运行。这是一个优点,但我们说任意优点都是建立在缺点上的,JAVA 的缺点就是运行速度慢,这对于某些系统来说是致命弱点。况且,JAVA 中没有指针,对于制作系统软件来说,这更是无法饶恕的。再来看 C+。C+产生于美国贝尔实验室,就是发明电话那个公司。设计初衷是用来改进 C 的开发效率,C 是面向过程的语言,开发效率底,贝尔实验室有大量的 C
3、 程序员,所以只要在开发效率上提高一点点,就可以节约数目庞大的成本。C 是什么东西?是用来代替汇编编写操作系统的语言,用 C+代替 C,可以得出两个结 论:第一, C+必须具有同 C 相当的执行速度;第二,C+必须比 C 具有较高的开发效率。执行速度方面,C+的设计者的思想就是在改进开发效率的同时尽量不增加 C+的系统开销,当然有些地方非增加开销不可,也把开销控制在最小程度内。具非权威研究报告,C+比 C 的执行开销多出不到 10%。开发效率方面,C+引进了面向对象机制,库机制,最大程度上实现了代码重用,这是软件开发人员的福音。C+在改进C 的开发效率的同时,对 C 的缺陷做了一些修补。 C
4、的优点在 C+中都得到了很好的保留,C 的缺点在 C+中都有了改进,有了更好的解决办法。而且,为了现有的大量 C 程序维护,C+还全面兼容了 C。纵观当今程序语言家族,我觉得只有 C 可以 C+相提并论,门当户对,其它语言都无法和 C+相提并论。无论从什么角度来说,C+都算的上语言中的老大。如今,网上有很多关于 C+的争论,其实争论的人都是一些不知情的人,绝大多数是学校里的学生,我也曾经这样。在学校里的时候,不知道究竟应该学习什么, 要是遇到好的老师还可以,遇到垃圾老师,垃圾学校那就更糟糕。如今,什么 MCSE,CCNA,CIW 等等认证漫天飞,把人搞的昏头昏脑,其实这都是认证公司炒的。社会上
5、需要的是有真才实学的人,而不是需要证书。我从大二开始学 习编程,一开始学习 VB,后来学习 DELPHI,再后来学习 C#,再后来学习 C+,绕了个大圈子,最后还是绕回来了。而且重新学习数据结构,操作系统, 学习软件工程,学习大学本科的基本课程,重新读外国的程序设计名著,而这些以前在大学是不屑一顾的。劝如今还在学校的师弟师妹们,努力学习 C+。2、为什么要学习学习 C+1)C+ 的程序员身价普遍较高,当然,前提是你必须是高手。我所在的城市,那些公司根本就招不到合格的 C+程序员,一方面 C+程序员要求高,学习 C+的人越来越少了。当然,怀着这个目的,你或许永远无法成为 C+高手,但我把这个原因
6、放在最前面,可以给大家一个很明确的激励,当你接触C+后,发现从学习中 获得乐趣比高的工资更有动力;2)C+的优势是用来开发大型软件,从中可以学到很多优秀的软件设计思想。C+ 不是软件开发的首选工具,一般说来,大多人更愿意学习和使用 VB,为什么,简单。简单的另一个方面是功能的局限。微软公司恨不的所有人都学VB,只有他一家会 C+。容易上手,大家都喜欢学,喜欢用,很多人拿一本200 页的书,看个两三个星期,就觉得自己是个程序员了,可以开发软件了,而且觉得做出来的东西很不错。当软件规模大到一定程度的时候,其他语言就越来越无法驾驭, 这时 C+的优势就体现出来了。你说做个成绩管理系统,人事查询系统,
7、用 VB,DELPHI,C#,JAVA 都行,但是例如银行,电信,保险,操作系统, 数据仓库,图形处理,编译系统,较底层的软件时,其他工具几乎是无法完成的。就说 C+的指针,JAVA 没有,在遇到数据量较大的数据排序,搜索,动态内存分配时,它就没有办法了。所以说,学习 C+,不仅仅是学到的一种语言,还学习了优秀的软件设计思想。3)学习 C+可以学习到计算机底层的理论,即使不是用 C+开发,对计算机运行机制的理解,对建制稳定的系统,对运用其他语言,也是一种促进。这一点,我是在学习过程中体会到的,所以,要说出个大家可以接受的理由来较难,大家以后学习就知道了。3、怎样学习 C+?首先,我们必须承认,
8、学习要讲究方法,有捷径。其次,我们还得承认,学习要下苦功,要务实。上小学的时候,书上有个故事,是关于王羲之学习书法的:王献之问他父亲王羲之,学习书法的秘诀是什么,他父亲把他带到后院,指着 18 口大水缸说,你如果把这里的水都写完了,就知道书法的秘诀在那里了。这个故事相信很多人都还记得。前几天看梁肇新(豪杰公司老板)的高手箴言 ,他说如果你如果愿意利用 5 年时间来成为高手,那么你只要两三年就会成为高手,如果你想一年成为高手,那么你 5 年也成不了高手。学习要切忌浮躁,要脚踏实地。我曾经很浮躁,结果一直呆在菜鸟堆里,当半年前我静下心来学习 C+,才感觉有真正的进步。现在做 WEB 开发,虽然我从来不看 WEB 开发的书,但是我的同事遇到问题时,我经常能一下说出问题的所在。因为你看问题的角度变了。所以,学习 C+的第一个方法是:切忌浮躁。其实学任何东西都一样,欲速则不达。从基本数据类型看起,从基本流程控制语句写起。再次,教材很重要,要看经典名著。