学习任何编程语言的 5 个步骤

只需一点编程经验,您就可以在几天内(有时甚至更短)学会一门新的语言。
111 位读者喜欢这个。
Learning to program

WOCinTech Chat。由 Opensource.com 修改。CC BY-SA 4.0

有些人喜欢学习新的编程语言。另一些人则无法想象必须学习哪怕一种编程语言。在本文中,我将向您展示如何像程序员一样思考,以便您能够自信地学习您想要的任何编程语言。

事实上,一旦你学会了如何编程,你使用的语言就不再是一个障碍,而更像是一种形式。事实上,这只是教育工作者说尽早教孩子们编程的众多原因之一。无论他们的入门语言多么简单,其逻辑对于孩子们(或成人学习者)以后可能遇到的任何其他事物来说都是一样的。

只需一点编程经验,您可以从 Opensource.com 上的几篇入门文章中的任何一篇获得这些经验,您就可以在几天内(有时甚至更短)学会任何编程语言。当然,这并不是魔术,你必须为此付出一些努力。而且诚然,要学会该语言的所有库或学习如何打包代码以进行交付,需要花费的时间比几天要长得多。但是入门比你想象的要容易,剩下的会在实践中自然而然地发生。

当有经验的程序员坐下来学习一门新的语言时,他们会寻找五件事。一旦你了解了这五件事,你就准备好开始编码了。

1. 语法

语言的语法描述了代码的结构。这既包括代码逐行编写的方式,也包括用于构建代码语句的实际单词。

例如,Python 以使用缩进来指示一个块在哪里结束,另一个块在哪里开始而闻名

while j < rows:
    while k < columns:
	tile = Tile(k * w)
	board.add(tile)
	k += 1
    j += 1
    k = 0

Lua 仅使用关键字 end

for i,obj in ipairs(hit) do
  if obj.moving == 1 then
     obj.x,obj.y = v.mouse.getPosition()
  end
end

JavaC、C++ 和类似的语言使用大括号

while (std::getline(e,r)) {
  wc++;
  }

语言的语法还涉及诸如包含库、设置变量和终止行等内容。通过实践,您将在阅读示例代码时几乎下意识地学习识别语法要求(和约定)。

采取行动

在学习一门新的编程语言时,努力理解它的语法。你不必记住它,只需知道在哪里查找,以防你忘记。使用一个好的IDE 也有帮助,因为它们中的许多会在语法错误发生时提醒你。

2. 内置函数和条件语句

编程语言就像自然语言一样,它只认可有限数量的单词是有效的。这个词汇表可以通过添加额外的库来扩展,但是核心语言知道一组特定的关键字。大多数语言的关键字都没有你想象的那么多。即使在像 C 这样的非常底层的语言中,也只有 32 个单词,例如 fordowhileintfloatcharbreak 等等。

了解这些关键字使您能够编写基本表达式,这是程序的基础。许多内置单词可以帮助你构建条件语句,从而影响程序的流程。例如,如果您想编写一个程序,让您单击并拖动一个图标,那么您的代码必须检测到用户的鼠标光标是否位于图标之上。只有当鼠标光标位于与图标外边缘相同的坐标内时,才会执行导致鼠标抓住图标的代码。这是一个经典的 if/then 语句,但是不同的语言可以用不同的方式表达它。

Python 使用 ifelifelse 的组合,但没有明确地关闭该语句

if var == 1:
    # action
elif var == 2:
    # some action
else:
    # some other action

Bash 使用 ifelifelse,并使用 fi 来结束该语句

if [ "$var" = "foo" ]; then
   # action
elif [ "$var" = "bar" ]; then
   # some action
else
   # some other action
fi

但是,C 和 Java 使用 ifelseelse if,并用大括号括起来

if (boolean) {
   // action
} else if (boolean) {
   // some action
} else {
   // some other action
}

虽然单词选择和语法上存在细微的差异,但是基本原理始终相同。 学习你正在学习的编程语言中定义条件的方法,包括 if/thendo...whilecase 语句。

采取行动

