前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >还在纠结该从哪门编程语言学起?先来聊聊JavaScript

还在纠结该从哪门编程语言学起?先来聊聊JavaScript

作者头像
大数据文摘
发布于 2018-05-25 07:47:43
发布于 2018-05-25 07:47:43
1.1K0
举报
文章被收录于专栏:大数据文摘大数据文摘

大数据文摘作品,转载要求见文末

编译 | Aileen,yawei,彭晗,蒋宝尚,钱天培

大多数人学习编程的旅程都是从深夜的一次度娘搜索开始的。

比如很多情况下会是搜索:“学习__(某种编程语言)”

但是他们是如何决定他们想要学习的语言种类的呢?

有些人这么想,“在硅谷,他们老用Java打趣。或许我也该去学学。”

或者是:

“Haskell现在这么火热,就Haskell吧。”

还有一些人是这样:

“给GO 代言的那只地鼠萌萌哒,学Go吧。”

Go的代言地鼠

至于剩下的那群人,可能会搜索以下内容:

“我应该先学习哪一门编程语言?”

这问题被问得太多了,现在可都有专门的图表供查询答案了。

图表:“我该先学哪门编程语言?”答案自测

决定你所学的第一门编程语言可能是一个有趣的过程----就像是玩“你是金庸小说里的哪个角色?”

但如果你只是因为小时候喜欢玩泥巴,所以就去学Ruby的话,我可得提醒你,这可不是个小决定。(注:Ruby因其功能简单但应用灵活而常被比作橡皮泥)

你将会花数百个小时来学习你的第一门编程语言(而且这也只是入门所需罢了),所以你需要慎重考虑以下几点:

  • 这门语言的就业市场
  • 这门语言的长远发展前景
  • 学习这门语言的难易程度
  • 你可以用这门语言开发什么项目(而且和你的朋友们分享,以便你能保持足够的学习动力)

每一年都会有新的编程语言涌现而出,随之而来的是关于这些新语言的学术论文,以及网络漫画。

一点也不夸张,就来看看这幅上个月新出的漫画吧,画的还不错的:

图表:这幅漫画通过描述一个王子救公主的故事调侃了每种编程语言的特点

当谈到第一门编程语言该学什么的时候,这选项可多了去了。将范围缩小一点,这里是过去12年,与学习编程相关的最常见的谷歌搜索结果:

图表:一些学习编程语言相关的谷歌搜索的频率变化趋势

Java的搜索频率时高时低。

Python逐渐成为最受欢迎的选择。

但是藏在这些下面的一个小不点儿,在过去的几年慢慢地在积累人气。它就是JavaScript。(作者把JavaScript比作欧美儿童绘本the Little Engine That Could中努力向上的小火车。)

在我谈论这些编程语言以前,让我先澄清一下:

  • 客观来说我不认为任何一种语言会优于其他语言
  • 我赞成程序员应该学会多门编程语言
  • 我认为首先他们应该学好一种语言。而且——你能从我标题猜到——这种语言应该是JavaScript。

让我们先从学校如何教编程谈起。

计算机科学入门

图表:学生所写程序质量与学习时间的关系

按照惯例,编程教学通常被归在计算机科学的范畴下 。而计算机科学则通常被看作是数学的延伸或者是与和电子工程学位的密不可分联系。

当然,你现在可能也听过:

“计算机科学教育不能让任何人成为编程专家,这就好比光学习画笔和颜料不能让人成为画家一样。”

——Eric S. Raymond

截止到2016年,很多大学仍然认为编程就是计算机科学的一部分,而计算机科学就是数学的一部分。

因此,很多入门性的编程课程侧重于低层次的抽象语言,比如C,或者是侧重于数学运算的语言,如MATLAB。

而计算机学院的老大们也依然持之以恒地根据年度编程语言排行榜来选择他们的教学语言, 比如TIOBE Index,或者是这张IEEE的:

