学习编程并非学习编程语言

做者:zooboole
英文原文: 《Learning programming is different from learning a programming language》

咱们都是程序员,也是学习者。使人惊讶的是,如此多的人觉得本身在学习编程,却已经步入歧途。php

你可能正在学习编程语言,而不是编程自己

你们都知道计算机科学不是研究计算机,它反却是利用计算机研究自动解决问题的。问题解决是计算机科学,不是编程。这就许多计算机科学专业的学生彷佛不理解他们为何要学习算法或数学的缘由。程序员

若是你之前上过计算机科学课,你就应该知道我在说什么。由于你会注意到编程与编程语言几乎没有关系。问问本身为何伪代码在这些课程中如此常见。算法

可是,大多数自觉得是的程序员老是落入陷阱。在乎识到进行编程时到底什么是应该要作的以前,咱们学习了几十年的编程语言。我本身也是受害者。编程

我花了十多年的时间一点一点地学习各类编程语言。我学的越多,就越难以简单的方式解决问题。我觉得是没有找到合适的工具。但问题是,当我甚至还不知道这个工做要作什么时,就去寻找合适的工具,而忘记了找出真正的工做是该作什么。segmentfault

编程语言的奇怪之处在于它们老是在不断发展。编程语言几乎天天都在变化,跟进很难。而大多数优秀的程序只使用了编程语言的一小部分设计模式

首先,学习编程语言的问题就像在学习木工以前学习如何使用木工锯,锤子和各类切割机器。木工须要注意:想法,可行性分析,测量,测试,客户行为。资深木匠感兴趣的事物不止于锤子和钉子。在他对这项工做的研究中,还须要时间来检查钉子、着色剂、木材等的质量。框架

学习编程和学习编程语言的区别是什么呢?

编程是经过一次下达指令来设置一个系统自动运行。咱们天天都这样作。咱们教咱们的孩子,命令咱们的士兵,服务咱们的客户。咱们给予或收到指示,以自由/独立的方式生活。父母不须要跟随并指导你在生活中所作的每个动做。他们可能已经在生活的许多方面为你编程了。编程语言

大多数学校和教学网站都会教授编程语言的语法。他们能够添加一些设计模式(当你忽略到底是什么设计时)、一些算术计算。教你如何声明变量以及如何使用它们;教你如何声明数据类型以及建立它们。工具

这并不能教你推理。但后来,您将会碰见推理方法。使用那些方法来学习,会让你以为是浪费生命或者花了不少时间来学习编程。学习

咱们用编程来解决问题,编程语言是帮助咱们达到目的工具。

它们就象工具箱,咱们称之为框架,帮助你组织你的思惟。

若是你正在学习编程且仍然没法设计和编写真实应用程序,那么这就意味着你正在学习编程语言而不是编程。

咱们常常会遇到想知道如何建立程序的学习者。对于程序员来讲,程序是一个问题求解。在使用任何编程语言以前,他经过关键分析解决了问题。当你解决任何问题时,你能够用任何编程语言来编码。咱们来看看平方求解的案例。为了求解平方,咱们将它与本身相乘。咱们能够用各类语言实现它,例如:

C语言

function square(int * x) {
    return x * x;
}

PHP语言

function square ($x){
    return $x * $x;
}

Javascript语言

function square(x){
    return x * x
}

Scheme(a Lisp dialect)语言

(define (square x) (* x x))

您应该注意到实现中只有语法是不同的,解决方案是同样的。这也是你几乎可使用任何编程语言的主要缘由之一,在这种语言中你能够更轻松地构建任何类型的软件。

编程可让你更容易理解一门语言

一般,问题出在人类语言,它充满了局限和错误。人类语言不能用来指令机器,由于它们不理解。

你学习编程时,是在学习一种新术语和工具,来帮助你以计算机或其余程序员能够理解和赞成的方式编写逻辑。

一般,你将从简单且相似人类语言的符号--伪代码开始。它是从人类语言到计算机编程语言的良好过渡工具。这一般是为了不浪费时间在具体的编程语言上,这样你能够彻底专一于推理。经过它,你将发现构成良好编程工具(语言)的核心部分。你知道了真正须要的是什么、掌握了编程语言的核心目标。在编程实践过程当中,你会不知不觉地就学会了这门编程语言。

相关文章

如何学习一门计算机编程语言

相关文章
相关标签/搜索