封面
莫道君行早,更有早行人。全心敲代码,天道自酬勤。每个学编程的人必定都会敲过“Hello World”,本期文章会系统的比较下编程语言,建议先学哪种语言。JSer可以提前欢呼吧~~
大多数人的编程之路是深夜里通过Google或者百度搜索的 。像是“学XXX” or “Learn XXXX”。或者就是迫于学校安排的编程学习,国内大学把C作为基础课,国外把python作为基础课,各有利弊,UA君不做评论。
但大家如何和决定搜索哪个语言呢
“硅谷总是招Java工程师,那我应该学它”
或
“Haskell如此流行,我该学Haskell”
“Go 的Go gopher如此可爱” 一定是个妹子
那剩下的大部分我们,大概这么搜索:
“编程语言应该先学什么”
大部分的答案会导流到一个全面的答案,比如其中之一的图:
其实,你决定的第一种编程语言可以会是一个有趣的过程 - 有点像一个“哪个昆汀塔伦蒂诺角色是你?”的人格测验。无耻混蛋里的美国中尉?
但在你开始学习Ruby之前,或者其他语言之前,让我提醒你:这里的赌注很高。他将会需要你花数百个小时的联系,熟练使用你的第一种编程语言。我的第一个语言是C++,里面的痛苦自己清楚~~
所以,你需要考虑到下面的一些因素
招聘市场上的语言需求
对语言的长期预期
这门语言掌握的难易程度(Learning curve)
你想要做什么项目(和朋友分享,可以保证你的动力)
在讨论前,我们来看看下面的网络漫画
2016的流行
当谈到选择第一种编程语言时,没有选项。 为了缩小范围,下面是过去12年中与学习编程相关的最常见的Google搜索:
java作为最流行的语言,也有起伏。Python已经逐渐上升成为最受欢迎的选择。
但隐藏下面有个语言在慢慢地发展,在过去几年慢慢流行。这就是JavaScript。
在我谈论这些编程语言之前,让我澄清一下:
我不是在争论任何一种语言客观上比任何其他更好
我同意开发人员最终应该学习多种语言
我认为首先他们应该学习一门语言。 而且 - 你可能猜到从我的标题上下颠倒的文字 - 这种语言应该是JavaScript。
让我们通过探索当前在学校教授编程方式来解决问题。
大学的传统教编程的计算机科学的保护伞下,它常被看作是数学的一个延伸。国内的CS课总会要很有逼格的去学工科数据分析或者数学分析。
当然,正如你现在听到的:
“计算机科学教育不能让任何人成为专家程序员,只是学习画笔和颜料可以使某人成为画家。” - Eric S. Raymond
学术 vs 工作
截至2016年,许多大学仍然把编程,如计算机科学,和计算机科学就像它的数学。因此,许多介绍性编程课程侧重于低层次的抽象语言,如C,或数学关注的语言,如MATLAB。
年度编程语言的排行榜,如来自IEEE的TIOBE索引:
这些排行榜中的大多数看起来几乎与10年前一样。但变化确实发生, 即使在学术界。
在2014年,Python超越了Java作为最流行的教学语言在美国顶尖计算机科学计划。
而另一个变化势必...最终...发生。
因为如果你看看在工作中实际使用的语言,它绘制了一个非常不同的图片:
超过一半的开发人员使用JavaScript。 它对前端Web开发至关重要,并且对后端开发越来越重要。 它正在迅速扩展到游戏开发和物联网等领域。
工作的需求也提到了Javascript的需求正在高速扩大。
虽然我是前端工程师,但我不主张JavaScript,因为我个人比较喜欢前端工作,也靠前端完成了澳洲的一年工作经验跳到Senior职位~
但是JavaScript适合你吗? 它是否值得成为你的第一个编程语言? 让我们来探讨我之前提到的那些因素。
因素#1:就业市场
如果你正在学习纯粹出于智力的好奇心,你可以跳过这个因素。 但如果你 - 像绝大多数人学习编程 - 想使用这种技能来找到工作,这是一个重要的考虑。
正如我前面提到的,Java比任何其他编程语言在更多的工作发布中被提及。 JavaScript是第二个。
但是这里是关于JavaScript的事情:尽管它已经存在了20年,它只是最近成为一个严肃的工具,像Netflix,沃尔玛和PayPal公司将构建整个应用程序。
因此,很多公司都在招聘JavaScript开发人员,但在就业市场上没有那么多。
这个只是2016年的就业市场,就像是2014年的就业市场是需要Ruby On Rails的人特别多,反而两年后JS的需求猛增。如果你现在还是大一,那可能需要关注下我们的公众号,预测下你毕业的时候哪种语言最pupular。并不是学的人最多,而是需求最高而没人会的语言。也算是完成对自己的一次投资。澳洲特殊的就业市场,等我们后面的文章一一道来
有2.7个Java开发人员竞争每个开放的Java位置。 PHP和iOS工作的竞争同样激烈。
但是对于每个开放的JavaScript位置,只有0.6个JavaScript开发人员。 对于拥有JavaScript技能的开发人员来说,这是一个卖家市场。就比如说小编,现在是挑工作挑公司的阶段,而不是求工作的阶段。
【注意】我还是需要提醒的是,虽然现在Js属于卖方市场,但不能说一年后或者两年后依然是卖方市场,人力市场虽然不像商品市场调节的那么快,但是也总是会有一个周期
因素#2:长期前景
平均的JavaScript项目接收的请求数量是 平均Java,Python或Ruby项目的两倍。 除此之外,JavaScript的增长速度比任何其他流行语言都快。
JavaScript的生态系统也受益于来自Google,微软,Facebook和Netflix等公司的大量资金投资和工程人才。
例如,微软扶持的TypeScript(一个静态类型的JavaScript超集)有超过100个开源贡献者,其中许多是微软和Google员工。
Java很难找到这种类型的公司间合作。 Oracle - 通过收购Sun Microsystems有效拥有Java的经常是那些试图扩展它的公司。
因素#3:学习难易程度
大多数程序员都会同意,高层次的脚本语言是比较容易学习的。JavaScript就属于这一类,随着Python和Ruby。
尽管大学还教语言如jC作为第一语言,很多国内的新生因为学了C而对编程彻底失去了兴趣。
因素#4:你可以用它构建的项目
这是JavaScript真正闪耀的地方。 JavaScript可在任何具有浏览器的设备上运行,在浏览器中。 你可以用JavaScript构建任何东西,并在任何地方分享。
因为JavaScript的普遍存在,Stack Overflow的联合创始人Jeff Atwood创造了他现在着名的法律:
“任何可以用JavaScript编写的应用程序,最终都将用JavaScript编写。”
Java曾经承诺在任何地方都运行。 你可能还记得Java Applet。 甲骨文今年早些时候正式杀害他们。
Python也有同样的问题:
“我怎么能给我这个游戏给我的朋友? 更好的是,有一种方式,我可以把这个在我的手机,所以我可以显示给孩子在学校,没有他们不必安装它? Um。“ - James Hague在退休的Python作为教学语言
学习一门语言。 然后学习第二个。如果你继续从语言跳到语言,你不会远。为了超越基础,你需要学习你的第一语言。 然后你的第二种语言将会更容易,更容易。
从那里,你可以分支出来,通过学习许多语言成为一个更全面的开发人员:
C是一个了解计算机如何在内存管理方面工作的好方法,并且在高性能计算中非常有用
C ++是伟大的游戏开发。
Python是科学和统计的真棒。
如果你想在大型科技公司工作,Java是很重要的。
但是先学习JavaScript。
好的,现在我要尝试不可能 - 我将尝试和预期的反对意见从评论部分。
反对#1:但是JavaScript不慢?
对于大多数实际目的而言,JavaScript与高性能语言一样快。
JavaScript(Node.js)的速度比Python,Ruby和PHP快几个数量级。
它也几乎和C ++,Java和Go等高性能语言一样快。
以下是最全面的最近跨语言基准的结果:
异议#2:但JavaScript不是静态类型
像Python和Ruby一样,JavaScript是动态类型化的,这是很方便的。 但你会陷入麻烦。
这些类型的错误总是在动态类型语言中发生。 大多数开发人员只是把检查到位以防止它们,并相应地写测试。
如果你绝对必须在你的第一种编程语言静态打字,那么我仍然建议你先学习JavaScript。 然后可以快速选择TypeScript。
反对#3:但我真的想做一个移动应用程序
我仍然建议先学习JavaScript。
JavaScript提供了几个用于制作本地移动应用程序的工具,例如Angular Cordova和React Native。
为了让你的移动应用程序实际做任何有趣的事情,它可能需要一个适当的后端,你想要构建一个适当的Web开发框架,如Node.js + Express.js。
此外,值得指出的是,移动应用程序开发的最好的日子可能还没有到来。
对于初学者,就像人们使用移动应用程序一样,所有开发人员工作中有近一半是Web开发。 相比之下,只有8%的工作涉及移动应用程序开发。
当然 - 他们仍然使用的应用程序。 主要是Facebook,Google地图和少数其他人。 因此,对移动应用开发者的大部分需求集中在少数大型雇主。
这些移动开发工作的前景难以预测。 使用JavaScript可以更轻松地开发,维护和分发移动应用程序的许多方面。 因此,像Facebook和Google这样的公司正大量投资于使用JavaScript构建这些工具的更好的工具。
截至2016年,几乎所有的开发都是web开发。 一切都涉及到这个“网络”的大平台。下一波的设备,你会谈到你的家,以及汽车,从学校接你的孩子 - 他们都将使用网络连接在一起 。
反对#4:JavaScript是不是10天写的玩具语言?
JavaScript有一个古怪的历史。
你无疑会听到人们开玩笑。
人们也喜欢C ++上的恨。 和像JavaScript一样,C ++已经成功,尽管这种仇恨,现在它几乎无处不在。
因此,如果有人曾经给你一个艰难的时间来学习JavaScript而不是精英语言的一周,只要记住创建C ++的家伙的名言:
我们是谁
Universapp是一家面向全球提供解决方案与服务供应商,致力于通过创新的信息化技术来推动社会的发展与变革,为个人创造新的生活方式,为社会创造价值。Universapp拥有自主研发的系统,大数据和机器学习算法。 公司主营业务包括:行业解决方案、产品工程解决方案及相关软件产品、平台及服务等。包括IOS,Android,Web消费级平台级及企业级开发,对SEO也有相当长的经验。团队由行业顶级IT人才组成,只做情怀产品。
Universapp
微信:universapp
Bring stunning products to life
长按二维码关注
点击阅读原文,查看更多