当前位置: 代码迷 >> .NET新技术 >> 请好手看完这段话:给出评价
  详细解决方案

请好手看完这段话:给出评价

热度:498   发布时间:2016-04-25 01:24:33.0
请高手看完这段话:给出评价!
众所周知,万事开头难。对于想学习软件开发的人来讲,之前对软件开发肯定有了一些了解,但您在决定学习之前,必然会遇到一个问题:那就是学习什么语言?您看到身边的朋友或同学,有的学.NET,有的学java,有的学PHP,有的学C、C++等等,而往往初学者对这些开发语言又不能很好的区别,究竟自己应该选择什么开发语言呢?我想这个问题肯定会让好多初学者感到迷惑,下面我就给大家分享一下我的工作体会和对初学者朋友的一些建议,希望能给您提供一些帮助。
开发语言的专业方向比较强,应该正确划分不同开发语言所属的专业方向。现在对于大多数的学习者而言,开发语言基本可以划分两个方向:

第一、 硬件底层开发语言。
这类语言一般是汇编语言、C语言、C++等,当然C++相 对于前两种开发语言更加高级,并且应用范围更加广泛。比如,我们的计算机操作系统开发,我们所用的家电设备的控制、手机的底层软件、汽车的行车电脑,以及各类电子电器设备的运行等等,都需要这些底层软件支持,一般我们把从事这方面的工作的开发称之为“嵌入式开发”,因为这些程序一般都固化在硬件设备里面, 一旦开发完毕,不会经常修改,当然,也会适当升级。学习这些主流的底层开发语言一般都有比较好的硬件基础,因为这个开发语言往往和硬件关系非常大,它的开发好多情况是直接依赖于硬件设备的,所以,如果您不是这方面的专业人才,我不建议您学习,原因:学习成本高,难度大,即使入门了,想深入的话,也非常困难。这些语言一般都是大学里面的专业基础课,好多人都略知一二,但做开发的确很少。但是,这方面的人才却很重要,因为它的学习成本高,经验非常重要,适合边工作边学习。
第二、业务应用层开发语言。
这类开发语言主流的有.NET、Java、PHP等。 之所以把这些语言称之为“业务应用层”开发语言,是因为这些语言开发的软件一般都是直接和我们使用者打交道的,是为了提高我们的工作效率或实现某种信息交互(比如电子商务网站等类型的应用)而开发的。这些开发语言也是现在大多数软件开发者在工作中使用的,需求潜力巨大,学习成本低,是我们大多数从业者需要学习的。那么如何正确的区分这三类语言,并选择一个适合自己的开发语言来学习呢?

1. 首先说java语言。因为这个语言出现的比较早,企业使用的也很多,现在的应用范围也是非常广泛的。Java语言在web开发领域具有很强的竞争力,这种竞争力源于本身语言的强大性。目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,Java ME)、适用于桌面系统的Java2平台标准版(Java2 Platform Standard Edition,Java SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,Java EE)。从上面三个版本相信大家能看出java语言在桌面系统开发、web开发、移动设备开发等都被广泛使用,但web和移动设备开发更是java的强项,java语言之所以被广泛应用还有另外一个重要特点就是开源性,这样全世界的开发者都可以为java语言奉献自己的力量,使得java框架的类型非常繁多,并且更新速度快。由于java是开源框架,所以企业在使用的时候成本几乎可以忽略不计。最后一点,java语言还具备很好的跨平台性,也就是不管是在windows平台还是linux、unix等主流平台,java程序都会很轻松的部署和维护,这一点尤其受企业的青睐。java语言还有好多优点,这里我们就不多说了,当然任何语言也会有自己的不足,java语言应用非常广泛,但学习成本比较高,因为是开源框架,需要开发者时刻关注版本的变化,开发者在轻松享受别人贡献的同时,也带来程序调试的困难。
2.下面我们简单说一说PHP。现在好多企业网站也都是用PHP做的,如果您看到浏览器地址栏里面最后结尾处有.php,那么该网站一定有php网页。那么PHP有哪些优点和不足呢?下面我们看一下:PHP和java语言以及.NET平台开发语言不同,它是将程序嵌入到HTML文档中去执行,而java和.NET平台的开发语言现在都是前台和后台分开设计和编写,PHP现在的黄金搭档是LAMP,也就是linux平台+Apache服务器+MySQL数据库+PHP语言,如果用户使用这种组合形式开发出的网站,除了人工成本以外,几乎可以不支付其他额外产品费用,同时,由于PHP的跨平台性和java一样方便,同样也深受企业的喜爱,这几年PHP也非常流行,在全国知名的淘宝网平台上面,就有很多PHP网页,当然淘宝网的设计绝不是一种开发语言能够完成的。PHP的语法也非常简洁,学习起来也比较容易,但PHP除了web应用外,在其他领域几乎看不到它的身影,所以PHP语言的使用领域比较单一,同时,因为PHP程序编写的时候前台和后台代码是混编在一起的,而java和.NET平台在设计的时候是极力避免这种情况的,毕竟混编在一起会使得程序的修改和维护带来一定麻烦。

