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