4

2019编程语言评测:真只有Python最适合你?

 2 years ago
source link: https://oicebot.github.io/2019/01/24/choose-your-next-program.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

发表日期:2019-01-24

2019编程语言评测:真只有Python最适合你?

—— 在计算机技术日益普及的今天,不学一两门编程语言,出门都不好意思跟人打招呼(大误)。不论你是从事计算机专业的老鸟,还是慕名而来的萌新,学习一门新的编程语言总...

作者:Constantin


challenge.webp

在计算机技术日益普及的今天,不学一两门编程语言,出门都不好意思跟人打招呼(大误)。不论你是从事计算机专业的老鸟,还是慕名而来的萌新,学习一门新的编程语言总是十分有益的。

当然,并没有哪个编程语言就一定是“专业开发人员必学语言”,你该选什么语言很大程度上取决于你现有的知识水平,以及你未来的职业发展规划。

别担心,今天就带你好好捋一捋当下的形势,帮你选到最适合的编程语言。下面推荐三种编程语言(一种给新手,一种给有经验的程序员,还有一种给专家级程序员),以及几种你可能会喜欢的备选方案,让你自己挑一挑。

首先,让我们了解一下近年来几种主要编程语言的发展趋势。

. . .

编程语言的发展趋势

下面这张表显示了几种主要编程语言在2017~2018年间就业情况的变化:

643434234d234234dsf230.webp
(数据来源:Indeed.com,可视化制图:Coding Dojo)

尽管 Java 已经有 20 多年的历史,它依旧是就业需求最高的编程语言——虽然自 2017 年来,它的需求量有所下跌。长期以来,Java 一直是最受企业追捧的计算机语言,这可能是因为它强大的可移植性,可以在各种硬件和系统上运行。举个栗子,所有的安卓应用程序都基于 Java,而大部分《财富》500 强企业都用 Java 进行后端开发。

Python 因其在 web 开发等方面的应用,近年来已经快速赶超了许多其他语言。如今, Python 在科学计算、数据挖掘和机器学习等热门领域都有着广泛的应用,这也解释了它快速增长的原因。

JavaScript 排行第三。作为大多数开发人员和几乎所有具有动态逻辑的网站不可或缺的组成部分,JavaScript 依然非常热门。同时,类似 React 和 AngularJS 这样的 JavaScript 前端框架也被广泛用在物联网(IoT)和移动设备集成领域,所以我们可以预见,在不远的将来,JavaScript 还会榜上有名。

C++和C#这两种语言比较类似,它们都是游戏开发、操作系统/应用软件方面的强力选手( C# 主要用于微软的 .NET 平台)。它们在 2018 年有所下降,但仍然很强劲。

PHP 越来越受欢迎,它能为网页添加普通 HTML 或 CSS 无法处理的 Web 功能,还能方便地操作 MySQL 数据库。许多从业人员都开玩笑说“ PHP 是最好的语言” 。

最后,Perl 还依旧宝刀未老,因为它能作为连接不同软件、模块的“胶水语言”而受到许多系统和网络管理员的欢迎。

需要注意的一点是,上面这些最受欢迎的语言都是基础编程语言。学好一门基础语言,对于初学者来说是非常重要的,但有经验的程序员可能会需要学习一些更加“高级”的特定类型的编程语言。

. . .

基础语言 vs 专业语言

上面这些最热门的计算机编程语言常被人称为基础编程语言。它们诞生于计算机技术刚开始普及的时候,许多如今被视为基础设施的计算机应用程序和网络架构,都是由这些语言构成的。

然而,随着科技的发展和程序员社区的兴起,许多针对性强,专业程度高的语言逐渐活跃在各种新技术领域中。比如用于 AI 和机器学习领域的 Haskell,用于代替 Java 的 Scala,函数式语言 ML,用于人工智能和网页编程的 Scheme 等数百种“专业语言”。

这些专业语言的学习曲线和先修技能对新手并不太友好。然而,如果你打算成为某个特定领域的专家,它们就将是你的无价之宝。比如在 AI 与机器学习方面,懂得 Haskell 将会给你带来相当大的优势。

当你掌握了一种或多种基础语言之后,你应该就有余力能学习一些更新、更专业的编程语言。只要记住,学习一种新的语言几乎总是会给你带来一些新的好处,即使你用不上它,在学习的过程中,它也能帮助你从不同的角度来思考问题,对你的个人能力也是一种提高。

看完了上面这两点分析,下面就给大家推荐三种不同阶段程序员“必学必会”的语言(初学者,有点经验,高级专家),以及几种额外的备选语言。

. . .

我是初学者,我该选什么语言?

JavsScript

JavaScript 是初学者首次学习编程语言的不错选择。就像上面提到过的,JavaScript 几乎无处不在,你可以用它来开发各种不同的应用程序。你每天使用的许多网站都依赖 JavaScript,包括 Gmail、Facebook 等许多网站在内。

JS 可以用在 Web 应用程序的前端开发(使用 AngularJS,Ember.js 和 React 等框架)和后端开发上(使用 Node.js 框架)。学习这些框架可能比单独学习 JavaScript 本身花费更多时间,但有助于提高你的就业能力(和工资水平)。

JavaScript 有一个可能是最方便的特性,那就是它实际上已经内置在你的电脑浏览器中了,因此你无需安装任何内容即可开始试着编程,这也使得它非常容易上手。

你可能会发现,它的基础知识学起来很简单,但千万别小看它,因为它有很多高级的概念,需要你花上很多时间才能慢慢掌握。

