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



无论您是专业开发人员还是初学者,对学习新的编程语言总是一个好主意。


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

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

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


编程语言的趋势

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

尽管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这样的语言可能是一项宝贵的技能。

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

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


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。




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年你会学习什么语言呢?


一个会思考的胖子