图表:各种编程语言受欢迎程度排行榜

大多数排行榜看起来几乎和十年前几乎一模一样。

但即使在学术界,不同编程语言的地位也已发生了翻天覆地的变化。

在2014年,Python取代了Java成为在美国顶尖计算机科学项目里最为流行的教学语言。

图表:美国顶尖计算机科学项目所用教学语言排行

而另一个变化也必将会发生。

因为如果你看看工业界实际使用的语言,情况则大不相同:

图表:在Stack Overflow2016年的程序员调查中,JavaScript成为最受欢迎的编程语言

超过半数的程序员使用JavaScript。JavaScript对web的前端开发尤为重要,并且对于相应的后端开发也越来越重要。而且,它正迅速地扩展到游戏开发物联网领域。

招聘启事中提及JavaScript的次数也多于除了Java外的其他语言:

图表:招聘启事中每个编程语言被提及的频率

我们开设我们开源社区的JavaScript课程也并非偶然。在过去的两年中,超过5000人通过Free Code Camp得到他们第一份程序员工作。

我提倡JavaScript并不是因为我在教它。我教授JavaScript是因为这是获得第一份程序员工作最可靠的途径。

但是JavaScript适合你么?它是否值得成为你的第一个编程语言?让我们再来探讨我之前提到的那些因素吧。

因素一:就业市场

如果你学习编程纯粹是出于求知的好奇心,那么你可以跳过这个因素。但是如果你像大多数学习编程的人一样,想要用这项技能去找工作,这会是一份十分重要的考量。

正如我前面提到的,在招聘启事中,Java是被提及最多的编程语言。JavaScript则紧随其后位列第二。

但是JavaScript的情况是这样的:尽管它存在了将近20年,也只是最近才成为一个正式的编程工具。现今像Netflix,Walmart和PayPal这样的公司已经在用JavaScript编写他们所有的应用程序了。

因此,大量的公司正在招聘JavaScript开发人员,但是在就业市场上并没有这么多会JavaScript的程序员。

图表:不同编程语言对应岗位数量与程序员数量之比

每一个Java岗位平均有2.7个Java开发者竞争。PHP和iOS的竞争也是同等激烈。

但是对于每一个JavaScript岗位,平均只有0.6个JavaScript开发者来竞争。对于具备JavaScript的开发者来说他们十分抢手。

因素二:长远发展前景

平均每个JavaScript项目的Pull requests是每个Java,Python或者是Ruby项目的两倍。除此之外,JavaScript的增长速度比其他流行语言都快。(译者注:Github的使用者在对项目作出修改后需要通过pull requests来让其他合作人审核。)

图表:Github每种编程语言所编写项目的pull requests总量

JavaScript良好的发展环境还受益于来自Google,Microsoft, Facebook, and Netflix等公司大量的投资资金和天赋异禀的工程人才。

例如,TypeScript(一个静态类型的JavaScript的超集)有超过100个开源贡献者,他们中很多都是微软和谷歌的员工,并拿着工资的 。

对于Java来说,这种类型的公司间的合作就很少有了。甲骨文(通过对Sun Microsystems的兼并获得了Java业务)经常对那些试图扩展它的公司提出起诉。(译者注;甲骨文公司,全称甲骨文股份有限公司,是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩)

因素三:学习难易程度

图表:这是一幅模仿XKCD的漫画,描绘了学习各个编程语言的难易程度。

(译者注;XKCD被其作者兰道尔·门罗定义为一部“关于浪漫、讽刺、数学和语言的网络漫画”,被网友誉为深度宅向网络漫画。)

大多数程序员都同意高级脚本语言相对容易学习。 JavaScript以及Python和Ruby都属于这个类别。

尽管在大学, 学生学到的第一门编程语言仍然是像Java和C ++这样的语言,但这几门语言可难学多了 。

因素四:你可以用它构建哪些项目

