好的文章大家共同分享 引言: 最近看见一些朋友问如何才能学好C/C++,有的也发邮件来询问我.我现在也不能算个牛人,但我觉得自己学的还是比较对路.做为斑竹,也有义务与大家探讨这些问题,一是为了我们这个版,二更是为了大家能够少走弯路. 我就结合自己的经历,来谈谈我对学习C/C++的看法. 我的历史: 1. 大一下,C语言必修,开始接触C,以后2年多都是用DOS下的TC.书嘛,课本:<C语言程序设计>(潭浩强) 2. 大3,忘了哪个学期,C++选修课,没怎么听,就学了些基本的语法.还是继续用C. 3. 大概是大学最后一年的样子,做一些课程的上机作业,用到一些数据结构,开始用C++的模板类.也可能觉得C++比较时髦,那个时候不管什么东西都故意写成类,所以就渐渐熟了. 4. 做毕业设计,才开始使用VC,主要是发现它的调试环境比TC好. 5. 毕业了,这个时候只会纯C/C++语言,连lib,dll,ocx,以及MFC,API,SDK什么的听都没听说过.我唯一的优点大概就是代码写的比一般人多,那是因为他们都不是自己写的缘故. 整个大学4年,就2本C和C++的教材,学校发的.也没有找什么东西来做,除了帮一个读夜大的完成过一次作业,都是学校里各课程布置的作业. 有的人说学校里教的没用.我不同意,至少我觉得自己学的都很有用,都是学校里开的课.我这个人比较懒,不喜欢找东西去学,但我保证做好自己分内的事,老师教什么,我就学什么,完成作业算数.我的导师说过一句话:如果人人都做好自己的事,那么这个社会就不需要雷锋. 6. 然后我就工作了,工资也不高,一般的软件公司.找工作的时候,我就把成绩单一贴,再把自己以前写的比较好的作业来个截图,就OK了.什么自荐信,我后来发现别人更本就不看!我没得过什么奖励,就参加过一次竞赛,来最低等奖学金都没有.有些课不感兴趣,也混个及格,但有些学的的确是不错,和软件相关的这些课分数都比较好.找工作主要还是看成绩的.也没考过什么认证,现在也没有. 刚开始的时候,我连lib都不会写的,就会写代码,因为我是数学专业的,软件开发这方面没什么接触,以前都是做些算法,写个老长老长的main完事的那种.什么东西都要新学. 7. 但我学的很快,认为是因为我的基础比较好,现在什么MFC,API,SDK,ADO之类的都懂一些了,而且觉得是掌握了OO,是公司里的一个牛人教我的.我从和他半年多的交流中,逐渐领悟了OO的奥义,C++真是博大精深啊!可惜那个人后来走了. 8. 这么多废话,其实很简单: 2年C 一年C++,3年只懂语言 1年工作,学会其它的东东 瞧我水吧,和我比你是不是要优越多了呢? 到今天我对自己的总体评价还是满意的.我知道,可能我还不如一些在校的学生,但我和自己比,在我从事的事业上,还是对路的. 有一句话,要送给大家:勤以致学,学以致用.我认为自己有一个最突出的优点,就是:认真!这是现在很多人都缺少的,我做什么事都认真,包括打游戏,要么就干脆不做,要做就要做到最好.或许你的技术和知识都很有限,但只要你把你所掌握的东西发挥到极限,那也不能算比别人差.因为你和别人的差距,只是别人比你多知道一些而已,而这些你迟早都会知道的. 有的人问,应该学写什么,有的人答,看你做些什么.我想不是,你没有选择任务的权利,除非你自己是老板.我对自己的评价是:劳动力,合格的劳动力,可以完成任何事的劳动力.我遇到的很多事都是自己不懂的,但我知道通过什么途径可以学习,在多长的时间内就可以完成,所以遇到新问题,我一点也不恐惧. 而且,在学生的时候,我就把自己当作一名程序员,而且是一名真正的程序员!什么才是真正的程序员?我就是,我拥有一个程序员的骄傲,我认为自己写的程序是最完美的,如果不是,那至少是尽我所知的所有手段的最佳结果.知识的匮乏可以用时间类弥补,但一个人的品格却要贯穿始终.因为知道的少而水平烂,那你总有一天可以知道的多而水平高,如果是因为不用心而水平烂,那你一辈子烂到底! 另外,基础知识很重要,语言知识工具而已.在工作中,我发现学校里的许多课程都是很有用的:数据结构,操作系统,算法,代数,运筹学,信息论,软件工程.我是学数学的,数学课程学的比较多,我也是赚了这个的便宜,我的研究方向是数字图象处理,所以我的专业知识都比一般人好.有的人开发工具用的挺麻溜的,但是算法几乎不懂,那永远掌握不了核心的技术,一辈子打字员.就象降龙十八掌,洪七公说打出去十分,体内就要留二十分.我认为开发工具就是掌法,基础知识就是内功啊! 有的人总在问,学什么好,学什么有用,先学什么,后学什么.我想说:好不好,有没有用,你用用就知道.不会因为你学会了一样东西而死掉了的. 最后是我总结的一些经验: 1.自己编程 2.看书可以通过考试,但成不了程序员. 3.基础知识比语言重要. 4.少抱怨教育体制,多学些本事. 5.不要为了钱和工作学习. 6.不要因为感时髦而学习编程. 7.认真,负责,自信,谨慎: 认真:学习和写代码的过程要认真,编程是要全身心投入的. 负责:要对自己写的代码负责,要终身维护自己的代码,因为那是你的孩子. 自信:相信自己的能够写出好的代码,相信自己的代码是最好的. 谨慎:思考问题和编码要谨慎,不要想当然,每一行都要细细揣摩. 后来补充的话: 不要说自己的老师水!他再水,总比你厉害吧. 有些人总是自我感觉太好,觉得别人都不配教他. 所谓的自学,以为是抛开学院体制,杀出了一条血路,好不英勇. 熟不知,很多人因为没有象你一样的学习条件,而不得不去走自学的道路. 以为自己看了几本课外书就了不起,如果别人可以通过看同样的书达到和你一样的水平. 那么只能说你太水了. 程序员的素质不是从几本书中可以得到的.需要长年的实践积累. 知道本杰恩是如何回答多久才可以学会C++,这个问题的吗?至少两年!