我们作为程序员,同时也是学习者。然而,有许多人对于学习编程真正学习的是什么却知之甚少。
你可能只是在学习编程语言,而不是在学习编程本身
其实,计算机科学研究的目标不是计算机本身,真正研究的是利用自动化的思想解决问题。编程不是计算机科学的目的,解决问题才是。这也是为什么很多计算机专业的学生不理解他们为什么要学习数据结构,算法,数学等这些课程。
如果你之前上过计算机相关的课程,那么你就不会对我说的话感到惊讶。因为你会注意到,编程和编程语言几乎没有关系。Ask yourself why the pseudo code is so common in those classes.
但是,绝大部分自以为是的程序员经常掉进这样的陷阱中。在我们意识到我们要学习编程之前,我们已经学习了几十年的编程语言。我自己曾经也是一个受害者。
我花了十多年的时间学习各种编程语言。我学得越多,做一些简单的东西反而觉得越难。可能是因为我没找到正确的工具,但是问题是,我当时没有意识到,在不知道要做什么的时候,应该去寻求一个怎样做的方法,而不是去找一个合适的工具。
编程语言的特点之一就是它们总在不断发展。编程语言几乎每天都在变化,想要一直都跟上进度很难,但是大多数优秀的程序仅仅只使用编程语言的一小部分。
首先,学习编程语言就像在学习木工之前习如何使用木工锯、锤子和各种切割机器。但真正在做木工工作时,需要注意的有:想法,可行性分析,测量,测试,客户行为。而且,老板更在意的也是这些,而不是锤子和钉子。
学习编程和学习编程语言的不同之处
编程,就是给系统一个指令然后它就能自动去运行。在日常生活我们也一直在做这件事情,我们教我们的孩子,我们的士兵,我们的客户。我们给予他们或我们收到指示,以独立的方式去执行这些指令。你的父母不需要时时刻刻跟着你并指导你在生活中所做的每一个动作。他们已经可以在生活的许多方面为你编程。
大多数学校和教育网站都会教授编程语言的语法。 他们可以添加一些设计模式(当你忽略究竟是什么设计时),一些算术计算,如何声明变量以及如何使用它们,数据类型以及如何声明或创建它们。这并不能教你如何思考。使用这种方法,可能在将来你会去思考,但不是现在。它肯定会让你觉得你浪费了或者花了很多时间学习编程。
我们通过编程解决问题,而编程语言只是让我蛮达到目的的工具。
他们就像工具箱,我们称之为 框架 。 他们帮你组织你的想法。
如果你正在学习编程而且你仍然不能通过设计和编码完成一个真正的应用,那么这就意味着你更多地是在学习编程语言而不是编程。
对于一个程序员来说,一个项目就是一个需要解决地问题。在用代码实现之前,就已经通过严格地分析将问题解决了。当你能解决这些问题时,就能够通过任何编程语言来将它写出来。
让我们来看一个计算平方数地例子:
php
JavaScript
Scheme
可以看到,仅仅只是语法不同,但是解决方法是相同的。所以,你完全能够使用自己熟悉的或者顺手的语言来构建任何类型的应用。
通过编程能够更容易地了解一门语言
人类的语言通常充满了限制和错误。因为机器感觉不到这些错误,所以不可能用它来指导机器。
学习编程时,您将学习一种新术语和新工具,以帮助您以计算机或其他程序员可以理解和同意的方式编写逻辑。
通常,你会从一种叫做伪代码的符号集开始学习,这个符号集简单而且与人类语言类似,很容易将人类语言转换为计算机编程语言。它让你不会浪费时间在语言上而专注于推理思考。通过伪代码,你将发现构成良好编程工具(语言)的核心部分,而且明白自己到底需要什么,了解编程语言的核心目标,从而你能够更容易学习任何一门编程语言。
领取专属 10元无门槛券
私享最新 技术干货