人人都该学写程式的反思:也许我们更该学习的是电脑思维

2020-06-16浏览量443 收藏量769 383热度

人人都该学写程式的反思:也许我们更该学习的是电脑思维

近年来,程式设计在全球带起一股 风潮 ,写程式不再是男性专属,而是不分男女老幼的全民运动。读者是否也发现身边越来越多朋友加入写程式的行列,甚至开始自学写程式呢?

Yipit 创办人曾说:「coding 不是工程师的专利,每个人都要学习程式语言」,例如在全球各地举办的 Rails Girls 工作坊 ,就帮助许多女性进入 Ruby 以及 Rails 的程式世界。除了摆脱过去写程式是男性专属的既定印象,写程式的年龄层也有年轻化的趋势,像是 Rails Girls 创办人推出 教小朋友写程式的绘本 、 英国小学生使用 iPad 学习写程式 等新闻屡见不鲜。

此外美国非营利机构 Code.org 曾找来多位科技名人如 Bill Gates、Mark Zuckerberg 以及体育界和政界明星拍摄短片,倡导每个人都该学习写程式,呼吁社会该更加重视程式教育以解决工程师短缺问题。来自爱尔兰 CoderDojo 则是鼓励年轻人与小朋友写程式的非营利组织,据点分布于全球多个城市。

然而,面对这股全民写程式的浪潮,曾任 TripAdvisor 软体工程师、现任 LinkedIn 资深软体工程师的 Yevgeniy Brikman 在其个人部落格发表「Don't learn to code. Learn to think.」一文,认为这股鼓吹大家学习写程式的风潮有点误导大众,他认为大家在学习写程式的同时,更重要的是学习电脑科学的思维模式。

大家对程式设计多少有点理解是好事,但写程式不该成为最终的学习目标。写程式是一种工具,是达成目标的方法。那幺真正的目标是什幺呢?Yevgeniy Brikman 认为,让大家学会全新的思考模式才是真正的目标,我们该试着学习电脑科学而不只是写程式。接下来,将会解释两者的差异,并解释为何学习电脑科学更为重要。

欢迎来到真实世界
人人都该学写程式的反思:也许我们更该学习的是电脑思维

首先,或许很多人会想问:「无论是程式设计或电脑科学,到底跟我有什幺关係?为什幺我该关心?」

事实上,在阅读本文时,您可能正使用 Chrome 或 Firefox 浏览器开启网页,装置则是採用 Windows 或 OS X 系统。而您今天大概花了一些时间收发 email、浏览朋友的 Facebook 动态或在 Youtube 看了几个热门影片。现代人的生活与电脑紧密连结:医疗记录、税务记录、个人履历等等,各种想得到的服务几乎都能在电脑上操作。

而现在可能拿在您的手上、放在口袋或手边的智慧型手机,使用了 GPS 定位,配备相机、触控萤幕还有许多应用程式。此外您每天接触的电视节目、电影、音乐、游戏等等都与电脑绘图和数位音效处理紧密相关。

出门在外您可能会使用 Google Map 寻找路线,现在甚至有 Google 无人驾驶车行驶于一般道路。而飞机则有自动驾驶、甚至在高空中也有 Wifi 以及与塔台的通讯系统。再更高一点,太空中的卫星正遵循轨道围绕着地球,提供气象资讯与即时卫星影像。

软体正在吃掉全世界。但这一切都还只是开始,在人们意识到这件事之前,大家早已穿戴起科技产品、用电脑程式控管家中门禁,并在不久的将来让机器人清扫环境、乘坐在无人驾驶车里通勤、居住在虚拟实境里。

刚刚提到的所有科技都是由软体驱动,在生活中的每个层面,大家都被程式码环绕,而未来程式码的数量只会不断增加,所以电脑科学和写程式与每个人的生活都有紧密连结。

什幺是电脑科学?
人人都该学写程式的反思:也许我们更该学习的是电脑思维

