我们都是程序员,我们也都是学习者。看到有多少人(学习者)在头撞南墙,以为自己在学习编程,真是令人惊讶。
你可能在学习一种编程语言而不是编程本身
不要觉得惊讶,计算机科学并不研究计算机。相反,它是研究使用计算机自动解决问题的。解决问题是计算机科学,而不是编程。这就是为什么许多计算机科学的学生似乎不明白为什么他们要学习算法或数学。
如果你以前上过计算机科学课,你不会对我在这里说的话感到惊讶。因为你会注意到,编程与编程语言的关系不大。扪心自问,为什么伪代码在那些课上如此常见?
但是,大多数自以为是的程序员总是落入陷阱。我们学习了几十年的编程语言,才意识到我们到底要做什么:编程。我自己也曾是受害者。
我花了十多年的时间一点一点地学习各种编程语言。我学得越多,就越难建立一些简单的东西。我曾经有过那种找不到合适工具的感觉。但是,问题在于,当我甚至不知道要做什么工作时,我忘记了寻找正确的工作而不是正确的工具。
而编程语言的奇怪之处在于,它们总是在不断发展。编程语言几乎每天都在变化。这是很难跟进的。而且大多数好的程序只使用一种编程语言的一小部分。
先学习编程语言的问题就像在学习木工之前先学习如何使用木匠锯、锤子和各种切割机器。木匠需要注意:想法、可行性分析、测量、测试、客户行为。比起锤子和钉子,木匠老板会对这些东西更感兴趣。在他对工作的科学研究中,他还会花时间检查钉子、着色剂、木材等的质量。
学习编程和学习编程语言之间有什么区别?
编程是通过只给一个系统发出一次指令,使其自由运行。我们每天都在做这件事。我们教我们的孩子,我们的士兵,我们的客户。我们给他们或我们接受指令,让他们自由/独立地以特定的方式生活。你的父母不需要跟随你,指示你在生活中的每一个动作。他们会在生活的许多方面已经对你进行了编程。
大多数学校和教育网站会教授一种编程语言的语法。他们可以添加一些设计模式(而你忽略了设计到底是什么),一些算术计算,变量如何声明和如何使用它们,数据类型和如何声明/创建它们。
这并没有教你为什么是这样的原因。用这样的方法,你会发现为什么是这个方法,但要晚一些。这将使你觉得你浪费了或花了很多时间来学习编程。
我们通过编程来解决问题,而编程语言是帮助我们这样做的工具。
它们就像工具箱。我们称它们为框架。它们帮助你组织你的思想。
如果你正在学习编程,而你还不能计划和编码一个真正的应用程序,这意味着你学习的是编程语言而不是编程。
有多少次我们遇到的人(学习者)仍然想知道如何创建一个程序。对于一个程序员来说,程序是一个需要解决的问题。在涉及到任何编程语言之前,他通过批判性分析来解决这个问题。当你解决任何问题时,它可以用任何编程语言进行编码。让我们来看看平方的例子。为了使某样东西平方,我们把它乘以本身。我们可以让它在各种语言中实现,比如。
C
function square(int * x) { return x * x;}
PHP
function square ($x){ return $x * $x;}
Javascript
function square(x){ return x * x}
Scheme
(define (square x) (* x x))
你可以注意到,在实现上只有语法是重要的。解决方案是一样的。这也是为什么你几乎可以使用任何你更喜欢的编程语言来构建任何类型的软件的主要原因之一。
通过编程更容易发现一种语言
一般来说,问题在于人类的语言。人类的语言充满了限制和错误。它不可能用来指导机器,因为它们不能感受。
在学习编程时,你会学习新的术语和新的工具,以帮助你以计算机或其他程序员能够理解和认同的方式来编写你的逻辑。
通常情况下,你会从一个简单的、类似人类语言的符号开始,称为伪代码。这是一个从人类语言到计算机编程语言的良好过渡工具。这样做通常是为了防止你在语言上浪费时间。这样一来,你就可以完全专注于推理。通过这些,你会发现构成一个好的编程工具(语言)的核心部分。你明白到底需要什么。你理解了一种编程语言的核心目标。有了这些,你就会在不知不觉中学会它。
原文:Learning programming is different from learning a programming language
Published on February 5th, 2018 By zooboole
评论(0)