2019年你应该学习哪一种编程语言?




点击上方"什么技术值得学",关注持续得到知识前端


640?wx_fmt=png


不管您是专业开发人员仍是初学者,对学习新的编程语言老是一个好主意。程序员


固然,并非每一个专业或有抱负的开发人员都必须绝对学习的单一语言。您选择学习的下一种语言取决于您当前的技能水平和您的总体职业抱负。web

不要担忧:我将在本文中分解您的选项,以帮助您肯定接下来要处理的编程语言。我会推荐三种语言(一种适合初学者,一种适用于中级开发人员,一种适用于专家),以及您可能更喜欢的几种选择,具体取决于您的喜爱。数据库

首先,让咱们看一下目前的趋势,看看哪些语言正在逐渐普及。编程


编程语言的趋势

下图显示了2018年与2017年相比最受欢迎的编程语言。后端

640?wx_fmt=png

尽管Java已有20多年的历史,但它仍然是最受欢迎的编程语言 - 尽管自2017年以来它已逐渐普及。长期以来,Java一直处于高需求状态,多是由于它能够在任何硬件或操做系统上运行。例如,全部Android应用程序都基于Java,大多数财富500强公司都将其用于后端开发。浏览器

普遍用于Web开发的Python在总体流行中迅速遇上Java。该语言普遍用于科学计算,数据挖掘和机器学习 - 这是需求增加的来源。安全

JavaScript仍然很是受欢迎,这并不奇怪,由于它被大多数开发人员和几乎全部具备动态逻辑的网站所使用。此外,像React和AngularJS这样的前端框架正在用于物联网和移动设备集成,所以咱们不太可能看到JavaScript很快就会从图表中删除。前端框架

C ++和C#,用于视频游戏开发和系统/应用软件(C#用于微软的.NET平台),在2018年有所降低,但仍然很强劲。PHP愈来愈受欢迎,做为添加HTML或CSS没法处理的Web功能的一种方式,以及它与MySQL数据库一块儿使用的方式。最后,Perl仍然是一种顶级语言,由于它在系统和网络管理员中做为链接不一样软件组件的“粘合语言”而受到欢迎。网络

一旦注意到上面的图表,顶级语言都是基础语言。这些语言(以下面进一步讨论的)对初学者来讲很是重要。但专家可能对学习高级语言更感兴趣。

基础与高级编程语言

最须要的语言有时被称为基础编程语言。它们从早期就被用于构建现代计算和网络的基础。

然而,也有许多许多利基语言与不断增加的开发者社区,如Haskell(用于AI和机器学习),Scala(Java的替代品),ML(一种功能语言),Scheme(用于AI和web-)基于编程),还有数百个。

这些高级语言不是初学者友好的。可是,若是您计划成为特定领域的专家,例如AI和机器学习,那么了解像Haskell这样的语言多是一项宝贵的技能。

一旦学习了一种或多种基础语言,您就应该可以学习任何新的或更高级的编程语言。请记住,学习一门新语言几乎毫不是一个坏主意,由于它会帮助你学会以不一样的方式思考问题。

考虑到这一点,下面是三种语言,这些语言是不一样技能水平(初级,中级和高级)开发人员必须学习的,还有一些替代方案。


640?wx_fmt=png

1.适合初学者的编码语言

JavaScript是您第一种编程语言的不错选择。如上所述,JavaScript几乎无处不在。您能够用它来开发各类应用程序。您可能天天使用的许多网站都依赖JavaScript,包括Gmail,Facebook,Twitter,Instagram和Spotify。

JavaScript用于Web应用程序的前端开发(使用AngularJS,Ember.js和React等框架)和后端开发(使用Node.js框架)。学习这些框架比单独学习JavaScript花费更多时间,但有助于提升您的就业能力(和薪水)。

也许最重要的是,JavaScript实际上内置在您的浏览器中,所以您无需安装任何内容便可开始编程。这使它难以置信。您颇有可能会发现基础知识易于学习,但不要担忧,由于有不少先进的概念可让您在很长一段时间内忙于学习。

若是您是初学者,而且想要成为一名专业开发人员,那么学习JavaScript是个好主意。话虽如此,任何基础语言也是一个不错的选择。理想状况下,您应该在整个职业生涯中学习多种基础语言。