根据维基百科定义,电脑科学是系统性研究讯息与计算的理论基础,以及研究它们在电脑系统中如何实作与应用的实用技术学科。以下是几个电脑科学相关概念解释:

  1. 问题解决透过学习演算法,像是 divide and conquer、 recursion、heuristics、greedy search、 randomized algorithms 等,帮助你解决问题。
  2. 逻辑使用精準和正式的方法去思考,包括 abstraction、 boolean logic、number theory、set theory 等理 论,帮助你更严谨的解决问题。
  3. 数据你会开始接触资讯理论并开始提出类似「什幺是资讯?」、「如 何呈现资讯?」等这类问题。
  4. 系统 Systems 如何设计并建立一套複杂的系统且同时满足一连串的要求和限制 呢?系统工程几乎在所有的商业模式中都是是相当重要和基本 的。
  5. 思考理解人类心智的最好方式便是複製,像是人工智慧 AI、自然语 言处理等是走在最前端的科技,其不止牵涉电脑科学,同时还有 生物学、心理学、哲学和数学。

注意到了吗?上面完全没有提到跟写程式相关的词彙,这是因为写程式只是实现电脑运算的一种工具,写程式并不包含在电脑科学的概念宗旨里。

事实证明,比起电脑,我们更倚赖另一种运算工具:大脑!而电脑科学的目标正是要教导我们以一种全新、普世且能被广泛应用的方式思考。当科技变得越来越普及时,这种全新的思考方式将会变得跟物理、数学、生物、历史等学科一样重要。

总而言之,光是思考是不够的,我们必须知道如何应用。在物理领域,我们以磁铁、棱镜进行实验;在生物领域,我们以培养皿、试管进行观察;在电脑科学领域,我们学习写程式。

什幺是程式设计?
人人都该学写程式的反思:也许我们更该学习的是电脑思维

程式设计,或说是写程式,是指如何对电脑下指令以完成某些动作。如果从来没写过程式,您大概曾经在 App 中点击过某些按钮,这些 App 正是由许多程式码组成,透过程式码告诉电脑如何展示介面、要在哪里取得数据以及如何回应使用者的点击。

程式设计完全是基于上述电脑科学的原则,刚刚谈到的逻辑、演算法、系统工程等能用来建构任何事情,从您正用来阅读本文的浏览器到飞机上的自动驾驶程式都可以。即使程式设计牵涉到许多数学与结构,但这同时也相当能激荡创意的实作:用一条条的程式码,就能把想法化为真实存在的产品。

学习程式设计能为你带来不少好处,以下 Yevgeniy Brikman 提出三点:

  1. DIY 如果你会写程式,你就能建立专属于自己的成品,从最简单的开 始,例如用 Excel 表格计算自己的税务资讯,更难一点点, 建立自己的网站、开发自己公司的 App 甚至打造一款手机游戏 与朋友共享。
  2. 故障排除一旦你开发了 App,便会发现要开发其他 App 也没那幺难 了。一旦你不再害怕电脑——未知的部分——你就朝着成为技术支 援专家前进一步。当科技接触生活中的每个部分,了解并且探索 如何操作它就变得跟学习如何阅读一样重要。
  3. 职涯
    学习电脑科学的目标不是为了成为专业工程师,如同我们从小在 校园里学习数学、物理、化学一样。不过如果发现自己对电脑科 学有兴趣的话,不难发现软体工程是现在成长最为快速、高薪的 工作选项之一。
把电脑科学和程式设计结合在一起
人人都该学写程式的反思:也许我们更该学习的是电脑思维

最后让我们再总结一下:

  1. 电脑科学是一种新的思考方式,其中的概念对身处在充满科技环境中的每个人相当有用。
  2. 程式设计是学习电脑科学相当重要的一环,用于将电脑科学的思维付诸实行。然而程式设计本身并不该被视为学习终极目标。
如何开始第一步
人人都该学写程式的反思:也许我们更该学习的是电脑思维

身处在这个时代,幸运的是我们手边有许多资源能从今天开始自学电脑科学!事实上,这可能是最好入门的学科了,你只需要一台电脑和网路就够,正在阅读本文的读者大概都具备了这两项基本条件了!

透过以下学习平台,大家今天就能开始上电脑科学的第一课:

大学课程
  1. Coursera
  2. Udacity
  3. MIT OpenCourseWare
  4. Stanford Engineering Everywhere
  5. Academic Earth
线上课程
  1. Khan Academy
  2. Treehouse
  3. MIT Scratch
  4. Codecademy
  5. Code School
社团与组织
  1. CoderDojo
  2. Girls Who Code
  3. Girl Develop It
  4. Code.org
  5. Coding meetup Groups
欢迎加入「Inside」Line 官方帐号,关注最新创业、科技、网路、工作讯息
人人都该学写程式的反思:也许我们更该学习的是电脑思维

上一篇: 下一篇:
相关推荐