今年夏天如何学习一门新的编程语言

在这个夏天,学习一门新的编程语言,这难道不是一个更好的目标吗? 忘记那些“海滩读物”吧,不如把目标定为深入学习一门新的编程语言——但你应该选择哪一门呢?

EDC报道,地球上大约有2400万专业软件开发者,并且存在近700种重要的编程语言(根据维基百科的数据)。 我敢肯定,在互联网上,学习各种编程语言的平台数量也是非常庞大的。 无论您是这1100万名编码专家中的一员,还是编程新手,互联网上都有大量的信息供您学习和参考。

为了本篇博文的目的,我们将重点关注世界上的…… 2021年最常用的编程语言, 此外,我们还将探讨一些在数据处理和查询方面至关重要的编程语言,包括:C及其衍生语言(C++、C#和Objective-C)、Java、Python、R、JavaScript、Ruby、SQL以及XQuery。

选择从哪里开始完全取决于您所设想的开发场景。为了方便您,我们已经将内容进行了分类。无论您是经验丰富的程序员,希望学习一门新的编程语言,还是初学者,对 C、C++、Objective-C 或 C# 之间的区别还不清楚,我们都整理了一份说明,希望能帮助您选择接下来想要学习的编程语言。

在深入探讨每种编程语言的细节之前,我们先来了解一下目前编程语言主要应用的六个领域,以及在不同场景下可能适用的语言。这将为您提供一个大致的框架,并帮助您初步判断哪种语言可能最适合您学习。

移动应用程序

当您想要为智能手机或平板电脑开发应用程序时,您选择的编程语言很大程度上取决于您想要开发的平台。如果您希望针对 iOS 设备,标准的编程语言是 Objective-C;如果您开发的是 Android 应用程序,默认语言是 Java;而对于 Microsoft Surface(以及一般的 Windows 10 或 11 设备),则是 C#。如果您的移动应用程序需要一个在云端运行的服务器后端,请参考以下关于服务器端开发的段落,其中列出了更多可用的编程语言。如果您希望同时针对所有三个移动平台,但觉得一次性学习所有语言有些困难,我建议您考虑使用跨平台工具,例如 Altova MobileTogether,该工具允许您使用 XQuery 和可视化 ActionTree 脚本,从一个代码源构建适用于所有平台的移动应用程序。

网页开发

无论是为移动端网页还是传统桌面浏览器开发网站,JavaScript 都是首选的编程语言,它将在网页浏览器中执行。当然,您网站的主要内容将使用 HTML5 编写,并且希望您的所有样式信息都编码在 CSS3 样式表中,但这些并非严格意义上的编程语言。到目前为止,我只讨论了客户端编程。

服务器端开发

无论您谈论的是移动应用程序的后端,还是传统的Web服务器,都有许多不同的编程语言适合服务器端开发。其中,Java、C#、Python、PHP和Ruby被广泛使用。这同样适用于传统的托管Web服务器,以及运行在AWS或Azure云平台上的云服务器。

经典 PC/台式机应用程序

虽然 Java 和 Visual Basic 应用程序有时会在企业环境中被使用,但绝大多数基于 PC 的桌面应用程序都是使用 C、C++ 或 C# 开发的。然而,像 Python 这样的语言,作为一种脚本语言,正在桌面领域越来越受欢迎,用于自动化常见的任务。

科学计算

对于数据分析、统计和高等数学,有三种专门的编程语言被广泛使用:Matlab、Mathematica和R。仅从普及程度来看,在过去几年里,R已经明显超越了其他两种语言,因此我将在下面主要介绍R。

嵌入式设备与物联网

在嵌入式设备领域,C 语言和 C++ 仍然占据主导地位。 过去几年,这个领域确实经历了一些变化,越来越多的嵌入式设备和物联网设备实际上成为了功能完善的 Linux 计算机。 然而,对于那些与硬件层非常接近的软件开发,以及许多操作系统功能和设备驱动程序,C 语言仍然凭借其强大的性能、速度和效率,成为该领域的首选。

数据库查询与数据操作

无论您关注的是上述哪个领域,您几乎总是需要掌握一种能够从数据库中查询特定数据集的语言。虽然如今Hadoop/MapReduce以及其他专注于大数据处理的平台备受关注,但SQL(结构化查询语言)自20世纪70年代就已经存在,并且至今仍然是最广泛使用的数据库查询语言,所有主流数据库系统都支持它。

除了SQL之外,我还建议您深入了解一下XQuery,这是一种XML查询语言。因为现在很多数据都以XML或JSON格式存储,而XQuery作为一种函数式编程语言,在高效地处理这些数据方面非常强大。特别是像Altova MobileTogether等高级移动工具,就利用XQuery来实现从各种数据源(包括XML、JSON、HTML和SQL数据库)进行数据处理的函数式编程。

现在,我已经向您介绍了这些语言最常使用的地区,希望您对哪些语言可能适合您作为下一步的学习目标有了初步的了解。接下来,我们来详细介绍这些语言,并告诉您可以在哪里在线学习它们

C

C 语言及其衍生语言(C++、C# 和 Objective-C)都是通用编程语言,而 C 语言自 1978 年那本具有里程碑意义的书籍问世以来,一直广受欢迎 C 编程语言 由 Kernighan 和 Ritchie 编写。如果您认真考虑从事计算机科学领域,那么掌握 C 语言仍然是必不可少的。但对于初学者来说,我不建议将其作为入门选择,因为它通常用于与硬件相关或其它低级应用。C 语言最初是为在 UNIX 操作系统上使用而设计的,如今它最常用于实现操作系统、设备驱动程序和嵌入式应用。

学习 C 语言的资源包括: https://alison.com/courses/Diploma-in-Programming-in-C https://www.udemy.com/c-programming-for-beginners/ http://c.learncodethehardway.org/book/

C++编程语言

C++ 语言源自 C 语言,并且已经存在了相当长的时间。 学习 C++ 至少需要具备中级水平的编程技能。 C++ 具有命令式、面向对象和泛型编程等特性,使其功能非常强大,但也需要理解一些高级计算机科学概念才能完全掌握。 这种语言主要用于开发系统软件、电子游戏、应用程序软件以及客户端/服务器应用程序,以及基于云的服务器软件。

学习 C++ 的资源包括: http://www.learncpp.com/ http://www.cplusplus.com/doc/tutorial/

C#

C# 最初由微软设计,是其 .NET 计划的一部分,主要用于开发面向 Windows 平台的软件应用程序。由于 C# 是 .NET 框架的重要组成部分,如果您希望为微软开发软件,那么 C# 将是您的理想选择。它与 Java 非常相似,因此如果您已经熟悉其中一种语言,学习另一种语言也不会太困难。与 Java 一样,C# 最初的目的是将面向对象编程的概念引入一种类似于 C 的语言,同时避免 C++ 中存在的复杂性。

学习 C# 的资源包括: https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/ https://channel9.msdn.com/Series/C-Fundamentals-for-Absolute-Beginners

Java

Java 是一种面向对象的编程语言,目前也是应用最广泛的编程语言之一。程序员喜欢 Java,因为它在设计上具有可移植性,并且可以在多个软件平台上良好运行。Java 是一种多功能的语言,可以用于开发移动应用程序、服务器端应用程序,以及企业级软件。

学习 Java 的资源包括: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/ https://www.codecademy.com/edn/courses/learn-java/

R

R 是一种专门用于统计分析和绘图的编程语言,包括双变量分析和相关性分析。 随着数据科学在学术界和商业领域的日益普及,R 的受欢迎程度也在不断提高。 在许多情况下,数据可视化和分析对于推动项目进展至关重要。 如果您需要进行任何类型的数据挖掘项目,或者您觉得 Excel 的基本功能过于简单,无法充分分析您数据中可能存在的相关性,那么 R 将是一个非常好的选择。

学习 R 的资源包括: https://cran.r-project.org/manuals.html https://www.edx.org/course/r-programming-fundamentals https://www.datacamp.com/courses/free-introduction-to-r

Python (编程语言)

Python 被誉为最容易学习的编程语言之一,是一种通用、高级的脚本语言。它可用于创建各种应用,从网站和移动应用程序到数据分析,并且拥有一个庞大而全面的标准库。由于其简单易懂的特点,Python 也是美国学校中最常用的编程语言之一。如果您是编程新手,那么 Python 确实是一个非常好的入门选择。

学习 Python 的资源包括: https://www.python.org/doc/ http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/ https://developers.google.com/edu/python/?hl=en

红宝石

Ruby 是一种优秀的脚本语言,在过去 10 到 15 年里曾广受欢迎,但如今似乎略有下滑。它主要用于开发网站和移动应用程序。这种开源语言拥有一个活跃的社区,这使得学习 Ruby 的资源更容易获取。Ruby 由日本的松本行于 20 世纪 90 年代中期创建,他融合了自己喜欢的几种编程语言(Perl、Smalltalk、Eiffel、Ada 和 Lisp)的元素,创造了一种本质上是面向对象和函数式的全新语言。

学习 Ruby 的途径包括:

https://www.ruby-lang.org/en/documentation/quickstart/
https://rubymonk.com/

JavaScript

JavaScript 是一种基于 Java 的编程语言,经常被用于为 HTML 网页添加交互功能。它是一种相对容易学习的语言,并且在互联网上可以找到许多实用的教程,帮助您入门。通常,JavaScript 在网页浏览器中执行,但也可以用于其他服务器端应用程序。近年来,JavaScript 的应用范围不断扩大,已经扩展到移动应用程序,甚至一些嵌入式设备。

JavaScript 使用一种内置的序列化格式,可以将内存中的对象写入磁盘或流中,这种格式被称为 JSON(JavaScript Object Notation)。JSON 凭借其快速高效的数据传输方式,在计算机之间传输数据时越来越受欢迎,其方式类似于 XML。因此,掌握 JavaScript 有助于您熟练掌握 JSON 和 JSON Schema,这两者都是构建 Web 应用程序和 Web 服务应用程序的必要条件。

学习 JavaScript 的资源包括: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide https://www.codecademy.com/tracks/javascript

SQL

SQL,即结构化查询语言,是一种用于管理关系数据库中数据的查询语言。 谁应该学习SQL? 每个人! SQL无处不在,而且学习它并不难。 如果您曾经需要从数据库中检索或操作数据(而且说实话,谁又不需要这项能力呢?),那么学习SQL是一个非常好的选择。

学习 SQL 的资源: https://www.codecademy.com/learn/learn-sql http://www.sqlcourse.com/ http://www.w3schools.com/sql/ http://www.tutorialspoint.com/sql/

XQuery

XQuery 是一种函数式编程语言,旨在用于查询和转换 XML 和 JSON 数据。根据 W3C 的说法,XQuery 正在取代复杂的 Java 或 C++ 程序,因为它使用更少的代码,并且更容易使用和维护。如今,XQuery 已经成为在移动平台上从各种数据源进行强大数据处理的首选语言,例如 Altova MobileTogether。XQuery 非常强大,而且不是一门难以学习的语言。

学习 XQuery 的资源: https://www.altova.com/training/xquery3/ https://www.w3schools.com/xml/xquery_intro.asp http://www.tutorialspoint.com/xquery/

除了这些在线资源之外,亚马逊上还有很多关于这些语言的优秀书籍。建议您也去浏览一下,并在购买前查看客户评价,以便做出更明智的选择。

你无法选择一个“糟糕”的编程语言来添加到你的技能库中;事实上,每一种语言都会提升你的市场竞争力。所以,赶快行动起来,这个夏天就开始学习一门新的编程语言吧!