程序员为什么会是现在这个样子?

一直以来,人们对男性程序员的印象是不善交际的、刻板的。虽然,“技术多样性”是一个 非常热门的话题,但这一印象仍没有得到任何改善。相反,许多IT业内外人士都认为这是理所 当然的,这种刻板的印象是一种自然常态,而这种感觉正式这个行业更包容,更令人为之心动 的一个方面。那么,这种印象是从何而来呢?难道全世界的程序员的特征真的是自然演变的结 果吗?因为男孩更喜欢计算机吗?是什么塑造了我们队程序员的看法?下面是我在阅读计算机历史时发现的一些可能的解释。


程序员

Nathan Ensmenger是印第安那大学的一位教授,专门从事计算的社会和历史方面的研究。在他的著作The Computer Boys Take Over中探讨了职业的起源,以及程序员们最初是怎样被雇佣和培训的:

很少有人会花笔墨去写那些默默无闻的计算机从业人员,他们主要是工程师、分析师和程序员。他们设计和建造复杂的系统,在很大程度上使我们的社会计算机化成为可能。

这本书的标题是参考“Computer Girls”— 这一切的源头而来的。使用ENIAC电子数字积分计算机(世界上第一台通用计算机)进行编程的女性通常被认为是第一个程序员。在当时,甚至“程序员”这个单词都不存在,更不用说程序的概念了。Kay McNulty、 Betty Jennings、 Betty Snyder、Marlyn escoff、Fran Bilas 和 Ruth Lichterman这六个女人被录用负责设定the ENIAC进行方案计算。更具体地说,他们正在教计算机如何计算武器的轨迹,如何在实地被士兵使用。在ENIAC工作的女人都是从现有的女性团体中招募的,在此之前她们一直手动计算这些方案。

计算机历史博物馆山景城在其网站上有对Jean Bartik(原名贝蒂·詹宁斯)进行的采访,了解到Jean和她同事务进行工作接洽的方式。对我来说,最吸引人的是,Bartik介绍,那些最初的程序员已经意识到结对编程的价值,但却花了50多年的时间(和Kent Beck的书《极限编程》一样)才得出这样一个概念:

斯奈德贝蒂和我,从一开始就是一组。我相信,最好的设计和所有的东西都是通过搭档合作来完成,因为你们可以互相批评,找出对方的不足,然后得出最好的思路。
-Jean Bartik

在ENIAC工作的妇女(Wikimedia Commons)

在当时,计算机的“设置”是一个非常机械的过程,从早期的照片显示看,很像封堵电缆电话交换机。因此,这项工作被视为手工作业和体力活,而不是科学和高科技。妇女被称为“操作员”、“计算机”或“编码者”。 据Ensmenger所言,“编码者”一词变得和机械、手工作业及女性都有非常紧密的联系。甚至在20世纪50年代建立了“程序员”一词之后的几十年时间里,“编码器”仍然有消极的地位和性别的内涵,男性程序员也试图远离它。

没有人意识到它的到来

如果ENIAC的管理员已经知道,编程在计算机功能中起着至关重要的作用,而编程又是那么的复杂,他们可能更加不愿意给女性提供这样一个重要的角色了。
— Jean Bartik

于是,计算机革命开始了— 硬件在不断改进,许多人对计算机的进步和它光明的前景感到兴奋。但没有人真正关注软件。斯蒂芬妮·雪莉夫人在1962年创立了英国最早的软件公司之一,回顾这场TED演讲,她说“在硬件时代,软件是免费的,没有人会购买软件,当然不是因为它开始于女性。”

但这证明软件开发的挑战已经被严重低估了,因为他们发现编程是很难的。Maurice Wilkes英国开拓型计算机科学家,他发现“在[他]的生活中,要花费大量的时间去发现自己程序中的错误,这使他感到震惊和沮丧”。

50年代和60年代的媒体也关注到这些。有媒体报道水手1号金星探测器,因脱离它的航向而被摧毁。这一报道讲述了一个关于“。”而非“,”的故事,还涉及到一个在FORTRAN语言或“失踪的连字符”中的方程。没有证据表明FORTRAN甚至用于探头的编程,但这些故事强化了这种看法。因为编程是如此容易出错,只有雇用最熟练的程序员才能更好的进行操作,从而更好的完成工作。


