为什么人人都要学编程
如果你对《猩球崛起》这部电影印象深刻,你一定不会忘记黑猩猩凯撒是如何一步一步从猩猩变成和人类相似,甚至智力超越大部分人类的智慧生物。其 中人类是如何判断出猩猩的智力达到和人类相似的水平呢?那就是汉诺塔的游戏,如果在一段时间内,可以达到了 15 步就完成游戏,那么就认为猩猩的智力已经达到人类的水平。
为什么这样判断呢?因为对于动物来说,人与之最大的不同在于“人懂得思考”,会思考的生物意味着具备了“智慧”。
还有一个故事曾经引起许多人讨论:中国的孩子擅长数学,尤其是心算,大部分国外的同年龄层孩子则连简单的计算都要使用计算器。能否说中国的孩子真的比较厉害呢?这个故事最后提出了一个有趣的事实:大部分中国的孩子虽然数学很厉害,但创新能力并不如国外。
且不说这个事情究竟是什么原因。至少让我想起自己小时候的一件事:读书时期,我非常鄙视使用计算器的人,尽可能地打草稿笔算和心算。当年觉得自 己算数太厉害,但今天看来,却是颇有傻呆萌的属性。条条大路通罗马,但总是会有最佳的一条路,而这条路并不是不假思索走出来的,是先经过完善的思考才能选 出最佳的决策。
我的表弟现在正在死背九九乘法表,但总是记不住,我问他,你知道九九乘法的意思吗?他回答:11 得1,12 得……99 得 81。很显然,他并不真正理解乘法表的意义。我甚至想说基础教育的教师太失职,但这不是今天想说的观点。从教学角度来看,如果做成一个金字塔图或者树形 图,或者运用更为简单得故事,可能小孩子会更理解九九乘法表的意思。
“理解”和“思考”是至关重要的。此外,不得不吐槽一句,九九乘法表不过是古人的算数口诀,在计算机盛行的今天,这个乘法表的价值除了启蒙,意义不大。
所以人在从小到大的认知过程中其实很容易遇到一些学习的误区,比如重视下苦功,而忽视思维的培养,这是非常奇怪的一件事情。但我身边有一群人却与之相反,他们“懒得要命”,不愿下苦功,怎么方便怎么来;但他们又非常谨慎,逻辑严谨,这就是一群聪明的程序员。
请注意我用了“懒得要命”这样的形容词,其实我想表达的是“效率”。对于人来说,可以最快地提高效率,关键因素之一就是使用工具。编程就是这样的工具,但编程的问题在于,任何程序都是基于人的思考。
凯撒变成智慧生物在于思考,不同孩子的创新能力在于思考。思考的重要性,不需要我多阐述,但大部分时候,人类其实是懒得去思考问题的,甚至是缺乏有效的思考方式去解决问题——而编程是培养思考方式最好的方式之一。因此,我说:人人都要学编程。
编程本身是人脑思维方式的映射。如果没有经过专业训练的人,大部分时候很难发现自己的思维缺陷和问题。如果学习编程,则可以有效地提高自己思维 的完整性和逻辑性,这种思维方式的培养,是非常立杆见影的。大部分高校都会开设逻辑学的课程,但传统的教育方式过于文本化,而不是通过实践去培养。编程本 身就是这样一个培养思维的方式,甚至可以看成是一个有趣的大脑游戏,更容易帮助人掌握逻辑思考的能力。
阿基米德曾经说过,给我一个支点,我可以跷起地球。编程对于大部分人来说,就是这样一个强大的支点。随着互联网不断地深入人心,大部分人都看到 了互联网的力量。这种力量并非不可掌握。如果你还沉浸在媒体大肆宣传的 9 岁少年自主开发出了一款 iOS 游戏并实现盈利,那么请不要惊讶,而是尝试去学习编程。相信 6 个月后你也可以做到。
就算你不想学编程,觉得自己不够聪明,不适合学习也没关系。至少要懂得最基础的编程原理。正如多年之前许多人都不知道开车是一项多么容易的事 情,大部分人总是这样告诉自己:“我学不会开车”。但随着经济发展,汽车作为一项贴近生活的产品逐渐成为人人必备。当这个时候到来,你可以不懂开车,但一 定要了解交通规则。
除了功利的目的之外,其实我更想谈谈编程带来的乐趣。
知名积极心理学家米哈里在 TED 曾提到这样一个有趣的想法:人的幸福感从哪儿获得?大部分时候,人的幸福感其实源自一种满足,而这种满足其实来自一种叫做“心流”的体验。何谓心流?就是当你全程专注到一个目标上,享受在专注做事情不断带来的满足和激情,这会让人感受到做事情的乐趣——这种乐趣也带来高效的工作效率。
编程是我经历过最容易让人陷入“心流体验”的事情。我曾经茶饭不思,只为了思考一段代码为什么没有运行成功。当经过多次思考和尝试,最后解决问题时,内心有极强的满足感。这真的是一种非常棒的体验。
编程还是一个非常高效的,用于实现想法的工具,对于小孩子来说,乐高是他们塑造世界的玩具;对于成人来说,编程其实就是一个更加具备拓展性的“乐高”。比如我的朋友刘嘉俊就写了一个“天使与魔鬼”的小游戏,真酷!感兴趣的朋友可以看看他写的《实践出真知:零基础小白学编程做游戏的 14 周历程》。
作为一名产品经理,我日常最多的时候都是在处理文档,这个事情非常让人头疼。相信大部分坐在办公室,需要通过电脑办公的文职人员也有这样的烦 恼。如果你略懂编程,就可以学习 Git,实现有效的文档管理——比如我在写书的过程中,通过 Markdown 和 Github,进行写书和存档的活动,不仅可以看到每一次的修改,还可以避免误删、遗失文档等意外。
随着计算机,我或许应该称之为具备高性能计算能力的设备,不断地影响到人的生活和工作,了解互联网并可以通过编程加入到这个“新潮”的活动中, 是一件值得人思考的事情。比如工业化时代,人被机器取代,过几年,人是不是会被机器人取代?避免这种“逆袭”的途径之一就是了解编程,学习编程,成为思考 者,而不是纯粹的执行者。
此外,因为懂得编程,提高了工作和生活的效率,解放了大脑,其实也是一种“幸福感”。
人人都应该学编程。当你掌握了这个工具,至少你拥有了一把钥匙。这把钥匙可以打开一扇通过“自由”“平等”“高效”的大门。我相信,凯撒如果学会了编程,那真真切切地有可能改变世界,成为真正的智慧生物,而猩球崛起的第二部绝对不是那样的结局。