这是JavaScript真正牛逼的地方。 JavaScript可以在任何具有浏览器的设备上运行(设备的浏览器是运行JavaScript的平台)。 你可以使用JavaScript构建任何东西,并在任何地方分享它。

因为JavaScript的广泛应用,Stack Overflow的联合创始人阿特伍德提出了著名的阿特伍德定律:

“任何可以用JavaScript来写的应用,最终都将用JavaScript来写。”

每过一个月,阿特伍德定律的地位就更加稳固。

Java曾经承诺:它在任何地方都能运行。 你可能还记得Java Applet。 甲骨文在今年早些时候正式宣布了放弃Java Applet。

Python也遇到了同样的问题:“我怎么把我编写的游戏分享给我的朋友? 更好的是,有没有一种方式,能让我将这种游戏安装在我的手机上,以至于我可以在学校通过手机向孩子们展示,而孩子们没有必要安装它。“ – 在放弃用Python作为教学语言后, James Hague如是说。

与之成对比的是,我们开源社区的成员在Codepen的浏览器中编写了一些app。您可以点击并直接在浏览器中使用这些app:

http://s.codepen.io/adambeagle/debug/qOamaz

http://s.codepen.io/safx/debug/Ewcym

http://s.codepen.io/duttakapil/debug/BKGjOa

http://s.codepen.io/Megabyteceer/debug/qbXJMQ

先学好一门编程语言,然后再学习第二门语言。

如果你不停地从一种语言跳到另一种语言,你最终将什么都学不好。想要摆脱菜鸟阶段,你就需要熟练掌握你的第一门语言,然后你学习第二门语言的时候就会变得很轻松。

再之后,你可以扩大你的知识范围,并通过学习大量的语言成为一个更全面的开发人员

• 学习C语言能帮助你了解计算机内存管理方式,而且C语言在高性能计算中非常有用

• C ++非常适合游戏开发。

• Python适合用于理科和统计学 。

• 如果你想在大型科技公司工作,Java是很重要的。

但是,你还是要先学习JavaScript!

好的,现在我要来挑战不可能了!

——我将会回答一些来自评论区或是我预计大家会有的反对意见。

反对一:JavaScript难道不是运行地很慢吗?

从实用角度讲,JavaScript与高性能语言一样快。

它也几乎和C ++,Java和Go等高性能语言一样快。

以下是新出炉的最全面编程语言速度比对的结果:

图表:各编程语言速度比对结果

反对二:但JavaScript不是静态类型的

像Python和Ruby一样,JavaScript是动态类型化的,这是很方便, 但你也很容易碰上麻烦。 这里我想让exampleArray成为一个数组。 我给它赋值,然后检查它的长度 – 也就是它包含的元素的数量。

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

但是,之后我不小心将它设置成了一个字符串。

exampleArray = “text” -> “text” exampleArray.length -> 4

这些类型的错误总是在动态类型语言中发生。大多数程序员会及时检查防止这些错误,并为可能的错误写相应的测试。

如果你在学第一门编程语言的时候就想使用静态类型,那么我仍然建议你先学习JavaScript。 然后你就可以快速地掌握TypeScript。

“Typescript学起来是不简单的,但如果你已经会用JavaScript了,那就容易多了。” – AlexEwerlöf就学习TypeScript如是说

反对3:但我真的想做一个手机app

我仍然建议先学习JavaScript。

  1. JavaScript提供了一些用于专门制作手机app的工具,例如Angular CordovaReact Native
  2. 为了编出真正有趣的app,你可能需要用到一个适当的后端,而这就需要用到一个适合的Web开发框架,如Node.js + Express.js。

此外,值得指出的是,手机app开发的黄金时期已经到头了。

首先,虽然人们用着手机app,但所有开发人员工作中有近一半是Web开发。 相比之下,手机app开发的工作只有少的可怜的8% 。

图表:2016年Stack Overflow调查中,49,525名程序员所从事的职业方向。

