计算机编程语言的入门学习
作者:翔宇 来源:ithao123  ithao123整理 2007-04-04
IT人应该学习哪种语言,我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++Java。比如,如果你要做企业级应用的你应该学习JavaC#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言科目二停车扣几分……呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。
注:2006.4.27更新,原稿见附录二,原稿有一定的局限性,故做修改以免误导大家,并请批评指正,谢谢。写在开始之前:应该学习哪种语言,我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++Java。比如,如果你要做企业级应用的你应该学习JavaC#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言……                                  1、我的入门是从学习C语言开始的(其实课程是C++),这是我们学校的公共课,我上课比较认真(虽然老师讲得很差,而
且一段时间后,我就发现自己的基础掌握比她好,当然理解深度没她好),因此,我认为对于完全没有基础的人而言,听别人讲比较容易入门。当时的教材是学校自己编的,挺烂的。
建议一(以C/C++为例),对于刚想进入编程的人(就是从来都没有接触过编程的人),最好是听课的方式(自己看的话估计要很慢,而且很痛苦),可以视频或者培训等。C语言推荐入门教材:谭浩强的C语言,最新版是第三版,不过第二版应该也可以了(蓝的)。说明一下:坚决不同意直接看K&R的《The C programming language》,这本书绝对不是初学者可以看懂的,里面讲语法的并不多,语法都是合在程序里面讲。不过这本书非常好,入门以后一定要看的一本书。
  当然可以从C++直接入门,C++之父强烈推荐从C++直接入手。C++推荐入门教材:钱能的C++(红的,清华大学出版),这本书第一版不是ISO C++,不过比较经典,作者现在也出了第二版了,第二版好像不是太好。国外的最好的入门教材据说是:《Acclerated C++》作者是KoenigMoo夫妇,非常厉害。他们的著作还有《c陷阱与缺陷》《c++沉思录》。《Acclerated C++》这本入门的书我没有看过,我觉得还是先本
国内的书好好看,看的差不多了,国外的经典书籍随便看就会觉得很有味道,否则你可能会很受打击。入门的书至少要看两三遍(要彻底理解哦 ):)。如果是C++,我建议后面类的部分至少要理解三到五遍。说明一下,c++模板的部分可以先不用看,如果有兴趣的话,等把c++学的差不多了,我觉得可以把模板、STL、泛型编程结合起来学习,这个又是一个很大的工作量了,又得下很大的功夫。所以说,C++博大精深啊。
  建议二、学习过程中要结合简单的算法,像冒泡还有类似c语言程序百例这样的小例子做做;更进一步应该做点大一点的项目,最好是控制台程序。或者你已经着手学习win32MFClinux,你也可以结合平台做点小的项目。
  2、第一阶段是最苦的,接下来相对就知道应该怎么去学习了。这时候假设你已经有了扎实的c++基础。这是你可以选择也应该选择发展方向了,做企业级应用,还是系统开发,嵌入式设计或者游戏开发……
  那时我其实并没有考虑那么多,因为我不是学计算机的,因此我就把参加一些计算机之类的考试当作学习目标。我当时其实C++语言基础已经很不错了,但是上机实践很少(那时我没有电脑),因此参加省计算机二级,全国计算机三级和全国计算机四级考试,结果
上机都没有通过。我很郁闷,二级的时候是我不知道怎么样进那个DOS界面把题目调出来,三级的时候是很快就编好了,也通过运行了,可是成绩出来却不及格,四级的时候是编好了,可能是我那题目比较难,好像用了两次循环,结果那破机器竟然承受不了。后来一乱就毁了(当然主要是上机太少了)。不过我那些上机都没有去补考。二级和三级的时候是自恃水平已经远远超过考试要求了(^_^,见笑了,可能是因为等级考试还是比较简单的),四级的时候则因为自己已经通过高级程序员考试,觉得补考上机好像没必要。(我高程和四级都是在2003年考的)。
  建议三:定位学习方向(见附录一)并好好学习计算机基础知识。在你还不确定学习方向,或者你还在大学本科期间,那么我认为应该先把计算机的基础知识好好学习一下。我认为计算机必学的基础课程而且要精学——首先是数据结构,其次是操作系统、软件工程,数据库。这四门课不管你将来想从事哪个方向的基本上都会用到。当然,有时间的话,其他基础课都是应该掌握的,离散数学、组成原理、体系结构、网络、编译原理甚至跨学科的。方向是很重要的,因为知识其实是无限的,一个小小的领域就够你研究很久了。本科生可能还没有什么方向的感觉,但是到了研究生你一定要清楚自己到底想要做什么,要往哪个方面发展,不要盲目学,瞎学乱学,否则最后可能看似什么都会,其实什么
都不会。
  我也曾经学习过Java一段时间,这篇文章既然是谈编程语言的入门学习,我也简单说一说。因为有了比较C++扎实的语言基础,所以Java学起来比较轻松。我先了国内一本薄薄的教材很快看了一遍(几乎都理解,但是只看了一遍),空闲的时间配合清华张孝详老师的java视频。以后其实才算我真正要开始入门JAVA的学习,我用了是《core java工行信用卡积分兑换》中文第六版(本来想用候捷翻译的第二版的《Thinking in Java》,发现被同学弄丢了),这本书我差不多用了20天才把里面的知识都搞懂,当然包括程序风格的模拟,最重要的时我把有关GUI编程的那三章里面的程序例子几乎可以默写出来(当然,那是因为我理解了,其实这样就变成了我的知识了),里面的API我也记得差不多了。(说明:Java里面的GUI编程没什么用处了,建议大家先跳过,GUI不是Java的长处,如果以后需要的话再查手册或者再记忆学习)。
