为什么我不推荐JavsScript为首选编程语言

澳门新葡亰网站注册 7

对于软件职业生涯,JavsScript不应该是首选

几天前,我写了一篇《what programming language you should learn first for
a career in
programming》的文章,引来了很多的争论(Google+ 上有很多没有读文章就提交的)。

我的推荐语言队列中的主要因素是我不认为JavaScript是竞争者。我之前没有详细说明这一点,但是许多人很快就提出:A)JavaScript是明智的选择;B)我的疏忽导致。这篇文章我会详细写一下,对于那些想把软件开发做为职业生涯的人,我通常不会推荐首选JavaScript。然后,我再接受你们的评价。

很多人都说,编程是一种情怀,它能让广大ITer达成自己的“小目标”。编程是技术革新的核心,当今的编程语言有能力让开发者的潜力不再受束缚,可以轻松构建创想的未来。如果你是一名具有前瞻性的开发者或者想成为一名具有前瞻能力的开发者,那么,是时候开始学习编程了,至少在最好的编程语言中选择一个,类似
Python、Swift、JavaScript、C#、C、Ruby、PHP、Haskell、Java、C++ 或者
Rust。

这不是好的起点

JavaScript狂热分子经常提到,它上手最快,马上就可以开始编程生涯。他们还提到了只用notepad就能开始编程,不需要一个编译器,还吹捧可被语言(或任意web浏览器)支持的全局对象。最后,他们还会讨论语言本身简单的特点使得初学者进步很快。所有这些观点我100%同意。

假如你想成为一名赛车手,XYZ团队正在寻找一名新车手。搞到一辆自行车去参加自行车比赛,要比弄到一辆赛车跟着赛道上的车轮容易得多。自行车成本低,学习曲线非常平滑,你很快就能成为熟手。假如你参加了5年的自行车比赛,并且比较擅长了。现在你去应聘XYZ团队的赛车手岗位,他们会雇佣赛车经验少的人,而不是只有自行车比赛经验的你,因为起点越好,他们在赛车上成长得也就越快。

如果我想雇佣一名软件开发者,当应聘者说他了解JavaScript,有5年的JavaScript开发经验,这对本次面试将不是一个好的开端。这种应聘者缺乏开发一整套软件解决方案所需要的基础,他们的成长时间将比有2-3年C,C++,Java,C#,Python,Ruby,PHP经验的开发者长很多。

如果我要雇佣一名web开发者,JavaScript的家伙将更有吸引力。你也应该仅仅加入一个自行车比赛团队。

注意到我是在讨论软件开发、软件工程,端到端系统编程,不只是web开发,这是非常重要的【这里有人会引用Node.js来反驳】。是的,Node.js,我知道。但是一个有经验的软件专家知道一些语言,而不必深入某一种语言的每个细节。你用铁锤最终可以砍断一棵树,但是使用电锯是明智的。

澳门新葡亰网站注册 1

JavaScript的面向对象编程是糟糕的例子

我承认JavaScript可以被认为是一种面向对象语言,只是我不认为这是好的例子。特别是你第一次接触的时候,你在JavaScript里的面向对象编程方式和其他语言相差太多。这本身不是坏事,我只是认为你第一次最好学习更通用的OOP方式,便于将来更加容易地学习一些基于C(或其他语言)的语言。

我认为理解类和继承也是重要的【有人会说到CoffeeScript,是的,我知道】。然后当你开始用JavaScript开发的时候,你会、你一定会看到JavaScript的构造器、基于原型的继承是如何被算作OOP的。我也碰巧想到强类型变量对于软件开发比较重要。

一、怎样选择该学习哪一种编程语言

结论:每个人“知道”JavaScript