做什么事都有会一个应用程序来帮你”的宏伟愿景一直没有实现。事与愿违,现在大多数智能手机用户已停止下载新app了。

当然 - 他们仍然使用app。 但这些app主要是Facebook,Google地图和其他少数几个。 因此,对手机app开发者的大部分需求集中在少数大型雇主身上。

这些移动开发工作的前景难以预测。 而使用JavaScript可以更轻松地开发,维护以及推广手机app 。 因此,像Facebook和Google这样的公司正大量投资使用JavaScript开发app的更好的工具。

截至2016年,几乎所有的开发都是web开发。 一切都涉及到web这个大平台。在下一轮科技浪潮中即将出现的家用装备,以及从学校接你孩子回家的新型汽车,都将被网络连接在一起 。

这意味着我们需要JavaScript。

反对#4:JavaScript不是10天就被写好的小玩意儿吗?

JavaScript有一个离奇的历史。

你无疑会听到人们开JavaScript的玩笑,说这门语言来的太廉价了。(译者注:JavaScript是在10天内被开发出来的。)

好吧。很多人都喜欢找C ++的茬。 像JavaScript一样,即使被人讨厌,C ++也已经成功了,而且 它的应用几乎无处不在。

所以,如果有人曾经责难你怎么学了JavaScript而不是某一门本周精选编程语言,只要记住创建C ++那家伙的名言:

“世界上只有两类编程语言:人们抱怨的和压根没人用的。”

—— Bjarne Stroustrup

2014年,Python成为在美国顶尖计算机科学项目里最为流行的教学语言。

原文连接: https://medium.freecodecamp.com/what-programming-language-should-i-learn-first-%CA%87d%C4%B1%C9%B9%C9%94s%C9%90%CA%8C%C9%90%C9%BE-%C9%B9%C7%9D%CA%8Dsu%C9%90-19a33b0a467d#.2342dsmbo