诞生,而非制造

1968年5月31日IBM在纽约时报的广告—收到7个回复,他们认为这是一个“投资回报率很高”的产业(The Computer Boys Take Over )

公司很难弄清楚这个全新的行业需要什么技能。但他们对“错误”已经感到非常恐慌,他们需要非常优秀的程序员。但是,对程序员来说又没有明确的必要技能。公司认为编程是一个“黑色艺术,是一个非常特殊的活动”,因此程序员被“诞生了,而非制造”。在当时,几乎每一个计算机的操作都有所不同。怎么招聘这样一个行业的人呢?而需求在同一时间又迅速增加?“软件危机”已经开始。

当时业内的大厂商确定了一种能力测试,用于对程序员的招聘。这些测试被认为是一种很好的编程思想,比如逻辑思维和抽象推理。根据Nathan Ensmenger的 研究,到1962为止,估计有80%的企业在使用某种形式的能力测试招聘程序员。其中一半使用IBM PAT(程序员能力测试),这将成为行业的标准方式。仅在1967年,PAT被给予超过700.000人进行测试,它基本上成为进入编程这一职业的通道。

但对一些公司来说这些能力测试还不够,他们在试图利用性格特质来预测哪一类型的人有可能成为快乐的(并高效的)程序员。其中一家公司是SDC,在50年代由IBM聘请,做最大的软件项目之一SAGE的开发工作。1956年,约700名程序员被SDC雇用,这是当时在美国大约五分之三的编程人员。仅在5年之后,他们就已经聘请7000多名程序员。他们对自己说,他们是“训练有素的产业”。

为了在招聘过程中,更好的识别面试者是否具有良好的编程能力。他们委托两位心理学家William M. Cannon 和Dallas K. Perry为程序员量身订做了一个“职业兴趣量表”。他们的论文发表在1966年,“职业兴趣量表”类似于工程和化学的职业分布概况图。它与音乐家有微妙的关系,不是特别接近物理或数学,和其他白领工作有一定的区别。

Cannon and Perry 想到只有一个真正显著的特点,他们归结为:对程序员,人们不感兴趣。

William M. Cannon, Dallas K. Perry和程序员职业兴趣量表 1966

一个自我实现的预言

让我们回顾一下:

700 000人采取了同样的测试,以确定他们是否能成为合适的程序员。

“培训行业”的公司选择了基于模板的员工,其中包括“人们不感兴趣”的产业。

Ensmenger得出的结论:

对于普遍使用的人才初选机制,在非社交、数学计算等领域更倾向于男性,这种机制促使男性在程序员群体中占大多数;这反过来又强化了普遍的看法,程序员应该是男性、非社交、数学专业的,等等
— The Computer Boys Take Over

如果你看一下今天典型的程序员的形象,那么50年后,这又是一个多么有说服力的观点啊。我们期待这种“真正的程序员”吗?更糟糕的是,我们开始因他的形象而怀疑他的能力。

Ensmenger赋予了这篇文章一定的影响力,即使你不相信,但对我来说这起码是一个警世故事。要意识到,软件危机的压力是惊人的,由此产生的雇佣以及60年代两位心理学家对这一行业建立的整体印象,然而很多人仍然认为,这只是“自然规律”。

于是Ensmenger的书给我这些新的拼图,解释为什么我身边有这样一组同质的人。在计算机科学里有更多的女性,对吗?在她们身上又发生了什么事呢?

“我想我觉得我比较平衡”

迄今为止我读过的关于女性在计算机方面的书籍中最好的就是Unlocking the Clubhouse 。作者Jane Margolis 和Allan Fisher在1995年至1999年的4年时间里,对卡耐基梅隆大学100多名计算机专业的学生进行了访谈。他们会问诸如此类的一些问题:为什么选择计算机科学专业,动机是什么,在每个时间点上是什么在激励他们去研究学习,那些辍学学生又是因为什么呢,等等。

采访中有许多人的看法和经历都与我产生了共鸣,其他和我交谈过的软件开发者也深有同感。这里只做少量的引述:

有些人天生就是做这行的,而我不是他们中的一个。并且这绝对不是“通过实践,就能成为天生的”。