3.最后我们谈谈.NET。.NET(英语读作dot net)我们习惯于读作“点儿”NET,其实这是不正确的读法,但是大家都习惯了也无所谓,在正式场合还是希望大家按照英语的标准读音使用,我们看看.NET是怎么回事。
首先,我们要分清几个概念:.NET、C#、VB、VC++等,虽然这些是大家经常说的,但对于初学者而言却经常弄不清楚。.NET和java一样,它是一个平台的概念,但.NET和java又很不一样,原因是java平台里面就一种java语言,而.NET则提供了若干种语言,C#是伴随着.NET平台出现而量身定做的平台语言,在.NET平台之前是没有的,说到这里大家就应该明白了,.NET是程序开发和运行的平台,在这个平台基础之上开发者可以选择自己喜欢的开发语言,比如C#、VB.NET、VC++.NET等,C#语言继承了C、C++和java语言的优点,重新整合设计,所以C#语言非常容易学,其语法结构和java及C++非常相似,尤其是java,因为都是完全的面向对象语言,两者语言特性几乎都能吻合在一起。而VB.NET和VC++是在以前非.NET平台的时候就有了,而且当时VB的程序员是一统天下,当微软推出.NET平台的时候,肯定会把VB的程序员和VC++的程序员吸引过来,所以.NET平台下的VB.NET和VC++.NET,是平台的移植,这样在.NET平台下的C#、VB.NET、VC++.NET三种主流语言并驾齐驱,您可以任意选择,同时,这三种语言的开发者,在开发同一个项目的时候,可以完全根据需要选择语言类型,不同语言开发的模块,可以直接使用,而不像其他语言那样,如果一个模块使用了其他语言编写,要想集成到自己的项目中会变得非常麻烦,而微软的.NET平台对多语言编程简直就是一个彻底的颠覆!这也是.NET平台大一个重要特点之一:跨语言,而java和PHP是跨平台,.NET也可以实现跨平台,但是在linux和unix平台上部署的时候相对麻烦,这也是它的一个小小不足,但是毕竟微软的windows平台在全世界是占有率最高的,所以主流的平台依然是windows,这一点是不可否认的。
谈到这里,大家也许要问了,每个语言都有自己的优缺点,那我究竟该选择哪一个呢?我就把我的工作经验和大家交流一下,我个人建议初学者学习.NET平台的C#语言。原因如下:
(1).NET平台现在的版本是2.0、3.5、4.0,从2.0开始就是一个非常成熟的平台,后面都是完全继承前面的,这个请大家放心。微软在世界的地位是人人皆知的,有这么强大的公司做支持,大家完全可以不用担心产品的使用问题。
(2)C#语言语法简洁、完全的面向对象特性,当然最关键的是和.NET平台同时推出的VisualStudio开发工具,现在发展到了2010版 本,这个开发工具的出现令世界震惊,因为程序的编写、编译、调试、发布于一体,而且最关键的是这个开发工具的调试能力是如此强大,当您编写的程序语句有语 法或其他错的时候,编译会直接给你指向错误的语句,并且告诉您这是怎么错误,并适当给出解决方法,这一点对于初学者而言是相当关键的,初学者在学习的时候 最害怕的就是出现错误不知道从哪里修改,而VS这个开发工具的使用让初学者完全不必担心错误解决问题,就这一点是其他任何开发语言的开发工具都无法比拟的,就凭这一点初学者您有什么不能完全接受C#呢?
(3)强大的类库、MSDN帮助文档和唾手可得的各种控件无疑给开发者又增加了很多乐趣,当然这种乐趣是基于开发的高效率而言的,尤其是开发桌面应用程序,强大的控件,可以让开发者节省约70%的代码量,就这一点其他开发语言更是无法相比的,试问,不管你是初学者还是有经验的高手,难道你在开发中和效率过不去吗?如果C#能用一天的时间搞定,你非得选择其他语言用一周去搞定吗?当然也有好多人说.NET就是拖放控件,我也遇到过,但凡跟我说这样话的人都被我扁的一文不值,我不想说别的,只想告诉大家,说这些话的人是因为他们根本就没真正做过.NET开发,或者根本就不了解.NET。

