如何挑选你的第一门编程语言

想学编程的原因有很多,你也许是想要做一个程序,又或者你只是想投身于这个行业,所以,在选择你的第一门

编程语言

之前,问问你自己:你想要在哪里运行程序?你想要程序来完成什么工作?

你学习编程的原因将会决定你的第一门编程语言的选择。

在这篇文章里,我会交替使用“编码”(

code

)、“编程”(

program

)、“开发”(develop) 等动词,“代码”(

code

)、“程序”(

program

)、“

应用程序

”(

app

lication)、“应用”(app)等名词。这是考虑到了你可能听过的语言用法。

了解你的设备

在你编程语言的选择上,你的程序将运行在何处是个决定性因素。

桌面应用是运行在

台式机

或者

笔记本电脑

上的传统软件程序。这样你编写的代码在同一时间内只能在一台电脑上运行。

移动应用

,也就是我们所熟知的“

app

”,运行在使用

IOS

Android

或者其他

操作系统

的移动设备上。

网页应用

是功能像应用的网页。

互联网

的 客户-服务器(C/S)架构分,网页开发者经常被分为两类:

· 前端开发,就是编写运行在浏览器里面的代码。这是个面对用户的部分,或者说是程序的前脸。有时候被称为“客户端编程”,因为浏览器是网站的客户-服务器架构的客户端部分。浏览器会运行在你本地的电脑或者设备上。

· 后台开发,也就是大家所熟知的“服务器端开发”,编写的代码运行在你无法实际接触的服务器上。

创造什么

编程是一门广泛的学科,能应用在不同的领域。常见的应用有:

· 数据科学

· 网页开发

·

游戏开发

,以及

· 不同类型的工作自动化

现在我们已经讨论了为什么你要编程,你要程序运行在哪里,让我们看一下两门对于新手来说不错的编程语言吧。

Python

Python是对于第一次编程的人来说是最为流行的编程语言之一,而且这不是巧合。Python 是一门通用的编程语言。这意味着它能应用在广泛的编程任务上。几乎没有你不能用 Python 完成的工作。这一点使得很多新手能在实际中应用这门编程语言。另外, Python 有两个重要的设计特征,使得其对于新手更友好:清晰、类似于英语的语法,和强调代码的可读性。

从本质上讲,一门编程语言的语法就是你所输入的能让这编程语言执行的内容。这包括单词,特殊字符(例如;、$、%或者{}),空格或者以上任意的组合。Python 尽可能地使用英语,不像其他编程语言那样经常使用标点符号或者特殊的字符。所以,Python 阅读起来更自然、更像是人类语言。这一点帮助新的编程人员可以聚焦于解决问题,而能花费更少的时间纠结于语言自身的特性上。

清晰语法的同时注重于可读性。在编写代码的时候,你所创造的代码的逻辑“块”,就是一些为了相关联目标而共同工作的代码。在许多编程语言里,这些块用特殊字符所标记(或限定)。它们或许被{}或者其他字符所包住。块分割字符和你写代码的能力,这两者不管怎么结合起来都会降低可读性。让我们来看一个例子。

这有个被称为fun的简短函数。它要求输入一个数字,x就是它的输入。如果x等于0,它将会运行另一个被称为no_fun的函数(这函数做了些很无趣的事情)。新函数不需要输入。反之,简短函数将会运行一个使用输入x的名为big_fun的函数。

这个函数用C 语言将会是这样写的:

voidfun

intx

{if(x==0){

no_fun;

}else{

big_fun(x);

或者,像是这样:

voidfun

intx

){if(x==0){no_fun;}else{big_fun(x);}}

功能上两者等价,而且都能运行。{}和;告诉我们哪里是代码块的不同部分。然而,第一个对于人们来说_明显_更容易阅读。相比之下完成相同功能的 Python 是这样的:

deffun(x):ifx==0:

no_funelse:

big_fun(x)

在这里,只有一个选择。如果代码不是这样排列的,它将无法工作。如果你编写了可以工作的代码,你就有了可阅读的代码。同样也留意一下两者在语法上的差异。不同的是def,在 Python 代码中这个词是英语单词,大家都很熟悉这单词的含义(LCTT 译注:def 是 definition 的缩写,定义的意思)。在 C 语言的例子中void和int就没有那么直观。

Python 也有个优秀的生态系统。这有两层意思,第一,你有一个使用该语言的庞大、活跃的社区,当你需要帮助指导的时候,你能向他们求助。第二,它有大量早已存在的库,库是指完成特定功能的代码集合。从高级数学运算、图形到

计算机视觉

,甚至是你能想象到的任何事情。

Python 作为你第一门编程语言有两个缺点。第一是它有时候安装起来很复杂,特别是在运行着 Windows 的电脑上。(如果你有一台 Mac 或者

Linux

的电脑,Python 默认已经安装好了。)虽然这问题不是不能克服,而且情况总在改善,但是这对于一些人来说还是个阻碍。第二个缺点是,对于那些明确想要建设网站的人来讲,虽然有很多用 Python 写的项目(例如Django和Flask),但是编写运行在浏览器上的 Python 代码却没有什么好的选择。它主要是后台或者服务器端语言。

JavaScript

如果你知道你学习编程的主要原因是建设网站的话,JavaScript或许是你的最佳选择。 JavaScript 是关于网页的编程语言。除了是网页的默认

编程语言

之外, JavaScript 作为初学的语言有几点优点。

第一,无须安装任何东西。你可以打开文本编辑器(例如 Windows 上的记事本,但不是一个文字处理软件,例如

Microsoft

Word)然后开始输入 JavaScript 。代码将在你的浏览器中运行。最顶尖的浏览器内置了JavaScript 引擎,所以你的代码将可以运行在几乎所有的电脑和很多的移动设备上。事实上,能马上在浏览器中运行代码为编程人员提供了一个非常_快_的反馈,这对于新手来说是很好的。你能尝试一些事情然后很快地看到结果。

开始 JavaScript 是作为前端语言的,不过一个名为Node.js的环境能让你编写运行在浏览器或者服务器上的代码。现在 JavaScript 能当作前端或者后台语言使用。这增加了它的使用人数。JavaScript 也有大量能提供除核心功能外的额外功能的包,这使得它能当作一门通用语言来使用。JavaScript 不只是网页开发语言,就像 Python 那样,它也有个充满生气的、活跃的生态系统。

尽管有这些优点,但是 JavaScript 对于新手来说并非十全十美。JavaScript 的语法并不像 Python 那样清晰,也不怎么像英语。更像是之前例子里提到的 C 语言。它并不是把可读性当作主要的设计特性。

做出选择

Python

或者 JavaScript 作为入门语言都没有问题。关键是你打算做什么。为什么你要学习编程?你的回答很大程度上影响你的决定。如果你是想为

开源

做贡献,你将会找到_大量_用这两门语言编写的项目。另外,许多主要不是用 JavaScript 写的项目仍使用

JavaScript

用作前端组件。当你做决定时,别忘了你本地的社区。你有在使用其中一门语言的朋友或者同事吗?对于一个新手来说,有实时的帮助是非常重要的。

祝好运,开心编程。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181031A1L2MH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券