你只需要天生就喜欢,“计算机!啊!他们是最棒的!他们是我的生命!” 要知道,很多计算机科学家都是这样成长的。

我活着不是为了程序,我知道一些家伙是为了程序而生,至少看起来是。你会发现在周末除了编程,他们什么都不做,我想“他们怎么能这样做呢?”我觉得自己更平衡一些。

令人惊奇的是,几十年后“为它而生”的主题又出现在这里。许多受访的学生竟然开始对电脑和编码产生极大热情,然后这些激情不断蔓延,并包围着他们,这激情似乎超越了他们自身的热情。他们慢慢开始相信,自己不属于这一人群,毕竟计算机科学并不适合他们。在Margolis和Fisher访谈的学生群体中,这激情影响着她们,因为她们已经作为少数群体站出来,并希望在更严格的审查和更多的压力下证明自己。

“天啊,这太简单啦!”

另外动摇计算机科学研究组的信心的是,他们似乎被那些比他们知道更多的人所包围。在这简短的播客中,Jane Margolis谈到为什么家用电脑在80年代的崛起与女性计算机科学学生显著下降相吻合。在这个时候,计算机科学开始成为一种受青睐的教育,一些足够优越的家庭在他们开始大学学习之前就拥有了电脑。这个特权群体主要是男性。

Margolis听到过不止一个关于电脑被锁在弟弟房间的故事,姐姐只有在得到允许后才能操作电脑。

一个学生引用了“Unlocking the Clubhouse”的说法:

我开始对编码失去兴趣。说真的,每当我坐下来编程时,就感觉到有成千上万的人在四处走动,让我无法安心。“天啊,这么简单!你为什么会做两天才完成,我用了5个小时就完成了。”

书中还介绍了在卡内基梅隆为一年级计算机专业的学生进行的启蒙教育,教授讲了关于“真正的程序员使用C”或“Java是一种bozos编程语言”的笑话。为了调侃这些东西并感受其是群体的一部分,你不仅需要知道编程的语言,你还需要了解他们在社区上的地位。试想一下,一个医学院教授对一组刚入学的学生说“什么?你从来没解剖过尸体吗?”这不太符合常理。 但在计算机科学中,通常在开始时学生和教育工作者都认为你自己已经有大量的实际经验了。

在80年代这种下降必须有另一种自我选择的催化剂在起作用,当它已经涉及到多样性时,我们还没有反应来。虽然家用电脑已经变得越来越普遍,但该类型的家庭数量仍然比较有限。

彭博商业周刊关于霍华德大学计算机科学专业黑人学生的特辑反映了这一点。一个受访的学生谈到,“当我在谷歌的时候,我常听到,当我7岁的时候,我就学会了代码。我想,好吧,我没有。”这篇文章还谈到了文化契合的主题,在今天聘用或未聘用已成为相当普遍的现象。虽然正式的文化契合是“有趣的爱好,谦虚且有责任心”,但我们潜意识的偏见或多或少会应用在同一个笑话或同一个电视节目上,这也是文化契合中一个潜在的自我选择的借口。

用单一的模型来识别潜在的程序员

Margolis and Fisher的观点认为,大多数人只在几个点寻找对计算机的热情。引述一位高中老师的话“我还没遇到过这样的女孩”,即一个热爱计算机并且愿意通宵编程的女孩。他的一位女同行称这种说法是misassumption:对计算机和科学的热爱,女生和男生的方式可能有很大不同。

如果我们使用一个单一的模型来识别潜在的程序员,我们会错过很多潜在的学生。
Unlocking the Clubhouse

比方说,你相信一个人对于编程和计算机或多或少存在天分之说 —— 如果家长、教育工作者、榜样人物和整个社会不去说明程序员具体的形象,许多人甚至可能永远不会发现这个天资。(这样的事就发生在我身上。当我经历了两年平庸的商学院生活,跌跌撞撞毕业后才开始编程。)