#初学者的替代品

Python相对容易且有趣,只需不多的严格语法规则。事实上,它读起来像英语,因此即便是纯粹的初学者也能理解代码。Python用于构建Instagram,Youtube和Spotify,所以它多是您与顶级公司合做的门票。

像Python同样,Ruby也很容易让初学者学习。您没必要记住许多命令或语法规则来使用它。初创公司愈来愈多地使用Ruby的称为Ruby on Rails的全栈框架 - 它已被用于构建Airbnb,Groupon等网站。

2.中级程序员

一旦你掌握了一些编程经验,花点时间学习C(以及C#和C ++)是个好主意。

C比JavaScript更难学,但它是一项有价值的技能,由于大多数编程语言其实是用C实现的。这是由于C是一种“机器级”语言。所以,学习它将教你如何使用计算机,而且实际上未来更容易学习新语言。

学习用C编程就像在成为医生以前理解基本解剖学同样。若是您想成为专家级开发人员,您须要了解计算机和软件如何协同工做。学习C是一种启发性的体验,它将带来有益的反作用,教你如何更有效地编码。

C#普遍用于.NET平台上的企业开发,但它也是Unity 3D的主要语言,Unity 3D是独立和VR游戏的流行游戏引擎。C ++一般用于性能密集型桌面应用程序(包括游戏)。它也被微软,甲骨文和Adobe等公司用于建立许多大型系统。

#中级程序员的替代方案

Java是另外一个不错的选择,由于它能够在任何设备上编写并跨平台使用,使其成为一种使人难以置信的多功能语言(记住,它仍然是当今最须要的语言)。

它一般用于建立应用程序,所以若是您的目标是开发移动应用程序,那么必定要学习Java。


640?wx_fmt=png



3.高级程序员面临的新挑战

若是您已经掌握了Javascript,C#,C ++,Java和Python等基础编程语言,那么您已准备好应对新的挑战。在我看来,这个挑战应该是Rust

根据Stack Overflow调查,Rust在2018年被连续第三年评为开发人员最喜欢的编程语言。这是一种相对较新的语言,由Mozilla于2010年建立,而且不断改进。

Rust在性能和用途方面都是一种与C至关的编译语言。可是,与C不一样,Rust是内存安全的:在Rust编写的代码中找不到悬空指针,缓冲区溢出或其余类型的内存错误。在Rust中生成这种错误是不可能的,由于在编译期间捕获任何错误 - 在容许代码运行以前。

这个特性使Rust很难为初学者学习,但有经验的程序员会欣赏内在的性能改进。自建立以来,它一直在稳步增加,而且在接下来的几年中Rust将有很大的需求。根据Stack Overflow的数据,它是2017年第二高的付费编码技能,而且在2018年排名前六。

#高级程序员的替代方案

若是您已是一位经验丰富的Java程序员,那么您须要学习的下一种语言多是Scala(可扩展语言的缩写)。

Scala是改进Java的许多尝试之一,能够直接替代它 - 事实上,它被编译为在Java虚拟机上运行。这是一门须要学习的复杂语言,但最终仍是值得的:Scala在Stack Overflow的2017年和2018年调查中被评为最高薪技术。

与Rust同样,Scala在过去5年中一直在稳步增加。LinkedIn和Twitter等大公司已在其代码库中使用Scala。

结论

最终,您决定接下来学习的编程语言应该下降到您当前的技能水平和您的职业兴趣/愿望。

初学者应该从易于学习的语言(如JavaScript,Python或Ruby)开始,以便开始构建应用程序。

拥有更多经验的程序员能够聪明地掌握基础和多功能语言,如C或Java,以更好地理解计算机和软件的交互方式。这也将教你如何更有效地编码。

最后,高级程序员可能但愿学习Rust或Scala等语言,以改进基础语言(如C和Java)。这两种高级语言已经在经验丰富的开发人员中很是受欢迎,而且随着时间的推移可能会变得更加剧要,而且公司决定构建更新,更高效的应用程序。

2019年你会学习什么语言呢?


一个会思考的胖子

640?wx_fmt=jpeg