考虑到那些主张JavaScript做为第一门首选编程语言的最初言论,虽然是对的,它们也是业余“coder”大军的看法。在这一点上,JavaScript是最好的首选语言。如果你想简单涉足编程行列,如果你想鼓捣wordpress博客,或把编程做为业余爱好,我完全推荐JavaScript。这不是说JavaScript容易掌握,真正掌握JavaScript的人没有多少,那些掌握的人具有从其他语言得来经验的、很深的编程背景;但是有很多人认为他们是一个开发者,因为他们已经开始用JavaScript写东西了。你不想成为这样的人的。

如果你想把软件开发做为职业生涯,那么有很多路可走。有很多好的语言适合起步,结论或许在大学得到了印证(据我了解,还没有计算机科学系以JavaScript做为首选语言)。综上所述,我反对那些想成为专业程序员的人把JavaScript做为首选语言。

在这篇文章中,我们将会介绍排名前10的编程语言的功能性、易学程度、当前的需求/使用以及在预期的将来的需求。需求更多,就意味着更值钱。很多语言,像C、Java、Python和JavaScript在几十年来一直持续支配着他们的各自的领域。另一方面,也要看到近期流行的需求语言,像Swift、GoogleGo和Rust。

怎样选择学习哪一种编程语言,其答案取决于学习之后用它来做什么。许多人的选择标准仅仅是“学习一门语言最大的需求就是能找到一份高收入的工作”。但这个标准并非人人都适用,还有很多其它的方面要考虑。例如,在大学里使用Python这门语言给学生讲授编程,其主要原因在于Python功能强大,学生们能够很容易地掌握编程概念。对于初学编程的人来说,使用Python是一个不错的选择;对于想从事移动程序开发的人来说,学习Swift、C#、Java和JavaScript是很好的选择;对于web开发来说,在CSS、HTML、JavaScript这样的前端技术支持下,使用PHP、Java、Python和RubyonRails是第一选择。

澳门新葡亰网站注册 2

如果要完成像访问关系数据库这样的更加具体化的任务,可以学习SQL编程语言。SQL语言并非是用来开发应用程序的,而是用来支持应用程序和数据库之间的连接。更何况,很多数据驱动应用都在广泛地使用SQL,如今,对SQL的需求已经超越了对许多工作表的需求。

如果你对硬件编程感兴趣,想要开发嵌入式系统、操作系统、通信设备或者复杂的游戏引擎等,那么选择的语言依然是C/C++(主要是C)。

二、最佳10门编程语言的具体优势

我们一起来看看如今有哪些最流行的编程语言,以及它们的功能、学习曲线、应用领域、目前的需求和发展方向。

1.JavaScript——多用途编程语言

时至今日,对JavaScript的需求依然巨大,招聘网站上充斥着有关JavaScript及其相关技术的招聘信息。JavaScript由BrendanEich设计,运行在Netscape浏览器中。那时,他或许做梦也没有想到JavaScript会有如此超乎寻常的发展。

JavaScript是WWW的默认语言,并且几乎每个web浏览器都支持JavaScript,它已经成为了web前端开发的世界标准。随着Node.js的发展,JavaScript的应用领域又扩展到了服务器端开发,如今和java、.Net、PHP、RubyonRails以及其它的服务器端技术展开了竞争。

澳门新葡亰网站注册 3

JavaScript除了应用于前端和服务器端开发外,它也快速地发展成为移动应用开发的选择。开发者可以使用许多流行的JavaScript框架来构建混合移动应用程序,比如ionic、kendoUI和Senchatouch等。

后来,随着Reactnative框架的兴起(由Facebook提出),JavaScript又出现在了Android和iOS原生应用开发领域。

JavaScript无处不在!然而,JavaScript本身不会让你拥有最高薪酬的开发工作,你还需要学习基于JavaScript的技术、框架和库(比如Node.js、React、ReactNative、ionic、jQuery、D3.js和KendoUI等等)。相关技术的选择完全取决于你要从事的工作。

说到学习JavaScript,它是一种动态编程语言,并且非常容易入门。熟悉了JavaScript基础知识之后,你就可以很容易地学习相关的技术,比如jQuery、Node.js、Angular或React。

2.Python——最好的编程语言

