我想学编程和计算机网络方面的东西这是理科还是文科生和理科生的区别?还是都需要?

计算机编程语言的入门学习&&&&IT人应该学习哪种语言,我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++和Java。比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言……呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。&&&&注:更新,原稿见附录二,原稿有一定的局限性,故做修改以免误导大家,并请批评指正,谢谢。写在开始之前:应该学习哪种语言,我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++和Java。比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好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++》作者是Koenig和Moo夫妇,非常厉害。他们的著作还有《c陷阱与缺陷》《c++沉思录》。《Acclerated C++》这本入门的书我没有看过,我觉得还是先找本国内的书好好看,看的差不多了,国外的经典书籍随便看就会觉得很有味道,否则你可能会很受打击。入门的书至少要看两三遍(要彻底理解哦 ):)。如果是C++,我建议后面类的部分至少要理解三到五遍。说明一下,c++模板的部分可以先不用看,如果有兴趣的话,等把c++学的差不多了,我觉得可以把模板、STL、泛型编程结合起来学习,这个又是一个很大的工作量了,又得下很大的功夫。所以说,C++博大精深啊。&&&& 建议二、学习过程中要结合简单的算法,像冒泡还有类似c语言程序百例这样的小例子做做;更进一步应该做点大一点的项目,最好是控制台程序。或者你已经着手学习win32、MFC或linux,你也可以结合平台做点小的项目。 &&&& 2、第一阶段是最苦的,接下来相对就知道应该怎么去学习了。这时候假设你已经有了扎实的c++基础。这是你可以选择也应该选择发展方向了,做企业级应用,还是系统开发,嵌入式设计或者游戏开发……&&&& 那时我其实并没有考虑那么多,因为我不是学计算机的,因此我就把参加一些计算机之类的考试当作学习目标。我当时其实C++语言基础已经很不错了,但是上机实践很少(那时我没有电脑),因此参加省计算机二级,全国计算机三级和全国计算机四级考试,结果上机都没有通过。我很郁闷,二级的时候是我不知道怎么样进那个DOS界面把题目调出来,三级的时候是很快就编好了,也通过运行了,可是成绩出来却不及格,四级的时候是编好了,可能是我那题目比较难,好像用了两次循环,结果那破机器竟然承受不了。后来一乱就毁了(当然主要是上机太少了)。不过我那些上机都没有去补考。二级和三级的时候是自恃水平已经远远超过考试要求了(^_^,见笑了,可能是因为等级考试还是比较简单的),四级的时候则因为自己已经通过高级程序员考试,觉得补考上机好像没必要。(我高程和四级都是在2003年考的)。建议三:定位学习方向(见附录一)并好好学习计算机基础知识。在你还不确定学习方向,或者你还在大学本科期间,那么我认为应该先把计算机的基础知识好好学习一下。我认为计算机必学的基础课程而且要精学——首先是数据结构,其次是操作系统、软件工程,数据库。这四门课不管你将来想从事哪个方向的基本上都会用到。当然,有时间的话,其他基础课都是应该掌握的,离散数学、组成原理、体系结构、网络、编译原理甚至跨学科的。方向是很重要的,因为知识其实是无限的,一个小小的领域就够你研究很久了。本科生可能还没有什么方向的感觉,但是到了研究生你一定要清楚自己到底想要做什么,要往哪个方面发展,不要盲目学,瞎学乱学,否则最后可能看似什么都会,其实什么都不会。&&&& 我也曾经学习过Java一段时间,这篇文章既然是谈编程语言的入门学习,我也简单说一说。因为有了比较C++扎实的语言基础,所以Java学起来比较轻松。我先找了国内一本薄薄的教材很快看了一遍(几乎都理解,但是只看了一遍),空闲的时间配合清华张孝详老师的java视频。以后其实才算我真正要开始入门JAVA的学习,我用了是《core java》中文第六版(本来想用候捷翻译的第二版的《Thinking in Java》,发现被同学弄丢了),这本书我差不多用了20天才把里面的知识都搞懂,当然包括程序风格的模拟,最重要的时我把有关GUI编程的那三章里面的程序例子几乎可以默写出来(当然,那是因为我理解了,其实这样就变成了我的知识了),里面的API我也记得差不多了。(说明:Java里面的GUI编程没什么用处了,建议大家先跳过,GUI不是Java的长处,如果以后需要的话再查手册或者再记忆学习)。&&&& 其实学习了C++以后,学习Java是比较容易了,但是建议不要两种都学啦,他们的用途是不一样的,你应该熟悉其中一种,更重要的是熟悉其应用领域所需要的专业知识甚至平台,以及使用他们的企业,有创业计划的还应该考虑一下他们的应用领域,最重要的是思考他们的潜在的应用领域。&&&&
对于初级的学习就讲到这里,接下去的学习其实都是高级部分,先不介绍了,因为:一、我自己都还没有学懂,这里乱吹会误人子弟。 二、高级东西的学习很多,有很多选择,又需要很多繁琐的知识,可能也一下子没办法讲清楚。 &&&&以上仅是个人看法,欢迎评论。&&&&这篇文章是我真实的体会,希望对初学者有帮助,现在更新一下。&&&&附录一:&&&&定位学习方向:&&&&定位学习方向的关键是认清各个方向的学习内容和工作内容之间的区别。&&&&1、《C++、Java与.NET——与同学讨论学习方向》(/article.asp?id=10813),我写的文章,主要谈了一些C++、Java和.NET之间概念的区别。&&&&2、《IBM BCS实习感受:适合北软毕业生的咨询行业发展道路》(/article.asp?id=10913),我同学原创的一篇很好的文章,澄清了咨询业的一些概念&&&&3、《三朝元老经验谈》(/article.asp?id=5587)我的一个师兄总结的一篇文章,很不错,介绍了IT业各个方向以及之间的不同&&&&附录二:本文第一版&&&&呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。(作者:翔宇)&&&&1、我的入门是从学习C语言开始的(其实课程是C++),这是我们学校的公共课,我上课比较认真(虽然老师讲得很差,而且一段时间后,我就发现自己的基础掌握比她好,当然理解深度没她好),因此,我认为对于完全没有基础的人而言,听别人讲比较容易入门。当时的教材是学校自己编的,挺烂的。&&&& 建议一、对于刚想进入编程的人(主要是从C/C++开始),最好是听课的方式(自己看的话估计要很慢,而且很痛苦),可以找视频或者培训等。C语言推荐入门教材:谭浩强的C语言,好像最新是第三版吧,不过第二版就可以了(蓝色的)。 &&&& 当然可以从C++直接入门,C++之父强烈推荐从C++直接入手。C++推荐入门教材:钱能的C++(红色的,清华大学出版)。 &&&& 入门的书至少要看两遍(要彻底理解哦 )。如果是C++,我建议后面类的部分至少要理解三遍。&&&& VB我没有怎么学,好像谭浩强的一本VB入门教材非常的好,早期热卖全球(可以说谭浩强也因此被程序员杂志评为影响中国软件发展20人,教育先锋类中的一个。) &&&& 总结:推荐从C++入门(C++是最难的,搞懂后其他是小case),对于其入门教材至少要理解两遍(推荐理解四遍),后面的类的部分至少理解三遍(推荐理解五遍)。当然具体情况因人而异。2、第一阶段是最苦的,接下来就比较知道应该怎么去学习了。这时候假设你已经有了扎实的c++基础。这时你可以选择也应该选择一下是往微软.net阵营还是往java阵营发展。 实并没有考虑那么多,因为我不是学计算机的,因此我就把参加一些计算机之类的考试当作学习目标。我当时其实C++语言基础已经很不错了,但是上机实践很少(那时我没有电脑),因此参加省计算机二级,全国计算机三级和全国计算机四级考试,结果上机都没有通过。我很郁闷,二级的时候是我不知道怎么样进那个DOS界面把题目调出来,三级的时候是很快就编好了,也通过运行了,可是成绩出来却不及格,四级的时候是编好了,可能是我那题目比较难,好像用了两次循环,结果那破机器竟然承受不了。后来一乱就毁了(当然主要是上机太少了)。不过我那些上机都没有去补考。二级和三级的时候是自恃水平已经远远超过考试要求了(^_^,见笑了,可能是因为等级考试还是比较简单的),四级的时候则因为自己已经通过高级程序员考试,觉得补考上机好像没必要。(我高程和四级都是在2003年考的)。 建议二:计算机必学的基础课程而且要精学——首先是数据结构和数据库,其次是操作系统、网络和软件工程。选择也应该选择一下是往微软.net阵营还是往java阵营发展。最初我选择学习vc++,发现很有难度,没怎么学。后来我转移到java阵营的学习。我首先学习java,因为有了C++扎实的语言基础,所以学起来比较轻松。我先找了国内一本薄薄的教材很快看了一遍(几乎都理解,但是只看了一遍),空闲的时间配合清华张孝详老师的java视频。以后其实才算我真正要开始入门JAVA的学习,我用了时core java中文第六版(本来想用候捷翻译的ttj,后来被同学弄丢了心痛啊),这本书我差不多用了20天才把里面的知识都搞懂,当然包括程序风格的模拟,最重要的时我把有关GUI编程的那三章里面的程序例子几乎可以默写出来(当然,那是因为我理解了,其实这样就变成了我的知识了),里面的API我也记得差不多了。 虽然我总体只是把这本书看可一遍,但是里面包含了很多反复的学习,比如我在进入GUI学习的过程中还不时反复回来记忆前面章节的API。 大家也可以按总体去看,就是说比如你第一遍用10天看完了,第二遍用5天看完了,然后又用3天来看第三遍来巩固。自己有自己的学习方式,就像记忆单词一样,大家要形成一个适合自己的学习战术。而大家所讲的方法其实只能当成一种战略来看待。具体的战术大家要去想哦。&&&&对于初级的学习就讲到这里,接下去的学习其实都是高级部分,先不介绍了,因为:一、我自己都还没有学懂,这里乱吹会误人子弟。 二、高级东西的学习很多,有很多选择,又需要很多繁琐的知识,可能也一下子没办法讲清楚。 &&&&送给正在学习C++朋友的50条建议.&&&&1.把C++当成一门新的语言学习(和C没啥关系!真的。); &&&& 2.看《Thinking In C++》,不要看《C++变成死相》; &&&& 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; &&&& 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; &&&& 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; &&&& 6.会用Visual C++,并不说明你会C++; &&&& 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书; &&&& 8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的; &&&& 9.看Visual C++的书,是学不了C++语言的; &&&& 10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!? &&&& 11.浮躁的人容易问:我到底该学什么;——别问,学就对了; &&&& 12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行; &&&& 13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! &&&& 14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行; &&&& 15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;&&&&16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; &&&& 17.C++不仅仅是支持面向对象的程序设计语言; &&&& 18.学习编程最好的方法之一就是阅读源代码; &&&& 19.在任何时刻都不要认为自己手中的书已经足够了;20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准; &&&& 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; &&&& 22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; &&&& 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》; &&&& 24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序; &&&& 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好; &&&& 26.请看《程序设计实践》,并严格的按照其要求去做; &&&& 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样; &&&& 28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密; &&&& 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已; &&&& 30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;&&&&31.学习编程的秘诀是:编程,编程,再编程; &&&& 32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》; &&&& 33.记住:面向对象技术不只是C++专有的; &&&& 34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码; &&&& 35.把在书中看到的有意义的例子扩充; &&&& 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中; &&&& 37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去; &&&& 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路; &&&& 39.C++语言和C++的集成开发环境要同时学习和掌握; &&&& 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的; &&&& 41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主; &&&& 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43); &&&& 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的; &&&& 44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的; &&&& 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了; &&&& 46.记录下在和别人交流时发现的自己忽视或不理解的知识点; &&&& 47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX; &&&& 48.保存好你写过的所有的程序——那是你最好的积累之一; 49.请不要做浮躁的人;  50.请热爱C++!&&&&:如何学好C语言 修改内容 引用 回复 楼主 dwt710 发表于
13:11:50 &&&&习编程是一件好事 不过之前你得先了解 你学习编程的目的是什么 这个很重要 因为目的决定发展方向 &&&&目前对于编程有很多种编程语言以及相对应的开发软件 下面说明一些常用的编程语言 根据你的情况选一种语言进行学习 不要盲乱学习 &&&&C语言 一种可移植性和多系统平台的编程语言 开发软件TC &&&&VB 一种可以说是既学既用的软件开发语言 开发软件如:VB6.0 &&&&DELPHI 一种和VB差不多的既学既用的软件开发语言不过其功能远比VB强大 代码书写上更加方便 &&&&开发软件 DELPHI7.0 &&&&JAVA 一种功能强大可移植性强开发语言 &&&&程序语言,顾名思义就是语言,是用于交流的,程序就是计算机的语言和人的语言的翻译者,做一个程序员就是要把人类世界的问题用计算机的方法去解决和展现,可是因为种种原因,大多数人在如何学好语言,如何学好开发平台上疲于奔命,到头来你只会敲写代码。 &&&&程序基本上都是自学的,买书是一开始碰到的最头痛的问题,计算机的书大多都很贵,现将我的一点经验供大家参考: &&&&如果想做一个合格的程序员,C++是一定要学的,首先你要花两个月的时间学习C,C++,这样的书很多,去选一些大学的教材足亦,切记,不要花过多的时间研究C++,两个月够了,只要学会其中语法就行了,不要为了深入用DOS编写菜单什么的,那是吃饱人参了。 &&&&如果你有过多的时间,接下来你可以学习数据结构,推崇《数据结构C++语言描述》,清华大学出版,58元,但如果无过多时间,还是不看为妙,至少我现在从未用过这本书的知识,许多东西MFC VCL等开发平台都为你已经做好。 &&&&接下来开始学习Windows下的SDK编程, 推崇《Windows程序设计》160元,建议去借,不要买,而且你只看上册,你只要了解Windows的运作机制即可。两个月 &&&&然后你将转入VC的世界,既然要在Windows下编程,VC不可不学, 推崇《VC++技术内幕》第四版,96元,三个月,不要全部看,看前面的三部分,后面不要看。后面的只是对COM,数据库,Internet形如鸡肋的介绍。 &&&&接下来你应该考虑一下你将要发展的方向,如果是做数据库,你可以用VB和Delphi或CB, 如果要做通信方面,或者硬件,你将要深入VC, 如果是WEB相关的,去学学ASP,JAVA,JSP,XML等,但有一样你必须要学的,COM。COM与其说是一样新的技术,还不如说是种机制,推崇潘爱民的《COM原理和应用》39元,你可以一边看这本书,一边学习些ActiveX组件,ATL控件等等。如果你有的是时间,不急于找工作,你还可以看看《Windows高级编程》或《Windows核心编程》,但不管怎么样,你要切记,VC不是用来做界面和数据库的,做网络的现在也有JAVA,都是用来做一些很底层的东西,VC是很高薪的,如果你对自己有充分的信心和有的是时间,你才可以深入VC。否则的话,还是看看人才市场,看看行情,再说。 &&&&还有一点切记,有些书,诸如《MFC深入浅出》这些书主要是关于那些技术原理的介绍,我个人认为程序只是工具,只是技术,只要学会用,能完成任务即可,如果有的是时间,才会去探索根源,也许有许多人会说,懂了原理对你编程会有很大帮助,我不否认,但是,要知道,就算你编程技术如何了得,你只是个技术人员,当你学了那么多的技术和知识,第一,计算机的知识其实是各大公司制定出的标准,标准变了,你不是白学了吗?第二,当你花了几年的时间学习,到头来你只不过程序水平提高一点。我认为应当将你的大部分智力和精力用在如何与人打交道,电脑让你用的好有什么用,人脑让你摆弄的好才算真本事,就如《黑冰》里面的计算机工程师,虽然对计算机十分精通,可有什么用,还不是死在王志文的手里?而且死的很惨,脸都毁了。 &&&&另外,不要去学你喜欢的,也不要去费劲脑子想该学什么,看看人才市场,市场需要什么,你学什么。 &&&&一家之言,仅供参考。&/CA&&&&&如何选择编程语言&&&&作者:不详 来源:csdn博客  ithao123整理 &&&&摘要&&&&IT人&&&& 如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择c。&&&&
如果编写到处可用的程序,选java。&&&&
如果编写大程序,可能的话尽量用python,不行了再用java和c。因为python带来了生产力。&&&&各种语言的选择: &&&&如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择c。 &&&&如果编写到处可用的程序,选java。 &&&&如果编写大程序,可能的话尽量用python,不行了再用java和c。因为python带来了生产力。 &&&&//编写文本的处理程序用perl。 &&&&//编写知识的处理程序用prolog。 &&&&编写最灵活,最模糊的程序用lisp。 &&&&//编写office程序用vba。 &&&&编写服务器端程序,php、perl、python、asp都是选择。 &&&&//编写数据库程序用vb或delphi。&&&&什么计算机语言最有前途- 编程语言&&&&可爱小天使 发表于:
18:11 来源: 聋人之星 &&&&这个问题是每一位学习编程的初学者都会遇到而且很迷茫的问题,在这里发表一下个人观点,仅供参考:&&&&1.每一种程序都有其发展的历程,没有任何一种程序是万能的,比如说我们都知道的C语言,开发C的初衷就是为了让程序员能脱离那种原始的汇编的环境,可以在高级语言环境中对内存地址进行控制,所以C语言在底层操作上来讲要优越于其他高级语言;比如Pasical语言的初衷就是为了程序设计中的教学使用,所以Pasical语言的语法结构很严谨;比如Fortran语言,开发的初衷就是为了工程计算,所以他的数学逻辑工程逻辑功能模块就相当强大,等等…………2.现在的语言已经发展到面向对象的高级语言,像我们现在所熟知的Java、.Net、Delphi 等语言,他们开发应用软件来说基本没有太大的区别,因为他们的库都已经很丰富,我们开发起来也相对较简单一些,他们的差距也就紧紧在于市场占有率和所在公司开发选择问题上了。还有另外一个就是一些数据库编程的语言比如SQL、PB等语言,他们的数据库功能相当强大,由于微软产品的市场占有,所以大家比较倾向于SQL语言,因为他的应用面要广一些,但是不乏有些朋友会基于一些其他的想法选择其他类型的数据库编程语言。解释类语言,作为B/S开发模式的语言,也是根据其市场占有规模来分,一般来讲市场占有率越高的语言程序,那么它的库要丰富一些,我们操作起来要相对容易些。所以说,现在流行的应用软件开发的语言来讲,我们一般考虑的是市场占有率高的,就会有更多的工作机会来等待我们;但是一些市场占有率稍低的开发语言(有自己特色的),工作机会自然少一些,但是报酬相对要高一些,物以稀为贵嘛!&&&&3. 各种语言的选择 &&&&如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择C。 &&&&如果编写到处可用的程序,选Java。 &&&&如果编写大程序,可能的话尽量用脚本语言如Python、Ruby,不行了再用Java和C。因为脚本语言带来了生产力。 &&&&编写文本的处理程序用Perl或Ruby。 &&&&编写知识的处理程序用prolog。 &&&&编写最灵活,最模糊的程序用Lisp。 &&&&编写office程序用vba。 &&&&编写服务器端程序,PHP、(采用自己熟悉的语言来写,例如Perl、Python、Ruby)CGI、ASP、(熟悉Java就用)JSP都是选择。 &&&&编写数据库程序用vb或delphi。 &&&&如果要追求性能和程序的能力,要完全发挥操作系统的能力,使用C/C++语言是合适的。在Windows环境下用VC,在Unix-like环境下用gcc。 &&&&如果不是追求和操作系统完美结合,而只是性能,又要追求跨平台性,那么仍然选择C,但可以选择跨平台的库,如qt、gtk、fox、wxWindows。如果要编写游戏也有跨平台选择:SDL。 &&&&如果不满意C领域标准的不统一,不满意C的容易出错,不满意C的面向对象特征不彻底。如果不在乎跨平台,Windows平台可以选择C#,maC平台可以选择CoCo。如果需要跨平台,可以选择Java。 &&&&如果需要跨平台,又要广泛的支持的话,选择Java。 &&&&在Unix-like下,最方便的工具语言是Perl,它有强大的社区和代码库的支持。 &&&&如果只作为简单应用的工具语言,Python和Ruby是更好的选择,他们的跨平台移植性好,应用也比较广泛。其中Python更适合入门和交流,长期使用也不错。Ruby是对Python不满意的另一个选择,它提供了很多额外的功能。 &&&&如果要选择一个程序的嵌入语言,原来有Lisp、Basic和Java,现在还可以选择Python和Ruby。 &&&&如果在要求动态解释执行语言,而又不想学其他语言的话,C程序员的选择是pike,Java程序员的选择是beanshell。 &&&&在Java平台,又想用脚本语言的话,可以用Python。 &&&&最正统的基于文档的语言或叫动态页面语言是JavaScript。 &&&&最专门的服务器端语言是PHP,当然也有很多其他选择。 &&&&XML语言以XUL为最着名,dtml也算一个,你自己也可以用XML作为自己特殊用途的语言。比如jedit就用XML作为一种模式定制语言。XML语言是一种比较先进的趋势,比现有的语言在特殊领域更高效。 &&&&要找容易实现的语言,Lisp和Tcl是选择。 &&&&Lisp的数据和程序融为一体的能力和自由是其他语言都没有的。现在出现了一个Lisp的现代化的变种:REBOL。 &&&&如果有基于事实的编程的需要的话,prolog和Clips是必然。 &&&&4.其实说到最后,也许大家都已经迷糊了,因为我自己也迷糊了(不要扔我!谁啊?怎么还有鸡蛋?!*—%##*),不过只需要一个简单的道理:选择什么方向(数据库、应用软件、底层开发等等),那要看我们对什么感兴趣,对什么有一种亲切感;选择好了方向,在选择需要那个具体的语言,那就要看市场占有,公司发展前景,我们需要得到的利润回报等因素(不过,作为同种类的语言,一个真正的程序员是可以很好的跨越这种平台的,也就是说你最好不要只学习一种语言)!&&&&5.如果你为了挣钱,就学Java C# VB 之类的快速开发工具; &&&&如果你是为了挣钱还想搞搞技术, 就学C++之类的语言; &&&&如果你想搞系统开发, 你就要从硬件,汇编,一点一点学起了. &&&&从初学者到编程高手,几种必学的编程语言&&&& 如果每种语言总是略学皮毛,然后又急匆匆的跳到另外一种语言,那你就会一事无成,永远彷徨在初学者的门槛边。对于初学者,我建议从 python 开始学。因为它在语言设计上很整洁,帮助文件也很全面。而且也是 object-oriented (O-O),尽管我把它作为一个初学者开始的语言,并不代表它的用处和功能不强大。实际上它是个功能强大,可以用来做大的编程工程的语言。 &&&&我知道国内对 python 可能还不了解,因为它相对来说也比较新(1990),到现在有12年的历史了,但是它在国外已经被广泛接受和认同,快速发展。不过我知道邮电出版社最近刚出了一本介绍 python 编程的书,大家可以查询。python 的主页 http://www.python.org&&&&Java 也是个很好的语言来开始学编程。不过它比 python 复杂。国外的大学现在都采用 java 作为电脑专业的凯时语言。总之我觉得除了 python 之外,它也可以作为一个极好的初学者语言。 &&&&不过,会了这两种语言,并不代表你就是一个编程员了。学会编程的关键就是 -- “ 编程思想“ 。 学会怎样用一种很“ 广泛的思维“ 去考虑“ 编程问题 “,也就是这种思维是可以放之于任何一种编程语言都可以解决问题的,而不是局限于单纯的一种语言。这样当你需要学习一种新的语言时,你只要学习他的语法等等就可以了,至于怎样用这种语言解决编程问题不是早就在你的脑子里了吗。所以,这也就是为什么很多程序员可以拿到一种语言,一两个星期就可以使用的很熟练了。这,也同样要求你去学几种完全不同的语言。 &&&&C 语言是非常有效率的,很多时候你都需要考虑内存的管理等底层的东西。很可惜这些都需要你去花很多的时间去做,问每一个 C/C++ 的程序员,用 C/C++ 编程是不是一个很头疼的事。好消息是,现在的机器都已经很高级,运算的很快,在很多时候我们是不用考虑用 C/C++ 去做,忽略它所带来的好处,当然除非这个工程真的很需要处理底层的东西(象 内核的编辑,3-D 图形等)。很多时候 python, java 等都可以实现。另外在现在很多工程所要求的时间都不是足够充裕来用 C/C++ 去做,所以在商业上时间就是金钱,这个代价谁也付不起。 &&&&我这里并没有说 C/C++ 不好,你不应该学。相反我觉得我们应该学,但不是作为一个初学者的语言来学。在 C 和 C++ 之间,我推荐先学 C 。.因为它相对来说较小,简单。作为一种底层编程语言,C,你可以学到很直接的内存管理,指针,等。另外,很多语言都是用 C 来设计的, 比如 perl , java, python &&&&其它语言值得一学的有 perl , Lisp(当然你也很一说 effile, proflog),提到 perl 是因为它的实用性,广泛的应用在网络和系统管理,perl 提倡 &There is always more than one way to do it& 这主要是从 perl 的语法以及它的独特设计上来获得,记得用几行code 你就可以写出很有效率的程序?这也就是为什么我很喜欢perl 了。但是perl 的语法着实让很多人头疼 而且对于用 perl 写的大型程序,维护性不是很好,python 就没有这方面的问题,这也是为什么很多 perl 的用户转向了 python 。很多人用 perl 的目的和用 python 一样,避免在不要求 C 的效率时 使用 C。 &&&&Lisp 据说是很有启迪性的语言,会让你成为一个更好的程序员.(我还没有到达那个程度 :-) &&&&我个人推荐 (python, java, C ,perl, 和 Lisp),因为他们使用不同的方法来编程,每一种都会在某种程度上交给你些很有价值的东西。 &&&&谈到学习编程,单纯的上课和看书只会让你学习语言的特性等,只有学会用编程的思想来思考才是你终生受用的。这些只能依靠 “ 练习 “ 具体就是 1) 读程序 2) 写程序 看似简单,但坚持下来你才会真正体会到,这里没有其他可以投机取巧的方法学习编程了。 &&&&至于学多少种,是越多越好吧。但并不是指每个都精通,我想大家也没那么多时间和精力。但在你有了坚实的编程经验和基础,了解其它语言的设计方法、构造会开阔你的眼界,没准什么时候你也可以编出自己的语言(咱中国人编的!!) :-) &&&&要提醒大家的是,如果每种语言总是略学皮毛,然后又急匆匆的跳到另外一种语言,那你就会一事无成,永远彷徨在初学者的门槛边。我想这句话不只是对程序员,对我们来说也是生活中的一个道理。&&&&程序入门:初学者应从何种编程语言开始学起根据你兴趣选一个你认为有发展的语言,然后闭关修炼去。甭管外面怎么说,学好了才是硬道理。以后不用担心你转不成其他语言。对于学生来说,我建议C/C++作为入门的基础。重点可以放在C++中,学好面向对象的思想。从编程中体会到为什么要用面向对象,而不是单纯的背书。计算机系的课不应该去背的,不懂的就查资料就行了。当学生有了一定编程能力后,就可以选择你以后作为主要的语言。即可以继续研究C++,也可以选择Java或.net中的任何一门语言这是一个争论不休的话题,不同人总会有不同的见解。传统的说法是从Pascal开始,而较为新点的是C开始,这几年以来,也有提出直接从C++或者C#/Java开始学起。 &&&&本人是本科出身的,对于专科或者不读书的初学者来说,他们的环境也许跟我的不同,不过我的观点可以作为参考。 首先,我先来介绍一下各种编程语言的来源、特点。 &&&&Pascal语言:Pascal是一种计算机通用的高级程序设计语言,由瑞士Niklaus Wirth教授六十年代末设计并创立的。 Pascal的主要特点有:严格的结构化形式、丰富完备的数据类型、运行效率高、查错能力强等特点。由于上述特点,Pascal可以方便用于描述各种算法和数据结构。对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一。NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的数学语言。 &&&&C语言: C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编和高级语言优点于一身的程序设计语言。于1972年在美国贝尔实验室里问世。早期的C语言主要用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了九十年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到广泛的应用。成为当代最优秀的程序设计语言之一。 &&&&C的特点 1. 是一种结构化语言。层次清晰,便于按模块化方式组织程序,易于调试和维护。 2. C语言的表现能力和处理能力极强。不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。 3. 由于C语言实现对硬件的编程操作,所以既可用于系统软件的开发,也适合于应用软件的开发。C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类计算机上,从而形成了多种版本的C语言。 4. 由于C语言允许直接对位、字节和地址进行操作,能实现汇编语言的大部分功能。 5. 目标代码质量高,程序执行效率高。 &&&&总体上来说,C语言的优点是简洁、紧凑、使用方便、灵活、易于学习和应用。仅有32个关键字。9种控制语句,程序的书写形式也很自由。 &&&&C语言的弱点:非强类型;语法限制不严格,使得编程者无法过多地依赖C编译程序去查错;缺少实时检查,如数组越界等。 &&&&从严格上来说,C语言是块结构语言,这是因为它在结构上类似于ALGOL、Pascal和Modula-2。从技术上讲,块结构语言允许在过程和函数中定义过程和函数。因为C语言不允许在函数中定义函数,所以不能称为通常意义上的块结构语言。 &&&&C语言作为一门面向过程的计算机语言,至今已有三十多年历史,应用广泛,无论是Windows还是Linux,你所看到的底层都是用C写的。大部分的网络协议也都是用C实现的。你看到的最漂亮的游戏画面也是用C实现的,工业控制程序也是用C实现的。不过C不是万能,只是某些方面它适用而已。 &&&&C++语言 C++是于1986年由AT&T贝尔实验室开发的,语言开发的目的在于通过数据封装减少程序变量的副作用,从而降低程序的复杂性并提高程序的可靠性。(笔者曾经听到的开发C++的目的是由于懂得C语言的人越来越多,所以需要再出一门更难的、比C语言强大的语言,才能保住饭碗,so。C++出世啦)C++是C语言的直接扩展,C++的多继承机制能更好地描述对象的属性和行为。 C++是C的扩展,但C++可以作为一种全新的语言来看。 &&&&C++的特点:面向对象、继承、封装、多态性。 &&&&由于C++是C的扩展,所以也具有C的特点。C++在C的基础上,加入了面向对象编程思想,也就决定了C++的效率在某一方面是不如C的。比如定义一种类型,C++用类(Class)来封装,而C可能就直接几个变量的组合就成了一个结构体(Struct),类不仅具有成员变量,还具有成员函数等,在精细的比较其效率时,C会比C++的效率要高。但由于时代的发展,项目或工程的庞大化,基于面向对象的思想显然更能适应。即C++在这方面能比C要做得更漂亮。现在不少系统级编程都是用C++实现,许多应用级别的软件也是用C++实现。 &&&&这里要注意一点,就是C++并不是完全的面向对象语言。它是提供了面向对象的模型以及思路,但是同时兼容了面向过程的模型。 &&&&Java语言 &&&&Java语言来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们就可以把email发给电冰箱、电视机等家用电器。对他们进行控制和信息交流。开始,准备用C++,但C++太复杂,安全性差,最后用一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但被SGI打败。可怜的Oak几乎无家可归,恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用(Java)编制了HotJava浏览器,得到了Sun首席执行官Scott McNealy的支持,触发了Java进军Internet。Java的取名有一段趣闻:有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。 &&&&Java的特点: &&&&1. 简单性:风格类似于C++,Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。 &&&&2. 面向对象:Java是一种完全面向对象语言。从这点来看,Java类似于SmallTalk,但其特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。 &&&&3. 分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。 &&&&4. 健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。 &&&&5. 结构中立:Java将程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都执行这种中间代码。这种中间语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。 &&&&6. 安全: &&&&1)删除了香指针和手动释放内存等功能,避免了非法内存操作。 &&&&2)当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来。 &&&&Java在机器上执行前,要经过很多测试,它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。 &&&&7. 可移植的:同体系结构无关的特性使得Java应用程序可以在配备Java解释器和运行环境的任何计算机系统上运行。任何Java代码会被解释成一种中间语言,然后通过不同机子的特定环境(如机器指令)运行程序。实现方便移植的特点。 &&&&8. 解释性。Java解释器能直接运行目标代码指令。链接程序通常比编译程序所需资源少。 &&&&9. 高性能。如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。 &&&&10. 多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带来的更大好处是更好的交互性能和实时控制性能。 &&&&11. 动态:动态特性允许程序动态地装入运行过程中所需要的类。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。 Java在诞生之后不久,便受到广大群众的欢迎,甚至有人说出有了Java,可以不要C/C++了。一度把Java提到了很高的地位。这当然是对Java的一种赞赏,只是有点过了。到今天,Java依然不能取代C,C++,而且还出现了新的对手――.Net(后面将会介绍)。 &&&&Java目前主要应用:Web浏览器、网络应用系统。C#语言。 C#是一种精确、简单、类型安全、面向对象的语言。说到C#,就不得不先简单介绍一下.net。到底什么是.net呢,按照微软总裁兼首席执行官Steve Ballrner把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。C#是.net的代表语言。 &&&&C#的特点: 1. 完全面向对象。 2. 支持分布式,之所以有C#,是因为微软相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器上。所以C#一出生就注定了能很好解决分布式问题。 3. 跟Java类似,C#代码经过编译后,成为了一种IL(中间语言)。在运行时,再把IL编译为平台专用的代码。 &&&&4. 健壮,C#在检查程序错误和编译与运行时错误一点也不逊于Java,C#也用了自动管理内存机制。 &&&&5. C#不像Java那样完全摒弃了指针和手动内存管理。C#默认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。 &&&&6. 安全性:C#的安全性是有.net平台来提供的。C#代码编译后成为IL语言。是一种受控代码,.net提供类型安全检查等机制保证代码是安全的。 &&&&7. 可移植性:由于C#使用类似Java的中间语言机制。使得C#也跟Java类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。 &&&&8. 解释性:C#也是一种特殊的解释性语言。 &&&&9. 高性能:C#把代码编译成中间语言后,可以高效的执行程序。 &&&&10. 多线程:与Java类似,可以由一个主进程分出多个执行小任务的多线程。 &&&&11. 组件模式:C#很适合组件开发。各个组件可以由其他语言实现的,然后集成在.net中。 &&&&C#是在Java流行起来后所诞生的一种新的语言。由于微软在操作系统上占有很大的优势。在以往的开发中累积了不少经验,所形成的.net平台,所以C#在Windows方面可以说比Java具有更大的优势。如果单纯从技术上来讲,C#在网络编程上可以与Java匹敌。C#还在Windows Forms也有一定的优势。C#是一种非常类似于C++的语言,风格是更接近于Java,不管是C++程序员还是Java程序员,都可以很方便的转到C#上来。 C#的强大是依赖于.net的发展,而.net的发展是看微软在.net上的决心和投入有多少。从Windows 2003和Vista系统可以看出(前者内置.net1.1,后者内置.net2.0。).Net在Windows编程中具有重要的战略意义。C#目前主要是应用在网络编程上,其他领域比如数据库、窗体编程,都逐渐在增大。 终于写完了各种语言的特点。如果读者对以上观点不同意,请留言。别BS我就对了。好了。继续,我该讲主题了!其次,我们现在假定一个初学者没有任何程序设计语言的基础。先来比较一下各种语言: &&&&Pascal PK C 现在,看我们学习Pascal和C的过程:学Hello world,然后知道怎么编译,运行。然后学习基本数据类型,然后输入输出。不管学校希望学生能学多好,实际来看,学生学Pascal跟学C是没什么区别的。不同的只是语言风格。有人也许会说,学C的精华在于指针。学C的人会比Pascal强很多。没错,指针是学C的一个重点。但是就按我学C的课本来看,用到的指针只是很简单的。理解了*p和p有什么不同,就够了。然后会编个简单的几行代码,就自认为会C了。C库中有很多函数,教师在课堂上几乎没讲。比如memset,qsort等,少了这些。你学Pascal和C没什么不同,只是作为了学习其他语言的铺垫而已。而新生由于没有语言根基,有不少好学生由于教师在课堂上没讲,就以为学完教师所教的了。这正是好学生的弱点所在。如果是“坏”学生,不听课堂的。倒还可能发现课堂所学的C是多么肤浅。还有,我至今没见过有学校会教C的图形开发的。虽然图形开发不是语言基础。不过对于扩展新生的编程视野是一个不错的选择。现代程序软件支持图形窗口的太丰富了,几乎不会太多的学生去在意窗体的设置,定位等功能。图形编程还能激起学生的编程欲望。笔者曾经实现过C的动画演示,当里面的所有图形都按预期的运动起来的时候,那种兴奋感犹如你在冰天雪地的情况下忽然淋你一盘冰水所感到的那种感觉。C PK C++ C++是在C的基础上发展起来的。看起来似乎这两个pk,赢者肯定C++。其实未必。C至今还有生存的空间,而没有被C++全盘代替。说明了C还是具有不可替代的作用。C目前主要应用在于硬件底层的部分,以及对于性能要求较高的应用程序中。但是对于复杂的系统级的开发,显然C++显得从容自在。联系实际,不少人学C++的时候,就已经有C 的基础了。有C的基础,学C++的基本类型的时候可以快速渡过,然后学类,继承,多态等概念。还是从我的经历说起,我选了C++,然后几乎没怎上课,因为实在听了想睡觉,期末前用C++做了一个大作业后,就叫懂C++了哈,然后考试当然轻松过了。其实我那时还是没学到C++,本质点说,我只是还是在会点C的基础上。多了一个结构类型:类,而已。后来使用了1年的C++后,才恍然察觉到当年的无知。才明白C++是什么。我相信已经学过C++的同学估计现在连IO流的概念还没搞清楚的人很多。造成这种现象的原因在于:1. 学生本身没有认真去编程实现。2. 教师只是重复的讲课本而已。最终判定学生是否会C++的标准也只是考试为主。关于高校的考试制度在计算机系中的效用,笔者将在未来几天内出一篇个人观点文章。 &&&&Java PK C# 目前不少人对这两种语言议论纷纷。笔者在开始学C#的时候,曾经看过Java程序员对于C#的观点。把C#贬得一文不值。忽然发现,似乎很多Java的程序员对C#怀有天生的敌意。笔者目前自认为精通的是C#(别BS我)。以往学过Java,在此我写一下我所感触到的。虽然微软一直称C#是继承于C/C++,但是不论从代码结构,还是内置的支持类,都跟Java有惊人的相似之处。我感觉C#就是在Java之上,针对Java的优点和缺点来设计的。我用过C、C++、Java,感觉还是C#最好,这只是笔者的个人感受。由于C#还保留着指针,当要实现一下比较底层的,性能要求高的时候,解决办法之一是C#可以打开指针,而Java是做不到的,Java只能通过其他途径,比如优化算法来解决。Java在非windows下获得了很大的成功:某调查公司曾经使用Google搜索引擎来统计以下指标:熟练使用某种语言的工程师数量、某种语言课程教学的可用性、有多少公司在出售用某种语言编写的软件。最后综合得分情况是:Java以45.2分排名第一;第二名是C,得分是32.2;C++是以24.6分排名第三;C#远远落后在第九位,得分为4.6。这些数据是几年前的数据。在这次测试中还发现,C#的受欢迎程度正在急剧上升;而Java相对稳定。这其中一个原因是.net允许许多种编程语言,而不像Java那样,限制人们只能使用一种语言。开发者能够使用包括C、C++、C#甚至Java在内的几乎任何语言来编写代码,然后把这些代码翻译成机器看得懂的CLR代码(公共语言运行时代码)。这样.net可以让开发者保护自己的“代码投资”,换句话说,过去人们用C、C++编写的代码都能再次被利用。而Java只能重新写代码。 所有指导者(学校、培训机构、带你的人)在足够的时间内都希望新生能打下编程良好的基础。从Pascal的介绍来看,似乎从它开始是很适合的。但是笔者是从C起步的,没学过Pascal,对程序设计的习惯以及特点一点也不比学Pascal的人差。我觉得这不是语言的异同造成个人水平不同,在于拿了一门语言的书,新生是如何学编程的。不少新生可能会认为好好上课,听老师讲课,然后回来自己的电脑上把老师讲过的内容上机去试一遍,就ok了。估计连不少教师也是这样想的。笔者认为即使真有学生做得到,效果也是不好的。比如C语言把,我看过不少的C的教程的书,内容大同小异。前面几章,也就详细的讲了语言定义的基本类型。然后讲结构体什么的。C++则是讲类,继承等。这些东西,我感觉上课没什么好讲的,要讲最多也就半节课。如果有一定编程基础的人,这些东西学得更快。但是笔者的经历是这些课都上了满满一个学期,还有后面某些章节是来不及讲的。笔者不幸运,在上Java课的时候,没有上机课,前面的基本类型都上了半学期了,不少学生自己连SDK都没装,最终考试就笔试过关罢了。连这种本应动手的课程还是按照传统的考核方法:卷面考试来解决。能通过高考的学生,不管是真的有料还是假的有料,相信都已经是考试能人了,对于计算机系来说,笔者认为不能全按照传统的教学模式来套,这只是闭着眼睛瞎说话而已。程序是具有很强的唯一性的。你行就行,不行就是不行。卷面答得再好也只是吹。我相信不仅我学校,其他各大高校情况也不会差太多。这里顺便说几句感想:对于新生来说,应该自己能看清进入计算机系跟中学时候的环境不同。中学可以专门应试,不必学一些太实用的东西(除非不读下去了,准备出来工作的)。但是到了本科,如果你也只是应付教学,然后只是争取拿奖学金,最后你不考研或者考不上研,那可以说你在最后一年找工作的时候首先是自己心虚。虽然外面社会对本科要求不会太高,不必学生的技术像外面的技术牛人那么高。但这不代表学生能什么技能都不会。现在恐怕只有国企性质的企业很看重学生的成绩、拿奖学金情况等等。但是不能期望所有同学都能顺利去国企。 选择编程语言也是比较重要的一个环节,这就看新生个人的兴趣在哪。比如有人喜欢黑客,那么它可能就适合学C,以及各种脚本。有人只喜欢网络编程,那么也许他选择Java或C#就比较适合。如果有人想成为很好的windows编程,那么VC++、.Net编程也许是一个不错的选择。语言不在于多,而在于精。如果只学了一点就换语言,那不如不要学了,去打游戏,找人聊天更好。 数据结构:这是编程最基础的课了。可以说能否学好编程的一个原因在于你有没学好数据结构。注意,没学数据结构的,未必编不好程。如果学生只是每节课听老师讲结构。然后理解了就完的话,数据结构是不会学好的,别以为考了个9X分就高兴。说不定比考了60分的学得还差。依照笔者的经历。一个班里不少的人,估计一个学期上完了,连个链表如何用语言实现都不懂。对于数据结构,新生用什么语言来实现,这个无所谓。只要你会用某种语言,就行了。 学编程有一点是很重要的,就是学会看别人代码。从代码中看懂别人的意图。这样,可以快速学到各种技巧,提高自身的编程能力。不少新生可能会遇到一个比较普遍的问题,就是以前编过的东西会忘记,以后再要写同样的功能代码的时候,就忘了。我以前也经常碰到。我认为应该懂得把你写的代码保存起来或封装起来。以后要用的时候可以直接拿来用,不必重写。如果以后想到了更好的算法,那么再替换掉旧的代码。这里我建议学会创建链接接口,Windows下就是dll或lik,其他系统我没试过,不清楚,不过总会有相应的链接口文件的。这样,把代码测试完毕后,封装到dll中,就可以长久保存。需要用的时候可以调用。这样可以把大部分注意力集中在新的问题上,而不是纠缠于实现过的算法。学编程最主要的一点,还是要多编程。并且尝试去接触不同方面的问题,并试图去解决它。这样,就能在技术上有很大的提高。本科学校的教育教不出一个程序员的。程序员只有编程、再编程、然后还是编程,这样的历程才能锻炼出来的。 &&&&说到最后,我也没正面回答标题的提问。很遗憾,我也没法给你明确的回答,因为各有优势。我的观点是你根据你兴趣选一个你认为有发展的语言,然后闭关修炼去。甭管外面怎么说,学好了才是硬道理。以后不用担心你转不成其他语言。对于学生来说,我建议C/C++作为入门的基础。重点可以放在C++中,学好面向对象的思想。从编程中体会到为什么要用面向对象,而不是单纯的背书。计算机系的课不应该去背的,不懂的就查资料就行了。当学生有了一定编程能力后,就可以选择你以后作为主要的语言。即可以继续研究C++,也可以选择Java或.net中的任何一门语言。如果不浪费太多时间,大学时间内足够造就一个技术根基很好的计算机系学生。

我要回帖

更多关于 学文科好还是理科好 的文章

 

随机推荐