另外一种筛选原则同样适用于判断一个人是否天生就是程序员,但很多人都没有意识到。研究表明,他们相信自己的智力是与生俱来的天赋,而不是通过实践和奉献精神发展而来,这对孩子会产生深远的影响。卡罗尔·德维克在她2006年的论文“数学是一个礼物吗?”中,介绍了如何教导学生了解大脑的工作情况,从而中和高中男孩和女孩之间在数学性能上的差异。理解为,随着时间的推移他们可以提高自身的技能,那些孩子们认为这是所有先天能力的表现,这对他们的大脑不断地形成新的连接有很大的影响。

我们发现,许多学生认为刻板印象是活生生存在的,同样存在于他们的微积分部分。不过,令人高兴的是,这对认为自己的数学能力不断增加的女性影响不大。与此相反,把数学能力当作礼物的女性则感觉被负面的印象包围,对她们产生了强烈的冲击。
— Carol Dweck, ‘Is Math a Gift? Beliefs That Put Females at Risk’

要了解这一点,我建议阅读The ‘Good at Math’ Myth,,或这篇关于最近的一项研究的文章,提出“相信某些领域会需要女人的’智慧’和参与”。


那我们能做什么呢?

到目前为止,我已经通过阅读相关文字,提升了对每天都发生的或看似无辜的事情的微妙的感知。我们需要更多的了解在过去50年中积累的东西,它可能会推动一个周期的进程。

Evrica Joy Baker的博文The Other Side of Diversity 中,作为一个女人,她在IT界的丰富多彩的旅程使我大开眼界。当一个人在同构环境中数年后会发生什么事情呢?比如“拇指痛”,不断地,经常下意识地试图适应,并通过这种适应使自己失去了一部分个性。

你认为什么是“职业兴趣量表”呢?它是如何影响你对程序员工作的面试以及成为候选人的方式?你又如何向别人描述你的工作情况?如何有助于程序员形象的延续?

以下是一些我们可以做的,用于调整我们头脑中的模式。

注意你的自我选择偏差。

我一直想知道的是,为什么大多数程序员都喜欢科幻小说和幻想(包括我自己)。其实,我觉得有一定的联系。现在我终于开始怀疑,如果没有天然联系的话,那一切都只是自我选择!

不要认为现状是“很自然的”。不要让60年代的少数人仍然决定今天的我们是谁,我们要一遍又一遍的打破雇用的循环周期。

别再表现得非常惊讶!

每当你听到自己或别人说“你不像一个程序员”,或“什么?你不知道_?” — 停在那里。这可能是一个无辜的小评论,并不意味着什么,但你所评论的人可能会听到五百次,你的评论可能是最后一根稻草,使他们认为他们确实不属于这一行。这就是为什么这些评论通常被称为“microaggressions”。每个人都很小,太小,但当他们每周都有一个显著的累积效应时,攻击性就会很强了。

你可能会错过解释事物的乐趣 (xkcd, “Ten Thousand”)

了解更多关于microaggressions的内容,可阅读这篇 —— 关于microaggressions在技术定型实施中有何影响的文章,来增强这种意识。

挑战“真正的程序员”的形象

最后但并非最不重要,在你的头脑中,挑战你的职业兴趣量表。举个例子,放手的观念即程序员进行一分钟自由编程,每个人完成的都很好。让我们面对现实,没有多少时间去编程来加速我们的每一件事,我们必须应对当今的一切,特别是如果你期望在一个“全栈开发”的环境中工作。开始的时候,我需要做的唯一的事情就是编写、测试和构建Java代码,我有时间来补充我多年欠缺的各种技能。新手常常会面临全方位的挑战。不只是开发、OPS、微服务,应有尽有,磨练你的手艺,写出好的测试。在上世纪60年代,它看起来像魔术,事实上,掌握这一切,只是从一发展到不同类型的魔法。唯一进步的方法就是在团队中互相补充,互相配对,不经常让对方感觉我们是落后的。


多样性是真正的巨星

在过去的3年时间里,与我合作的女性程序员的数量比7年前合作的总合还多。我从来没有想过是否介意在男性为主导的团队中工作,但现在我不想回去。那到底是为什么呢?这将作为另一个话题后续和大家分享。如果你没有机会在一个更加多样化的团队中工作,那么我只想告诉你,它是值得争取的,而且它就在那里。

本文文字及图片出自 InfoQ

余下全文(1/3)
分享这篇文章:

请关注我们:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注