Python是另一种编程语言,目前世界各地的开发者正在使用它进行快速应用程序开发。Python是一种模块化的、易于学习的、面向对象以及注重可读性的高级语言。

澳门新葡亰网站注册 4

Python广泛地应用于教育领域、web与internet开发、科学与数值计算以及大数据、机器学习算法开发。

Python的深度和广度使得它成为教育和研究领域的首选语言,世界各地的学生正使用Python来学习编程和构建研究项目。如今很多进行计算机编程的学生把Python作为他们学习的第一门语言。

Python已经广泛地用于web和internet开发,并且有许多流行的框架,比如Django、Pyramid、Flask和Bottle。DjangoCMS和Plone是两种广泛使用的基于Python的内容管理系统,许多流行网站和web应用程序都在使用它们。

最近,由于对大数据分析和机器学习算法的需求急速增长,对Python的需求也在快速增长。用Python编写的许多开源库能够实现数据科学广泛使用的一些核心的机器学习算法。R是统计与数据科学领域广泛使用的另一种语言,但是学习曲线比较陡峭。

库方面,一些流行的Python库例如用于数学、工程和科学领域的scipy、用于库建模和数据分析领域的“pandas”,以及其它一些有用的库,比如iPython、kivy、pyqt和pyside。

澳门新葡亰网站注册 5

3.Java——大众化的编程语言

Java是大众化的编程语言,它也是一种永葆青春的语言,多年来一直是各个招聘板块的宠儿。Java于1990年由SunMicrosystems公司发布,后来被Oracle公司收购,Java的哲学理念是“编写一次,到处运行”。

Java广泛地应用于web开发、企业软件开发和Androidapp开发。随着对运行在Android平台上的移动app的需求不断增长,对java的应用也达到一个新高度,这也是为什么全球范围内对java的需求依然第一的原因。

Java是高级的面向对象的编程语言,学习起来比C++更容易,但是程序的性能要比C或C++差一些。因此,一般不用java构建核心引擎、操作系统或嵌入式系统开发。

澳门新葡亰网站注册,4.SQL——结构化查询语言

SQL结构化查询语言是一种能被数据库理解的语言。SQL是由IBM工程师于1970年开发的,用来创建、更新和检索“SystemR”这个数据库管理系统中的数据。从那时起,SQL已经走过了很长的路,时至今日,它仍然是市场最需要的一种技能。

澳门新葡亰网站注册 6

近年来,使用非SQL数据库来处理大数据的这种需求给SQL蒙上了阴影,但持续的时间不会太长。不久人们就会认识到SQL提供的大数据分析方法更好,它是一种更具有扩展性、可验证性和经得起时间检验的技术。

SQL语言用以辅助进行数据驱动网站、web应用程序、桌面应用程序以及移动应用程序的开发。SQL在任何应用领域都有应用。从学习的角度看,SQL比较容易掌握,并且由于有很高的市场需求,你可以仅仅通过SQL就能找到第一份工作。

然而,要找到一份高薪酬工作,还需要拥有设计、管理和维护多种数据库,比如Oracle、MySQL、PostgreSQL、IBMDB2和MicrosoftSQLServer等的经验。

5.C#——排名第一的微软技术

C#是最通用的语言之一,它使得编程像Java语言一样简单。C#是类型安全的、面向对象的编程语言,运行在.NET框架运行时环境中。C#代码被编译成符合CLI规范的IL语言(中间语言)。

C#语言正迅速成为构建微软家族各种应用的首选,你可以用来构建客户端—服务器应用程序、数据库应用程序、web服务、移动应用程序、游戏等等。

澳门新葡亰网站注册 7

C#在游戏开发中也有很好的应用(高级的但并非是硬核心),顶级游戏引擎Unity3D就把C#作为支持的语言之一,除此外只有JavaScript语言被支持。C#还是许多交叉平台应用程序构建工具(如Xamarin)所采用的编码语言。你可以使用Xamarin产品套件构建交叉平台移动应用程序。