2019年、2020年、2021年、2022年,每年看到申请CS(Computer Science/Engineering)的学生在逐年增加。美国、中国世界的媒体都在说同一个事情--CS的社会需求在增加,最保证赚钱的专业就是CS专业。然而,随着“元宇宙(Metavers)”的2021年升温到2022年的降温,我们不等不考虑一个事情:CS会一直热火朝天吗?太多的学生正在加入计算机科学领域。 我们很快就会看到比实际需要的人数多得多的 CS 毕业生吗?

回答是:肯定的!!!这是一个大约每 15 到 20 年发生一次的周期,通常是因为人们相信 CS 学位是通往财富的捷径。

北美计算机专业排名(CS计算机专业的现在和未来)(1)

这个图表是美国按照年份,当年CS专业的本科获得人数的统计。基本上可以看出是一个周期性的正态分布曲线。目前看来,CS的专业需求在上升,并且有一定的周期延长的趋势。我们认为,这是因为AI技术的发展和应用带来了新的社会需求。

另外,一边是对软件工程师的需求不断增加,而实际合格的开发人员数量不足以满足这种需求。笔者询问在该领域工作的人,他们说IT行业内有太多的糟糕的开发人员。当今信息技术 (IT) 的一个核心问题是没有足够的优秀 IT 工程师(而且永远不会有)。这个结论基于一个方面:内在天赋。某些人具有在 IT 方面帮助他们的内在天赋,就像其他人在数学、音乐、语言等方面有天赋一样。人群中真正有才华的 IT 工程师的比例情况是(a)很小(b)而且基本是固定的比率。

在和Bruce F. Webster教授聊天后,我们得到了更多的线索。(Webster 是 Bruce F. Webster & Associates 的校长和创始人,同时也是 BYU 计算机科学系的兼职教授。 他与组织合作,帮助他们解决陷入困境或失败的信息技术 (IT) 项目。 他还曾在美国和日本担任过数十起法律案件的顾问和作证专家。)以下是他谈话内容的整理稿:

在 1970 年代中期, BYU 的一位教授有一天在课堂上说:“如果你能够挑选项目的工作组成员,你可以从现有的团队中淘汰一半从事数据处理【IT】工作的人,不仅不会错过最后期限,而且还会提前很多。”

几年后,1985-1987年的BYU的计算机科学系的招生人数激增——从1970s的大约 120 名学生增加到 1000 多名学生。根据该校计算机系老师的观察:尽管攻读计算机科学学位的学生增长了近 10 倍,但真正有才华的学生数量与十年前大致相同。不是百分比——绝对数字。

