反思程序员的「强者文化」

2023年10月12日

💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

这周社群上许多人转贴一位台大计算机系校友,对台大计算机系“强者崇拜文化”的思考。原文很长但是很值得一读 (连结)。在读完原文、反思我们自身的经验后,有一些不同视角的观点与大家分享。

先引述原文中让我们非常有感的这一段,作者谈到

“你说不要竞赛,去做其他资讯领域的东西有没有用? 没有,一点用都没有。当年我学测 72 级分在校成绩大概一百多名,在资讯竞赛不是特别有成果,但带着我从小累积的热情,为高中社团自己架 BBS 站,去考推甄程式组直接被刷掉了,连个备取也没给我。上了大一当班代,我直接问了当时的系主任跟副系主任,当年的副系主任告诉我,程式组要的就是有奥林匹亚选手等级的学生。我才知道原来我人生从四岁开始玩电脑做的一切在老师们的眼中这么微不足道。”

这一段作者在谈台大计算机系对极度专业知识的崇拜,让即使从小就碰电脑,甚至高中帮社团架 BBS 站的人,推甄台大计算机时连边的擦不上。这让人想到,假如马克祖克柏要推甄台大计算机系,大概也会是连边的擦不到。

虽然新闻媒体早年给祖克柏冠上“天才骇客”的称号,但是祖克柏在进大学前并没有什么了不起的程式竞赛 (competitive programming) 成绩。反倒是他在进哈佛前就做了一系列软体应用程式。后来创业做脸书也是应用程式起家,不是什么程式竞赛的产物。

有美国乡民曾经去爬祖克柏在 TopCoder 上的竞赛成绩,也不过是在中段而已。换句话说,他是那种做出很多软体应用,但是没什么程式竞赛成绩的类型,也就是推甄台大计算机程式组会被刷掉的类型。

假如你用程式竞赛的尺来衡量,祖克柏虽然比一般人强,但绝说不上最顶尖。只是那重要吗? 对祖克柏来说,我相信他这一生应该不会有一刻懊悔过自己没在程式竞赛有好成绩,或是懊悔没拿过资讯奥林匹亚奖牌。这边不是要反过来说程式竞赛没有价值,而是当那变成唯一有价值的事,这个教育系统显然是有问题的。

不只是在入学面,原文作者下面这一段谈论业界与学校之间巨大的落差,同样让人非常有感。她谈到“一直到去咕狗工作之后,我才越来越明白,这些阳刚的强者崇拜有多没有意义。学术工作少的可怜,学术环境问题一大堆,很多人读完博班也不过就是来业界工作,而在业界工作根本碰不到什么了不起的东西,每天在处理的可能不完全是技术面的问题,要改的代码也不会用到什么了不起的演算法。但是我工作之后就很明白,我从小到大做过的每一件事情,他都在我的工作某处用得上。因为真实的世界有很多变化,要走进真正的问题之中快速找到方法处理,而我的博班训练给了我整套跟使用者互动的基础,理解他们的问题,而我在大学吐司跟大家一起办活动,经营社团做事的经验也给我立足点去参与经营方向的讨论。”

在工程师职涯中,写程式只是其中一环,是必要但不充分的一环。意思是,你要成为程序员,你需要会写程式,但假如你只会写程式,你当不了好的程序员。每当谈这个点时,就必须推荐 vgod 前辈写的《程序员的修炼与成长》系列文。

vgod 前辈是靠奥林匹亚奖牌保送进台大计算机系,然后再到 MIT (麻省理工学院) 拿到电脑科学博士。进到业界工作时,一个人负责系统前端到后端,程式写得又快又好。但是却接连升职失利。

为什么?

在他的系列文中,他提到他主管跟他说的,原文写道“他很快点出我虽然可以一个人抵多个人用,但完全没表现出领导能力。L4 的中阶工程师和 L5 的资深工程师最大的差别不是在程式能写得多快多好的技术能力,而是能不能带领几个人一起完成一个专案解决一个大又模糊的问题。”

没错,要成为工程师你需要会写程式,但要成为资深工程师,程式是否写得快又好不是重点区别。然而,要成为资深工程师所要具备的,在传统计算机系的教育中没有被推崇。

这导致一个吊诡的现象,就是在学校时能解出别人解不出的东西会被叫电神,但真的进到业界,才发现当好程序员,你需要一堆“电”以外的软技能。先前 Google Chrome 的 DX 负责人 Addy Osmani 出过一本叫《Software Engineering - The Soft Parts》的书,就是因为他看过太多工程师在职涯无法突破,是“软”技能缺乏所致。

你可能会说,台大也是很重通识教育的学校,甚至有栋楼叫“博雅”,为什么计算机系的学生会如此聚焦在极度专业知识崇拜? 其实这也非计算机系学生特有,只是不同科系的体现方式不同,例如同样的场景换到管理学院,学生们变成追求谁实习做的多、谁实习过的公司名气更响亮。

所以或许真正该问的,是为什么台大让学生进到某个系之后,对于强或者成功的价值观变得如此单一? 就目的上,台大各个系所本身往该领域去钻深本身没有什么问题。问题是整个大学系统的设计让人把身分认同固着在自己的科系,进而让人生变得只用单一指标衡量自己。

我们还在读台大时,当时基本上每个系都有所谓“系核”、“系边”的概念,用来描述在系上活跃与边陲的两类人。为什么这个划分是以“系”为单位? 为什么不是每个人有自己在的核心,只是每个人的核心不同罢了?

关于这些问题,台大并非没有在思考或改变,起码我们毕业的前一年,台大成立了 D-School 试图要打破谷仓,让跨领域的整合得以成为学习体验中的一环。事实上,ExplainThis 的共同创办人们就是七年前在 D-School 认识的。

D-School 是一个超脱系所的存在,在那边再也没有所谓的“系边”,因为大家从各个不同学院系所来,自然没有核心与边陲之分;也没有单一且狭隘的“强者”定义,苹果与橘子本来就难比较,每个人在课程的专案中都有独特贡献。

当年一直觉得 D-School 是个特殊的结界,像是台大里的桃花源,是个很自然会有开放的心与跨领域协作发生的地方。以及有一群比起想着如何用单一指标衡量你,更在意如何帮助你发展成自己理想样貌的老师们。例如我们在台大时,遇过最具有启发性的朱士维老师;以及永远能以截然不同视角切入的刘建成老师。

如果没有当年在 D-School 被鼓励尝试走出自己的路,现在的我们大概也不会有勇气投入 ChatBun 的创业中,可能会一辈子都选择安逸地当个大厂的程序员。

在毕业后几年,看到 D-School 开出自己的学位,觉得现在的学生真的比当年的我们幸运多了。不过 D-School 毕竟在台大还是一个相对小众的地方,要让整个体系改变,相信还有一段很长的路要走。毕竟光是大型的软体系统要迁移就不容易,学校体系牵涉到更多利害关系人,远比软体系统还要复杂,要完全迁移肯定是以年为单位。

这个议题的讨论,还有非常多可以展开的面向。最后想推荐 Y Combinator 创办人 Paul Graham 的 《Cities and Ambition》 一文,里头提到每个城市有不同的气息,剑桥是知识、纽约是金钱、矽谷则是新创,除非你清楚知晓自己要什么,不然在年轻时最好多到不同地方游历。

世界很大,强的方式很多种,愿我们都能以自己理想的样子发着光。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們