(4)考虑到初学者入门语言问题,我建议大家学.NET,不是说其他语言不好,我是想告诉大家,开发语言之间没有好坏之分,主流语言都是非常棒的,而我们今天要谈的是对“初学者”而言,记住是“初学者”,因为您还不懂开发语言,而C#的特点是非常适合初学者的,您可以学习很短的一段时间就能做项目,而java语言你要学习很多框架,框架的使用对于初学者而言还是有难度的,并且程序的调试有时候真的就足以让初学者头疼的连吃药都不管事,当然我这个说法有点夸张。而php呢,虽说非常强大,但应用领域单一,而且代码混编,看不出您的个人真实水平,因为我们要学习开发语言之外的“面向对象思想”,PHP做为面向对象语言,却无法很好给初学者体现出这一点。而当您学完C#以后,等到工作了,想学java了,那会变得非常轻松,因为“面向对象”思想都是一样的,您只需要熟悉一下语法的区别、类库的区别和框架的使用就可以了,如果您学C#用了一年搞定,那么再学java两个月就可以搞定了。而PHP呢,我只想告诉大家,如果您真的在工作用到了,必须得学的时候,再看看吧。
最后,用一句话概括一下,开发语言没有优劣,初学者选择入门语言却非常重要,学习.NET平台下的C#语言,您将会在学习的过程中其乐无穷!(当然,如果您是一个挑战性非常强的人,不妨学习Java语言)

大家觉得这里说的客观吗?
------解决思路----------------------
我基本上不评价什么“语言”问题。

如果你给小学生教弹钢琴,甚至让他在10岁就考个什么“十级”之类的,那么他或许将来就会把弹钢琴当作相关道路上(例如搞作曲或者别的)作为一个很有用的工具,用于收集更多的第一手信息。但是弹钢琴的目的是为了弹钢琴吗?这种匠气绝对做不了什么事情。

我们学习软件的时候,编程语言课程不足5分之一,甚至少于10分之一。就算是学习c或者汇编语言,也是在学习计算机系统结构原理、设备驱动或者操作系统实验课的同时学习的。而高级的结构化语言则是往往是伴随之操作系统课程、经济统计和计算科学等等课程学习的。而面向对象的语言则往往是伴随之软件工程、信息系统等等课程学习的。而关于编译技术、数据库技术(不是指使用数据,而是指自己研发数据库)、人工智能技术等等则是独立的基础课程。