祝中秋节快乐的图片  其实学习了C++以后,学习Java是比较容易了,但是建议不要两种都学啦,他们的用途是不一样的,你应该熟悉其中一种,更重要的是熟悉其应用领域所需要的专业知识甚至平台,以及使用他们的企业,有创业计划的还应该考虑一下他们的应用领域,最重要的是思考他们的潜在的应用领域。
  对于初级的学习就讲到这里,接下去的学习其实都是高级部分,先不介绍了,因为:一、我自己都还没有学懂,这里乱吹会误人子弟。 二、高级东西的学习很多,有很多选择,又需要很多繁琐的知识,可能也一下子没办法讲清楚。
以上仅是个人看法,欢迎评论。
这篇文章是我真实的体会,希望对初学者有帮助,现在更新一下。2006.4.27

附录一:
定位学习方向:
定位学习方向的关键是认清各个方向的学习内容和工作内容之间的区别。
1、《C++Java.NET——与同学讨论学习方向》(blog.programfan/article.asp?id=10813),我写的文章,主要谈了一些C++Java.NET之间概念的区别。
2、《IBM BCS实习感受:适合北软毕业生的咨询行业发展道路》(blog.programfan/article.asp?id=10913),我同学原创的一篇很好的文章,澄清了咨询业的一些概念
3、《三朝元老经验谈》(blog.programfan/article.asp?id=5587)我的一个师兄总结的一篇文章,很不错,介绍了IT业各个方向以及之间的不同柳岩胸有多大
附录二:本文第一版
呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。(作者:翔宇ITHao123.COM
1、我的入门是从学习C语言开始的(其实课程是C++),这是我们学校的公共课,我上课比较认真(虽然老师讲得很差,而且一段时间后,我就发现自己的基础掌握比她好,当然理解深度没她好),因此,我认为对于完全没有基础的人而言,听别人讲比较容易入门。当时的教材是学校自己编的,挺烂的。
  建议一、对于刚想进入编程的人(主要是从C/C++开始),最好是听课的方式(自己看的话估计要很慢,而且很痛苦),可以视频或者培训等。C语言推荐入门教材:谭浩强的C语言,好像最新是第三版吧,不过第二版就可以了(蓝的)。
  当然可以从C++直接入门,C++之父强烈推荐从C++直接入手。C++推荐入门教材:钱能的C++(红的,清华大学出版)。
  入门的书至少要看两遍(要彻底理解哦 )。如果是C++,我建议后面类的部分至少要理解三遍。
  VB我没有怎么学,好像谭浩强的一本VB入门教材非常的好,早期热卖全球(可以说谭浩强也因此被程序员杂志评为影响中国软件发展20人,教育先锋类中的一个。)
  总结:推荐从C++入门(C++是最难的,搞懂后其他是小case,对于其入门教材至少要理解两遍(推荐理解四遍),后面的类的部分至少理解三遍(推荐理解五遍)。当然具体情况因人而异。
2、第一阶段是最苦的,接下来就比较知道应该怎么去学习了。这时候假设你已经有了扎实的c++基础。这时你可以选择也应该选择一下是往微软阵营还是往java阵营发展。  实并没有考虑那么多,因为我不是学计算机的,因此我就把参加一些计算机之类的考试当作学习目标。我当时其实C++语言基础已经很不错了,但是上机实践很少(那时我没有电脑),因此参加省计算机二级,全国计算机三级和全国计算机四级考试,结果上机都没有通过。我很郁闷,二级的时候是我不知道怎么样进那个DOS界面把题目调出来,三级的时候是很快就编好了,也通过运行了,可是成绩出来却不及格,四级的时候是编好了,可能
是我那题目比较难,好像用了两次循环,结果那破机器竟然承受不了。后来一乱就毁了(当然主要是上机太少了)。不过我那些上机都没有去补考。二级和三级的时候是自恃水平已经远远超过考试要求了(^_^,见笑了,可能是因为等级考试还是比较简单的),四级的时候则因为自己已经通过高级程序员考试,觉得补考上机好像没必要。(我高程和四级都是在2003年考的)。          建议二:计算机必学的基础课程而且要精学——首先是数据结构和数据库,其次是操作系统、网络和软件工程。选择也应该选择一下是往微软阵营还是往java阵营发展。最初我选择学习vc++,发现很有难度,没怎么学。后来我转移到java阵营的学习。我首先学习java,因为有了C++扎实的语言基础,所以学起来比较轻松。我先了国内一本薄薄的教材很快看了一遍(几乎都理解,但是只看了一遍),空闲的时间配合清华张孝详老师的java视频。以后其实才算我真正要开始入门JAVA的学习,我用了时core java中文第六版(本来想用候捷翻译的ttj,后来被同学弄丢了心痛啊),这本书我差不多用了20天才把里面的知识都搞懂,当然包括程序风格的模拟,最重要的时我把有关GUI编程的那三章里面的程序例子几乎可以默写出来(当然,那是因为我理解了,其实这样就变成了我的知识了),里面的API我也记得差不多了。  虽然我总体只是把这本书看可一遍,但是里面包含了很多反复的学习,比如我在进入邱晨说啥了怎样清除历史记录GUI学习的过程中还不时反复
回来记忆前面章节的API  大家也可以按总体去看,就是说比如你第一遍用10天看完了,第二遍用5天看完了,然后又用3天来看第三遍来巩固。自己有自己的学习方式,就像记忆单词一样,大家要形成一个适合自己的学习战术。而大家所讲的方法其实只能当成一种战略来看待。具体的战术大家要去想哦。