关于转载如需转载,请在开篇显著位置注明作者和出处(转自:大数据文摘 | bigdatadigest),并在文章结尾放置大数据文摘醒目二维码。无原创标识文章请按照转载要求编辑,可直接转载,转载后请将转载链接发送给我们;有原创标识文章,请发送【文章名称-待授权公众号名称及ID】给我们申请白名单授权。未经许可的转载以及改编者,我们将依法追究其法律责任。联系邮箱:zz@bigdatadigest.cn。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
你适合学哪门编程语言?测试一下就知道!
作者 CDA 编辑团队 本文为原作者原创作品,转载需授权 前言 如果你想开始学编程,面对众多的编程语言那么问题来了,初学者应该如何选择最适合自己学习的语言呢?本文通过比较不同编程语言的薪酬、热门程度和发展前景等角度,对想学编程的小白们提一些建议。 想测试自己适合哪种语言,快速精准定位自己究竟有哪种语言天赋?不妨点【链接】,测试一下就知道! 大多数人学习编程的计划开始于某一天的深夜谷歌搜索。 “我应该先学习哪种编程语言?” 不同的语言也各有特点,比如以下这篇漫画: 决定你的第一个编程语言是一个有趣
CDA数据分析师
2018/02/26
1.7K0
你适合学哪门编程语言?测试一下就知道!
编程语言之父
C创始人,Dennis Ritchie ,丹尼斯•里奇被世人尊称为“无形之王的C语言之父”,是计算机及网络技术的奠定者,曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。是为乔布斯等一众IT巨擘提供肩膀的巨人。2011年10月与乔布斯相继离世,却远未像乔布斯那样得到全球的追捧和悼念。 C++创始人,Bjarne Stroustrup,1979年,B. S开始开发一种语言,当时称为“C with Classes”(带类的C),后来演化为C++。1998年,ANSI/ISO
企鹅号小编
2018/01/10
1.6K0
编程语言之父
史上最明了的编程语言琅琊榜介绍:JavaScript是剪刀?
小时候经常看局座的节目,得知局座掌握中、英、日、阿拉伯等多门语言 时羡慕不已,当时就许下一个心愿「我一定要成为掌握多门语言的男人」。今天,我的梦想终于实现了,我成为了一个程序员,也成为了掌握了多门 (
前朝楚水
2018/04/03
9110
史上最明了的编程语言琅琊榜介绍:JavaScript是剪刀?
编程语言简史:有人不喜欢花括号,于是他发明了 Python
编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)
养码场
2019/05/15
1.1K0
编程语言简史:有人不喜欢花括号,于是他发明了 Python
编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。 1800年 Joseph Marie Jacquard教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。 1842年 Ada Lovelace(英国诗人拜伦之女)对随后被认定是发布的第一个计算机程序的笔记本高贵和潦草感到厌烦,因为稍微有点不便的是当时还没有计算机呢。 1936年 阿兰·图
企鹅号小编
2018/02/02
1.3K0
编程语言简史:有人不喜欢花括号,于是他发明了 Python
适合初学者入门的5种编程语言
如果你想学习编程,虽然选择第一门编程语言与你想用它来做什么最终达到什么目的有很大的关系。但是事实上某些编程语言的确比其他语言要好学。选择一门合适的编程语言作为入门的语言对于培养自己编程的兴趣会有很大的
程序员互动联盟
2018/03/13
6.2K0
适合初学者入门的5种编程语言
学生的第一门编程语言应该是什么?
对此,Guzdial 则在文中指出,当这个领域还处于比较早期的阶段的时候,这种想法或许是正确的。但那是在 20 世纪 60 年代末,课程刚刚建立的时候;而今天,所有不同年龄段和经验水平的学生都在学习如何编程,且他们最终都有着不同的需求。
Java帮帮
2021/07/29
1K0
史上最明了的“编程语言琅琊榜”
小时候对掌握中、英、日、阿拉伯等多门语言的人羡慕不已,当时就许下一个心愿「我一定要成为掌握多门语言的男人」。今天,我的梦想终于实现了,我成为了一个程序员,也成为了掌握了多门(编程)语言的男人-_-!
CSDN技术头条
2018/02/08
1.7K0
史上最明了的“编程语言琅琊榜”
编程语言50年来的变化,我用50种编程语言告诉你“Hello world”怎么写!
当我们学习一门新的语言时,“Hello, World!“通常是我们所写的第一个程序。 因此,所有程序员在职业生涯中至少完成了“Hello, World!“程序员在职业生涯中通常使用一种以上的编程语言,他们中的大多数甚至至少已经实现了十几种。
风骨散人Chiam
2021/09/06
9840
盘点 | 史上最明了的“编程语言琅琊榜”介绍
导读:小时候对掌握中、英、日、阿拉伯等多门语言的人羡慕不已,当时就许下一个心愿「我一定要成为掌握多门语言的男人」。今天,我的梦想终于实现了,我成为了一个程序员,也成为了掌握了多门 (编程)语言的男人-
灯塔大数据
2018/04/04
1.5K0
盘点 | 史上最明了的“编程语言琅琊榜”介绍
人类语言遇上编程语言
自然语言(人类语言)与编程语言之间有着很多惊人的相似之处。前些天我做了一个关于这两种语言相似性的讨论,惊讶地发现自己很容易就找到了它们之间的许多共同点。 然而实际上,两种语言之间具有如此多的相同之处也尚在情理之中,这两种形式的语言都是非常基础层面上的语言,它们本质上是为同一个目的服务的——那就是沟通。尤其是用来沟通思想和表达方式,有时也可以用来传达指令。 编程语言之间的相似之处比人们乍看上去的还要多得多。这意味着如果你很了解某一门编程语言,学习其他编程语言(至少同类型的编程语言)就变得十分容易。最开始的两种
程序员互动联盟
2018/03/13
12K0
堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?
本文主要介绍了2017年编程语言的发展状况以及未来趋势。作者通过分析各大编程语言排行榜,总结出目前最受欢迎的编程语言,并分析了各种语言的特点和应用场景。此外,还对量子编程语言和Python的未来趋势进行了介绍和分析。
企鹅号小编
2018/01/04
1.4K0
堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?
2020 年最牛逼的 10 门编程语言
对于很多初学编程的人来说,尤其是马上要入学的大一新生来说,选择哪门子编程语言实在是个痛苦的事。选择对了,毕业后顺利找到工作,完美走向职场;选择错了,毕业后受伤的才华无处安放,大学算是虚度光阴了。
沉默王二
2020/08/21
1.8K0
2020 年最牛逼的 10 门编程语言
从 12 岁开始,他用 25 年时间掌握了 30 门编程语言……
【导读】身为程序员的你,掌握一门编程语言需要多久?踏入编程世界后,你又学过了多少种编程语言?本文作者从 12 岁接触编码,之后 25 年间共掌握了 30 门编程语言。看看他是如何做到的,以及有什么建议可以给到更多程序员。
用户9861443
2023/11/27
3700
从 12 岁开始,他用 25 年时间掌握了 30 门编程语言……
编程语言的重生
编程语言可以用来编写计算机应用程序,和其它人类语言或文化一样备受潮流影响。所以,某种语言“陨落”并非无人问津,只是不再“热门”了。一般来讲,一门语言出现超过25年热度便会下降! 一、古老语言的向死而生
张哥编程
2024/12/13
2420
如何选择第一门编程语言?
译者:“互联网+”时代,不懂点计算机、不会点编程是不行的。但是编程语言数目众多,近几年还诞生了Rust、Ceylon等新生语言,到底该如何选择?
鲜枣课堂
2019/07/22
1.3K0
如何选择第一门编程语言?
怎样学习一门编程语言
1、选择一门语言 2、确定你感兴趣的领域 你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加“易学”),你得去问自己自己想用通过学习这门语言完成什么样的工作。这将会帮助你确定你应该追求的编程
程序员互动联盟
2018/03/13
1.5K0
怎样学习一门编程语言
学习 27 门编程语言的长处,提升你的 Python 代码水平
Python猫注:Python 语言诞生 30 年了,如今的发展势头可谓如火如荼,这很大程度上得益于其易学易用的优秀设计,而不可否认的是,Python 从其它语言中偷师了不少。本文作者是一名资深的核心开发者,他广博的视野和精准的认识,让我对 Python 的设计了解得更为全面,同时,他“利用自豪感而非恐惧感”的说法,传达出来的是“专注于自我的进步,不嫉妒他人的成功”的原则,对我也很有帮助。原文写于 2015 年,躺在我的收藏夹里很久很久了,如今顺利翻译掉,这是一件能提升自豪感的有意义的事。最后祝大家开卷有益,读有所获。
Python猫
2021/12/13
7190
如果编程语言是一门武功绝学
武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。
C语言与CPP编程
2020/10/16
6920
2017年薪酬最高的15门编程语言 GO夺冠
作者 | Peter Kim 翻译 | Diwei 你从事的工作是基于哪一门编程语言?你的薪酬是多少?在所有编程语言中排名多少呢?作者在本文列举出了2017年薪酬最高的15门编程语言,看看你的语言排名多少吧! 科技一直在经济领域和社会领域占据着主导地位,数百万人因此寻找到了自己的第一份职业,有的人甚至跨领域重新进行学习,就是为了从事计算机科学、编程和其他与技术相关的工作。尽管如此,企业还是在寻找高技能的程序员,有的企业为了找到合适的员工还会提高薪酬。由于科技还会继续扩展到新的平台和行业,因此为了将赚钱潜
CSDN技术头条
2018/02/08
1K0
2017年薪酬最高的15门编程语言 GO夺冠
推荐阅读
相关推荐
你适合学哪门编程语言?测试一下就知道!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档