如果你是初学者,希望以后成为一名专业的程序员,那么学习 JavaScript 会是个好主意。不过话又说回来,任何一种基础语言也都会是一个不错的选择。在理想情况下,在整个职业生涯中,你肯定会学习多种不同的基础语言。

初学者的其他选择:

  • python

    一个不错的选择是 Python 语言。它相对容易,也更有趣,只有不多的几条严格语法规则。事实上,它读起来就像普通的英语,所以即使是纯粹的初学者也能理解代码。Python 被许多大公司采用,构建类似 Instagram、YouTube 和 Spotify 的网站,因此它也有可能是你拿到顶级 IT 企业职位的敲门砖。

  • 像 Python 一样, Ruby 也很容易让初学者上手。在使用它的时候,你不必记住许多命令或语法规则。如今许多初创公司越来越多地使用 Ruby 的一个全栈框架—— Ruby on Rails,它也被用于构建了 Airbnb、Groupon 等网站。

. . .

我有一点编程经验,我该选什么语言?

当你有了一定的编程经验之后,你可以花点时间尝试学习 C语言,(包括 C# 或者 C++)。

和 JavaScript 比起来,C 的难度明显更大,但它很值得一学,因为许多其他的编程语言实际上是用 C 来实现的,比如 Python 最常用的解释器就是 Cpython。这是因为 C 语言是一种更加“机器层面”的语言。所以,学习 C 语言的过程,你将会理解更多计算机是如何运行的知识,让你今后学习其他语言的时候更容易理解。

在成为专业程序员之前,先学习用 C 语言编程,就像在成为医生之前,得先理解基本解剖学一样。如果你想成为一名真正的专家,你就必须了解计算机系统和软件是如何协同工作的。学习 C 语言是一种富有启发性的体验,它将带来许多有益的附加作用,让你懂得如何编写出更有效率的代码。

C# 被广泛用于 .NET 平台上的企业级应用开发,它同时也是 Unity 3D 的主要语言,而 Unity 3D 非常流行的独立游戏、VR游戏开发引擎。另一方面,C++ 通常被用于性能密集型桌面应用程序(包括游戏)中。它也被微软,甲骨文和 Adobe 等公司用于构建许多大型软件系统。

熟练程序员的其他选择

Java 是另一个不错的选择,因为它能很容易地跨平台编程,跨平台运行,是非常不错的通用编程语言(而且,它也还是目前最热门的编程语言之一)。

Java 很常用于编写app,所以如果你希望开发移动设备app,那你一定要学一学 Java。

. . .

给专业程序员的新挑战

如果你已经掌握了 Javascript、C#、C++、Java 和 Python 等基础编程语言,那么你已经准备好迎接新的挑战了。从某种意义上说,这个挑战应该是 Rust

根据 Stack Overflow 的调查结果显示,截至 2018 年,Rust 已经连续三年被程序员评为最受欢迎的编程语言。这是一种相对较新的语言,由 Mozilla 于 2010 年创建,并且不断改进。

Rust 在性能和用途方面都是一种与 C 相当的编译型语言。但与 C 不同,Rust 是内存安全的:用 Rust 编写的代码中不会有空指针、缓冲区溢出或其他类型的内存错误。在 Rust 中搞出这种错误是不可能的,因为任何错误都会在在编译期间被捕获——在任何代码被真正运行之前。

这个特性使 Rust 很难被初学者所掌握,但有经验的程序员能体会到这种内在的性能改进带来的价值。自问世以来,它的用户数量一直在稳步增长。而可以预见的是,在接下来的几年中 Rust 相关职位将会有很大的需求。根据 Stack Overflow 的数据,它是 2017 年薪酬第二高的编程技术岗位,在 2018 年的排名也跻身前六。

专业程序员的其他选择

如果你已经是一名老练的 Java 程序员,或许你应该把 Scala(名字来源于 Scalable Language,可扩展语言的缩写)列入你该学习的下一个语言中。

Scala 是程序员试图改进 Java 的许多尝试之一,它基本上可以直接替代 Java——事实上,它被编译之后就是在 Java 虚拟机上运行。这是一门需要花费精力学习的复杂语言,但这些付出最终会是值得的:Scala 在 Stack Overflow 的 2017 年和 2018 年调查中,都被评为最高薪的技术岗位。

与 Rust 一样,Scala 在过去 5 年中一直在稳步增长。包括 LinkedIn 和 Twitter 在内的许多大公司已在代码库中使用 Scala。

. . .

总而言之,你接下来要学习的编程语言,应该和你当前的技能水平、未来的职业兴趣或志向相吻合。

初学者应该从相对易于学习的语言,比如 JavaScript、Python 或 Ruby 开始,先试试水,开始编写自己的第一个应用程序。

拥有更多经验的程序员,应当明智地掌握一门基础、通用的编程语言语言,如 C 或 Java,以更好地理解计算机系统和软件的交互方式。这也将教你如何编写出更有效率的代码。

最后,专家级程序员可能希望学习 Rust 或 Scala 等语言,以对现有的基础语言(如 C 和 Java)做出改进。这两种高级语言已经在经验丰富的程序员中非常受欢迎,并且随着时间的推移,它们的重要性可能会继续增长,因为在商业竞争中,企业总是会需要构建更新、更高效的应用程序。

. . .

那么,2019 年你打算学哪一门编程语言呢?

(本文已投稿给「优达学城」并已发表。 原作: Constantin 译者:欧剃 编辑:kooyee 转载请保留此信息)

编译来源: https://medium.freecodecamp.org/which-programming-language-should-you-learn-next-487d077baa32

标签:UdacityPythonTranslate

1 comment
@oicebot
oicebotcommentedabout 3 years ago

我在想要不要学个 Go 语言……


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK