为什么编程与编程无关

注意:本文针对正在考虑或开始学习计算机科学的人们,尤其是中高中学生。 从专业人员或研究人员的角度来看,标题似乎是荒谬的(确实如此)。 但是,我认为对于开始学习计算机科学的人们来说,扩大对他们真正尝试学习的知识的理解至关重要。

计算机科学家做什么? 实际上,让我们缩小范围。 程序员做什么? 真的,我要问你。 考虑这些问题。 程序员的一天是什么样的? 他们是如何做到的呢? 他们为什么这样做? 如果您像大多数人一样,可能只是想像一个戴兜帽的人物在监视器上疯狂地输入难以理解的单词和标点符号。 而且你不会错。 程序员花费大量时间进行编程。 这就是为什么他们被称为程序员。

如果您正在阅读本文,那么您很可能是学习或考虑学习计算机科学的学生。 在您的课堂上,您可能正在使用一种编程语言(例如Python或Java或C)来学习诸如分支和循环之类的计算概念。到本文结尾,我希望使您相信计算机科学不仅仅是编程。 实际上,我希望使您相信编程不仅仅是编程。 计算机科学和编程实际上正在尝试教给您的技能正在思考。

“这个国家的每个人都应该学习计算机编程,因为它教会了您如何思考” –史蒂夫·乔布斯(Steve Jobs)

如果您是中学生或高中生,我什至会说您所学的所有内容都是无用的,因为一旦您上大学,他们就会教给您所有您需要知道的语法和构造。 那么,为什么要麻烦您学习if语句是什么,或者如何使用while循环呢? 好吧,我认为您不应该打扰,因为您在问错问题。 您应该问为什么我应该使用if语句, 为什么要使用while循环? 实际上, 为什么会出现while循环? 谁首先想到了创建这样的构造?

问问题。 很多。 如果您不问问题或不了解课程内容,则不会从该课程中学到任何真正有价值的东西。 即使您从未找到问题的答案,也要养成询问有趣问题的习惯,因为这是计算机科学教育可以为您提供的主要技能之一:好奇心。

一个好奇的人质疑为什么事物是这样,为什么它们不是别的东西。 它质疑如果以其他方式做事是否会更好。 他们尝试了。 他们评估。 他们学习了。 这种思维方式不仅限于计算机科学。 实际上,这对于商业,政治,经济学……至关重要。任何需要您了解情况并利用自己的理解谋取利益的事物。 换句话说,找出问题并加以解决。

一旦看到编程是解决问题而不是在屏幕上写单词,您就会开始意识到语法或构造之类的东西并不重要。 编程与打字无关,而与思考有关。 不管您是否知道如何在C语言中使用for循环,都可以在需要时进行查找。 重要的是考虑使用for循环可以解决哪些问题。 为什么不使用while循环? 为什么您甚至首先需要迭代?

质疑您的假设,了解可以使用哪些工具,在正确的时间使用正确的工具,或者在不存在所需的工具时创建新工具……这是编程的本质。

因此,下次您上课时,老师在解释一种新的结构或概念时,请记住,您要学习的不是实际内容。 即使学校考试倾向于测试您的知识,但这也不应该是您的主要任务。 如果您想从课堂上学到任何有价值的东西,请与老师所说的保持互动。 提出一些尖锐的问题,例如“声明变量时计算机的实际功能是什么?”,并通过建议替代实现来挑战它们。

自然,有时候您的老师不知道问题的答案,或者没有给您满意的答案。 没关系。 这并不意味着他们不知道自己在做什么,只是意味着他们在思考其他问题,或者他们不完全理解您提出问题的观点。 毕竟,老师是人,人不是完美的。

但是,学习计算机科学真正令人惊奇的是,互联网上有太多资源可以为您提供帮助。 不要以为你的老师对你的学习负责。 您对自己的学习负责。 主动探索广阔的互联网,并为您的紧迫问题寻求答案。 无论您将来决定做什么,这种类型的独立询问都会带您走很长一段路。 利用计算机科学作为实践独立学习的机会,这是将好奇心转化为知识和技能的过程。

最后,我要坦白地说:标题是点击诱饵。 但是,我希望您能理解本文的要点:学习计算机科学和编程不是要能够定义对等网络或能够在C语言中编写for循环。它教给您更重要和更跨学科的知识。好奇心,解决问题和独立学习的能力。 但是这些都是您的学校在没有您的努力和参与下无法教您的。

照片:贡萨洛·菲塞洛(Gonzalo Facello)

球在你的球场上。

确保跟随我们的出版物,成为第一个阅读我们未来文章的人。