所有这些在工作中都几乎很少有现学现卖拿来用的,都是打基础。就是软件工程可以直接拿来用,可惜软件工程课程往往是落后了时代20年的老内容,但是正是那些经典才能让人更好地脱离什么“编程语言课程”的俗气的习惯、而去进行软件研发、跟上时代的潮流。

不要纠结于编程语言。多说说你用它作到了什么深度吧。
------解决思路----------------------
或许有一种风气,就是整天以“最近把自己‘卖’了多少钱,明年打算把自己‘转卖’去哪里”为学习和工作所追逐的目标。

但是实际上学习,最好的方式就是你确实想干点自己觉得“正”的事情,不管你(只能呆)在一个垃圾的地方从而挣不挣到钱,你就算是买不起钢琴、只能买得起一把破吉他,也不会把你的问题推卸在工具或者编程语言身上,你不会去永远都做一个羡慕别人、整天都是“我同学他们公司怎么怎么样了”的人。
------解决思路----------------------
太长了,反正找个有前景的语言吧,各种活都要有人干
------解决思路----------------------
引用:
说实话,用什么语言来衡量你工资高低的,你的层次是很低的,也就是3000块钱和4000块钱的区别,并且随着市场的波动,低端码农的饱和,这个随时都会变。

这就好比只有三流网络写手才会考虑是写色情小说赚钱还是奇幻小说赚钱。没有一个作家会考虑这种问题。


这个比喻我喜欢。

------解决思路----------------------
作者说的初学者,哪个更适合入门。其实,我觉得,C才是最适合入门的,当C入门之后再入门C#,C#比起C,对于初学者,感觉不到OO的存在。他只会用OO的语言写出C的风格,但是C#的winform,速度见到效果,你已经连续两三个月对着黑框框,绚丽的界面会迅速亮瞎你的双眼,你会被激起莫名的兴趣,你会不停得往下面走。
当然C#的学习曲线并非总是那么简单,当你过了半年,过了那个拖控件的小菜鸟之后,你的学习曲线会陡升,你发现眼前是EF、WCF、WPF等等关键字,你看到的是linq、lamda各种绚丽,你又想看IL,这个时候又有人告诉你设计模式的存在,你又想理解面向对象,于是,你抓狂了,当然也别紧张,你学啥都要经历这个阶段。VC++是一开始就告诉你有个东西叫MFC,然后给你讲原理,经过两个星期,你发现你连一个丑陋的UI都搞不定,你会气馁。JAVA刚熟悉了语法,你就面对那乱七八糟的库,然后你也想喷人,就连我说的最适合入门的C,当你入门了,熟悉了语言,你发现你要做嵌入的时候,你需要了解芯片,西门子、施耐德、三棱等等,甚至要理解一些模电的东西,你也会抓狂。总之,学语言都有你抓狂迷茫的时候,不过个人建议C入门编程,C#入门OO。C++作为进阶,让你了解OO的背后实现,了解内存模型等等。JAVA和PHP看工作需要,需要就学,不需要就不学。至于文中说的某些优点,其实是不存在的,永远不要以为开源意味着成本低,很多时候恰恰相反
------解决思路----------------------
不做评价!俺一直在用.net
------解决思路----------------------
“硬件底层开发语言”这就什么玩意儿呢?谁跟你说c++编程是什么“硬件底层开发”?
------解决思路----------------------
引用:
说实话,用什么语言来衡量你工资高低的,你的层次是很低的,也就是3000块钱和4000块钱的区别,并且随着市场的波动,低端码农的饱和,这个随时都会变。

这就好比只有三流网络写手才会考虑是写色情小说赚钱还是奇幻小说赚钱。没有一个作家会考虑这种问题。


不同意...你这是有大量工作经验的结果...

可是,对于刚毕业的人来说..3000和4000的区别还是很大的...

就像你对高考报志愿的学生说,你考虑到底是报法律系还是历史系层次太低一样....

开始学的人总是希望学出来的工资是高的
  相关解决方案