熟悉编程语言理解的核心关键字集。在实践中,你的代码将包含的不仅仅是语言的核心单词,因为几乎肯定有包含大量简单函数的库来帮助你做诸如将输出打印到屏幕或显示窗口之类的事情。然而,驱动这些库的逻辑是从语言的内置关键字开始的。

3. 数据类型

代码处理数据,所以你必须学习编程语言如何识别不同类型的数据。所有语言都理解整数,大多数语言都理解小数和单个字符(a、b、c 等等)。这些通常表示为 intfloatdouble 以及 char,但是当然,该语言的内置词汇表会告诉你如何引用这些实体。

有时,一种语言内置了额外的数据类型,有时复杂的的数据类型可以通过库来启用。例如,Python 使用关键字 str 识别字符串,但是 C 代码必须包含 string.h 头文件才能使用字符串功能。

采取行动

库可以为你的代码解锁各种各样的数据类型,但是学习语言包含的基本数据类型是一个明智的起点。

4. 运算符和解析器

一旦你了解了编程语言处理的数据类型,你就可以学习如何分析这些数据。幸运的是,数学学科非常稳定,所以数学运算符在许多语言中通常是相同的(或者至少非常相似)。例如,将两个整数相加通常使用 + 符号,而测试一个整数是否大于另一个整数通常使用 > 符号。测试相等通常使用 ==(是的,这是两个等号,因为单个等号通常保留用于设置值)。

像 Lisp 和 Bash 这样的语言中存在明显的例外,但是与其他所有事情一样,这只是一个心理转换的问题。一旦你知道表达式的差异在哪里,你就可以很容易地适应它。快速浏览一下语言的数学运算符通常足以让你了解数学是如何完成的。

你还需要知道如何比较和操作非数字数据,例如字符和字符串。这些通常通过语言的核心库来完成。例如,Python 具有 split() 方法,而 C 需要 string.h 来提供 strtok() 函数。

采取行动

学习操作基本数据类型的基础函数和关键字,并寻找可以帮助你完成复杂操作的核心库。

5. 函数

代码通常不仅仅是计算机的待办事项列表。通常,当你编写代码时,你希望向计算机呈现一组理论条件和一组在满足每个条件时必须执行的操作指令。虽然使用条件语句和数学及逻辑运算符进行流程控制可以完成很多工作,但是一旦引入函数和类,代码就会变得更加高效,因为它们允许你定义子程序。例如,如果应用程序需要频繁出现确认对话框,那么将该框作为类的实例一次编写比每次需要在代码中显示它时都重新编写要容易得多。

你需要学习如何在正在学习的编程语言中定义类和函数。更准确地说,首先,你需要学习编程语言中是否提供了类和函数。大多数现代语言都支持函数,但是类是面向对象语言常见的专用结构。

采取行动

学习语言中可用的结构,这些结构可以帮助你高效地编写和使用代码。

你可以学习任何东西

学习一门编程语言本身就是编码过程中的一种子程序。一旦你理解了代码工作原理背后的理论,你使用的语言就只是传递逻辑的媒介。学习一门新语言的过程几乎总是相同的:通过简单的练习学习语法,学习词汇以便你可以构建复杂的操作,然后练习、练习、再练习。

接下来要阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时从事这两项工作。

5 条评论

1. 理解德摩根定律。
2. 理解真值表。
这些是我45年前学习计算机科学学位时学到的第一批东西,而且我几乎每天都在使用它们。

我发现学习一些新的语言,或者学习一些我已经略知一二的语言的新语法,以下两件事很有帮助:
1. 心里想着某个特定的任务,你想让脚本或程序来完成。你对该任务越感兴趣,你学习的动力就越大。
2. 寻找一些示例,这些示例展示了你需要的一些方面的集合命令,例如读写文件。

我应该补充一下第二点,修改你找到的一些示例,改变其操作或输出,可能会非常有帮助。

回复 ,作者: Greg P

完全正确。有时,即使只是为了熟悉一门新的语言,也值得“重新发明轮子”。 我绝对已经用Bash、Python、Lua和Ansible [到目前为止] 为自己编写了完全相同的实用程序(沿途进行了小的改进)...

回复 ,作者: Greg P

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.