教授们觉得一直有天赋和爱好的学生在申请CS,而该专业的巨大增长归功于学生们将计算机科学视为法律或医学的新等价物。 [注意:CS 入学人数的增长不仅限于 BYU。CS 入学率在 80 年代中后期在整个美国达到了一个主要的——甚至可能是历史上的——高峰,然后开始下降(可以从figure1中的曲线看到这个趋势)。

1990 年尤其如此,当时Bruce开始为一家初创公司(Pages Software Inc.)从零开始建立一个软件团队。Bruce花了将近 18 个月的时间聘请了 8 到 10 名优秀的软件工程师。这个过程让Bruce陈述了一条经验法则:

最后Bruce用五个单词的首字母TEPES总结了这个现象。这个现象适用于几乎所有的从事IT/AI的行业组织、公司、机构。 TEPES 代表人才、经验、专业精神、教育和技能。这是区分优秀软件工程师与优秀软件工程师的五个方面,更不用说平庸或可怜的工程师了。

有人可能会争辩说,这些相同的方面对于任何职业都是正确的。但Bruce看到 IT 存在两个主要问题或差异化因素。首先,IT/AI需求如此之高(除了偶尔的低迷),公司几乎会雇用任何会拼写“计算机”的人。其次,IT 工程师可能对特定组织(或国家)的运营和盈利能力产生不成比例的影响,甚至可能对公共健康和安全产生影响。

所以让我们看一下 TEPES。

天赋:

人才往往与标准的软件开发生命周期相关联——分析、架构/设计、实施和质量保证。有些人有大量的分析“向前看”,吸收信息并看到解决方案的路径和复杂性,而我们其他人会逃避。有些人创建了优雅而健壮的架构和设计,这些架构和设计满足了给定 IT 系统所遵循的所有相互冲突的标准,然后自然地展开为无法预料的扩展。有些人在办公室里消失了几天,然后回来时带来了数千行干净、无缺陷的源代码。有些人可以在一个复杂的 IT 系统中报告一个具有天文数字的可能状态的缺陷,然后迅速找出该缺陷的来源。 也就是说,人才在生产力和质量方面都产生了巨大的影响,但在许多IT 组织中,人才大体上被忽视、筛选不力或得不到回报。 与需求相比,它的供应有限。

经验:

几年前,当Bruce筛选面试软件架构师职位候选人时,碰到了一个年轻人。这个年轻人——他才刚毕业几年——很聪明,知识渊博,而且表现得很得体。但Bruce给了他下面这样的评价:“如果他是一条鱼,我在湖里钓到他,我会把他扔回去,等他长得更大。” 软件工程中的关键课程只能来自经验,尤其是痛苦的经验。可能是Bruce职业生涯中最有价值的一年是 Pages by Pages(基于 NeXTstep 的文字处理器)迟到的那一年。正如Bruce后来在对面向对象开发的陷阱的介绍中所说的那样: Pages 项目的第三年——开发一个成熟的、商业化的面向对象的文档处理器——Bruce正坐在办公室里,重读 Frederick P. Brooks 的 The Mythical Man-Month。当时的质量总监戴夫·克里奇(Dave Krich)路过,看了看,然后打趣道:“这不是有点晚了吗?” 确实如此。这个时候正在接近最初宣布的发布日期,Bruce的团队知道一定要超期了。但戴夫的评论和布鲁克斯的书让Bruce开始思考几年前自己愉快地开始 Pages 开发工作时希望自己知道的一切。Bruce开始列一张清单——一开始是在心里,然后是在纸上——列出一路上掉进的坑。 在那漫长的一年里,每个月都必须去投资者面前向他们解释为什么还没有发货。所以,经验很重要。

专业:

计算机工程师在工作中表现顽皮是一种自然的压力释放方式。工作中计算机工程师经常被要求在固定工资的基础上投入大量加班,有时甚至连续数月加班(软件开发的“英雄”模式)。考虑到在寻找、雇用和留住优秀计算机工程师方面的挑战,一些额外的福利会发放。 但有时会让计算机工程师陷入自己已经成熟的现象,他们开始变得傲慢自大,认为自己总是对的,认为其他人不仅是错的,而且是白痴。他们破坏团队的努力,提出不合理的要求(而不是请求),并且可以使整个项目受制于他们的意见和突发奇想。他们可以很快地将自己的个人生活和挣扎与他们的专业工作混为一谈。即使这样的工程师非常有才华——虽然大多数没有他们想象的那么多,但最终公司也不值得为留着他们而烦恼。

教育:

教育/培训在 IT 和软件工程中的作用仍然存在争议,主要是因为批评 CS 部门通常不让学生为现实世界的软件工程做好准备。 (另一方面,还有另一个论点是,太多的 CS 程序并没有真正教授计算机科学——这是一个更可怕的问题。)计算机科学的坚实基础以及持续的阅读和研究对于 IT 工程的卓越表现非常重要,并且会让你比那些缺乏它的人更有优势。 除此之外,许多才华横溢的 IT 工程师(包括更多的缺乏才华的计算机工程师)经常在浪费时间重新发明“车轮”,无论是在技术意义上还是在流程意义上都还在浪费时间和职业生命。乔治·桑塔亚纳(George Santayana)说过这么一句话:“进步远非改变,取决于保持力……那些不记得过去的人注定要重蹈覆辙。”

技能:

特定的技术技能可能是最不重要的方面,但它们是招聘计算机工程师的机构最常关注的方面。如果计算机工程师才华横溢、受过良好教育、专业且有经验,那么只要有一点时间和空间,他/她就能够快速掌握所涉及的技术。这可能是一项非常值得的投资,并且可以获得员工的忠诚度,因为学习新事物的机会(同时获得报酬)是计算机工程师最抢手的福利之一。

如果一个成熟的项目在紧迫的期限内进行,那么您可能确实需要具备相关技能的人,而不是必须经历该技术的学习曲线的人。 它可以追溯到缺乏教育导致的“重新发明轮子”/“制造所有第一次错误”的问题。 所以记住它:TEPES——才能、经验、专业、教育和技能。 相信所有这些因素都很重要,但也相信首字母缩略词按重要性排列它们(首先是人才,然后是教育等)。

花时间整理的这篇文章送给读CS和走向CS途中的同学们,希望大家对未来有所判断,对自己有所判断。

,