- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学什么编程语言比较好?
?(2008-01-19 12:10:01)
转载▼
杂谈 ?
我应该学什么语言?这句话被问的很多,但是通常是不会得到答案的。每种语言都有一个相对固定的崇拜者群体,每次在论坛上有人比较一种语言的好坏,就会引发一场持久的战争。之所以发生这种情况,正是因为各种编译语言之间的力量是均衡的,没有哪一种语言是完美的,能够“终结”其它的所有语言。即使像Linux下的几种脚本语言那些看似长的很像的语言,也没有谁被谁完全替代,大家和平共处了许多年,并且在各自的位置发挥着自己的长处。
这里就我所了解的几种语言和自己学习的经历给新人一点建议,如果你有特殊的需求,比如工程或者数学,那可能需要一些特殊的语言来解决,比如Lisp或者Ada,这在该领域内基本上是无可替代的,那你也没有什么好迷惘的了。如果你只是一个刚刚准备进入编程这一行的学生,或者是一个想业余时间搞点自己的小东西的业余开发者,却不知道哪种语言比较适合自己,就接着往下看吧。
首先是C语言。几乎所有的书和计算机专业都把C语言称为语言中基础的基础,在大学里基本上都属于必修课程,而且,现在还是我们国家计算机等级考试和程序员水平与资格考试的标准语言。C语言之所以有这样的地位,是因为它最接近底层,最接近汇编语言和机器语言,最接近机器的思维方式,其它更高级的语言,最终也要按照它的那些基本逻辑来处理问题。所以,学好C语言可以更方便的以机器的模式思考问题。
另外,C语言所涉及到的程序的顺序结构循环结构和分支结构,还有整数字符串数组等变量,这些都是万物之源,所有的编程语言都离不了。而且C语言有着严格的格式规范,不符合规范的写法或者错误的类型定义,都会引起编译错误,还有像if(a=1)这种常见错误,都可以让人在使用C语言的过程中养成良好的编程风格和代码规范。这些习惯在以后使用其它更宽松的语言的时候,会大大提高你的代码质量。
还有,因为C最接近底层,其代码效率只有手工优化的汇编可以匹敌,在许多脚本语言里面(比如Python)可以把一些大运算量的关键代码用C来完成,从而获得更高的执行效率。
综上所述,如果你真的想学好编程语言,C是一定要好好学的。但是新手学C语言通常会出现一个问题,就是除了写个排序算法,似乎根本想不出来C语言有什么用。这是因为我们的教科书讲C语言的时候,只讲这些基本算法,甚至连读写文件都不去讲,更不用说图形界面处理了和网络操作了,没有这些知识,想写一个真正的应用那是不可能的。不过,书上没有不等于学不了,文件操作和网络操作的讲解网络上有着大把的讲解,(现在Windows下用这个人比较少了,但是讲解Linux下C语言编程的书还是相当多的。)只要你随便找几篇文章看看,具备了这些基础知识,写一个自己的WEB服务器并不难。在逐步增加功能完善功能的同时,你的C语言基本上就可以达到相当牛人的水平了。
从0开始学习C的成本是比较高的,如果没有明师(或者一本好书)的指点,某些概念想开窍也有些困难。但是你一旦突破了C语言这个障碍,再学习其它的语言,学习的曲线将会大为平坦。
除了C语言以外的其它流行的高级语言,不管是编译语言还是脚本语言,基本上都是面向对象的语言了,所以你要搞清楚面向对象的概念。真正适合理解面向对象的语言,以前是SmallTalk,它是完全面向对象的,但是这个语言在中国很少见,书也很难买,现在,你可以学Ruby。(Ruby的作者是日本人,因此在许多论坛上提到它的时候会被许多愤青跳出来乱骂,这种做法是极其愚蠢的),近年新出来的Linux发生版里面都自带了Ruby支持,这已经充分说明了它在Linux管理方面的地位。而Ruby On Rails这个名字,更成了Web2.0快速开发的代名词。该语言借鉴了其它许多语言的特点,并且写出了自己的特点。在Ruby里,所有的东西都是对象,包括一个数字,你可以调用-1.abs这样的方法。一切都是对象,才能让你真正的理解面向对象。
一旦你掌握了Ruby的思想和面向对象的设计方法,那么使用Ruby on rails来开发一个网站将变得极其轻松,因为该框架已经包装了WEB开发中用到的前后台的功能,所有的数据库读写都通过你的对象自身来完成,前台HTML的生成有着完整的模板系统,只要把美工给你的HTML代码里面的内容换成你的变量就OK了。
如果你拥有了C语言的根本,和面向对象的思维方式,那么,如果因为工作需要,要去学习Java或者C#,那都是相当简单的事情。至于Perl和Python,本身跟Ruby的语法就比较接近(Perl要复杂一些,稍后再说)。但是目前你所学习的C语言和Ruby,都不适合用来开发Windows桌面程序,如果有这个需求,目前最简单的语言应该就是C#或者VB.Net了。通过简单的拖放控件就可以摆出相当专业的软件界面,而程序本身要实现的功能也无
文档评论(0)