百无禁忌 , 软硬挨踢

编程、魔法和智商

#智商 , #编程 , #计算机技术 , #魔法

科幻作家阿瑟·克拉克的第三定律:任何非常先进的技术,初看都与魔法无异。
和同学谈到编程的话题时,有人说跟着小孩一起学习几节课就跟不上了,觉得很神奇,需要高智商才玩得转,我马上就想到克拉克的这句名言。
计算机语言联通现实世界和虚拟世界,能够驱动机器做出一般人类无法理解的事情,这和魔法确实也相去不远了。

这样看来:
程序员就是魔法师(资深单身程序员就是大魔法师,嗯嗯嗯);
程序代码就是魔法咒语,需要符合规则才能正常运行,有 bug 的话天知道会有什么糟糕的结果;
编程学习就是魔法学习,有的人在魔法学院接受专业的训练,有的人则利用魔法书自学成才;
有计算机系统加成的武器相当于附魔武器;
虚拟世界相当于用魔法创造出来的世界:
……

当然,这种观点早就存在,所以有《简单易懂的现代魔法》这样的动画,有简明现代魔法这样的编程社区,有《屠龙之技》这样的科幻小说。

不过现代社会中,计算机技术的应用已经比奇幻世界中的魔法深入宽广得多了,许多行业都已经离不开计算机技术的助力,小说中的魔法师学徒也没有 Github、Stack Overflow 以及各种开源社区、免费教学这样好的学习、交流条件。
也许在未来,每个人都需要懂一点计算机技术特别是编程知识,才能胜任工作,这几乎不会在以中世纪欧洲为设定背景的等级森严的奇幻小说中发生。

再说说编程和智商的关系。

鉴于智商没有科学的评判标准,一般行外人的看法准确说应该是“头脑聪明的人才能掌握编程”。
我们确实听说过无数智慧超人的业界大牛的神奇传说,一个人顶一万人不在话下,但抛开神话光环之外,这些人也只是这个行业中最顶尖的那一小撮,真的有代表性吗?
日常接触到的程序员总的来说其头脑聪慧程度并没有高人一等,和你我都是一样的凡人,唯一的区别只是他们用于创造生产的工具和能力在外行人看来有如魔法。

其实每个行业都是最顶尖、最先驱的开创者才需要极高的智商去开拓知识的荒原、探索未知的海洋。
绝大部分人则是挤在正态分布的中间位置,在牛人的基础之上不断拓宽和加深,并且应用到日常生活之中。
对他们来说,重要的是沟通理解和表达能力,是勤奋、耐心,是有益于合作和精耕的各种素质,所谓“智商”没有决定作用。
这就好像靠个人能力名扬天下的技击高手和由默默无闻的普通战士组成的军队,后者单个人在前者眼里可能战斗力只有5,然而后者自有一套分工合作的机制,不依赖于个人战斗力也能发挥出惊人的作用。

实际接触到的程序员也是如此。
确实有少数人天资聪颖,一般人拍马也追不上——而且不止在编程方面,在其他方面都是如此。头脑聪明的人更善于找到最优解方法,几乎干什么都事半功倍。
但绝大多数仍是普通人的水平,哪有外行人说的那样高智商?脑子转不过弯乃至进水的也不在少数。不了解的人看不见而已。

另一个原因,也许是一个行业历史越短,成熟的经验、规范和方法论越少,则天才型的人物越容易出头、越容易被神化。
也许在不久的未来,编程这个行当会像现代工厂中的流水线作业一样,分工越来越明确,需要个人发挥创造力的地方越来越少,创造性的工作只交给少数专业人士负责,大部分人和制造业工人没有什么区别,甚至慢慢被人工智能取代。现在一些创业公司喜欢鼓吹的什么弹性工作制、带宠物上班、游戏和零食等福利,放在未来那个时候大概会是天方夜谭吧。