11 9月

为什么女性不去编程,其中的逻辑能经得起推敲吗?

原文链接:

https://medium.com/@cobbc12/why-women-dont-code-can-it-withstand-the-scrutiny-of-logic-70ee8d88a9ed

/ Camile Cobb:美国西雅图华盛顿大学研究生,安全与隐私研究所计算机科学研究人员。

2018619日,我所在系所的教职人员Stuart Reges发表了一篇文章,认为女性在计算机科学研究和业界中从业者占比不足,这其中的原因是女性相对于男性,通常对计算机并不感兴趣。由此,在保罗·艾伦计算机科学与工程学院[译者注] 以及更广范围的公众之间引发了激烈的讨论。很多人持有不同的观点,尽管持有不同观点者心里感到不舒服,但仍然保持着相互对话。

 

我认为出现批评,还有一些令人感到不愉快的讨论是思想自由交流的一种重要且有效的部分。这样的讨论需要具备几个条件:第一,有共同的兴趣来碰撞出最佳思想;第二,对讨论进展正常,逻辑合理的论点感兴趣;第三,有意愿接受严苛的、善意的质疑。

 

本着这种精神,接下来要做的就是对Reges的论点进行严格的分析。鉴于Reges本人也对其逻辑构建出的论点感兴趣,我对他的文字进行了研究,并试图将其重新构建为前提对结论的形式。我虽然强烈反对他所主张的观点,然而已尽我最大的努力对他的论点进行善意的分析,并相信通过对论点进行严谨地重构,论点的破绽会更加明显地显现出来。出于篇幅的考虑,我没有对整篇文章进行重构,而是关注了Reges论点的关键要素:男性和女性是完全不同的(论点A),在计算机科学领域女性从业者占比过低,因为她们本不想从事这个行业(论点B),我们应该接受这样一个事实,就女性在计算机科学领域从业者占比而言,目前已是恰到好处的结果(论点C)。

 

首先要关注的是Reges的说法,即男性和女性在根本上是不同的。可以这样重新组织一下语言(括号内是对文章原文的引用):

 

论点A

 

l   前提1:男性和女性对成功和失败有着不同的看法(“……男性相信自己的成功,低估自己的失败,而女性更相信自己的失败,却低估自己的成功”)。

l   前提2:男性和女性对生活方式有着不同的优先级(“……男性和女性有着不同的优先级”。举例说明,女性对“人、家庭、生活平衡、读小说和良好的睡眠”更感兴趣”)

l   前提3Reges:“如果男性和女性在基本方面没有差异,那么上述两项前提该如何解释呢?”,“为了更符合文章的逻辑结构,可以这么说,当且仅当男性和女性在基本方面存在差异时,前提1和前提2才能成立”。

l   结论1:男性和女性在根本上存在差异。

 

这在逻辑上是合理的,但这听起来合理吗?也就是说,所有前提都成立吗?并不完全成立。前提1和前提2都很容易被证伪——你只需要找到一个反例来证明任意一个前提不成立的即可。这样的例子并不难找:女性也相信自己的成功,男性也在意自己的失败,女性也可以不在乎睡个好觉,男性也可以关心家庭,诸如此类。假设我们把它们重新定义一下,说得略微不那么绝对,这样的话,一般而言每个断言在统计规律性上是可行的。那么,这个论点逻辑上合理了吗?仍然是不合理的,Reges所陈述的前提1和前提2只是在男性和女性在基本方面不同的前提下(前提3)才有可能。也就是说,前提3是正确的,只是基于男性和女性在基本方面不同这样的前提下。从逻辑上来说,这是没有根据的,而且从科学上来说,我们有直接的反例来证明社会因素在形成具有统计学意义的身份群体之间所存在的差异

 

虽然我们认同,一般而言男性和女性在社会属性相关方面存在差异,但在逻辑上或科学上都不认为这些是所谓的“基本方面”,这些通常是社会影响造成的差异。Reges说,为了支持任何多样性和包容性这样的目标,人们必须承认男性和女性在基本方面是不同的。但这不是事实。像“男性”和“女性”这样的标签只是方便使用,但并不能完美地衡量某个领域里具有各种不同经验的人是否具有代表性。重要的是,在社会中还有许多其他的经验在我们的圈子里没有很好的体现(像计算机科学这样的范畴,更确切地说像保罗·艾伦计算机科学与工程学院这样一个范围)。

 

在证明第二个主要论点的时候也许我们运气会更好一些,也就是说我们需要将女性在计算机科学领域不具有代表性的原因归结为是她们不去追求,是自由选择的结果。这个论点可以重构成如下形式:

 

论点B

 

l   前提1:少数女性选择攻读计算机科学学位或者职业(“女性不成比例地选择相对计算机她们更感兴趣的专业”)。

l   前提2:一个人永远不要将充分的自由选择归因于是被压迫造成的结果。

l   结论2:我们应当将女性在计算机科学领域不成比例的现象归因于女性自由选择的结果(“……我相信在计算机科学领域,女性相对男性,更不会选择计算机科学作为自己的专业,也不太可能去追求去当一名软件工程师作为自己的职业生涯,这是男女性别之间的差异”)。

 

如前所述,这显然不是一个逻辑上说得通的论点。因为结论不一定来自前提。然而,如果我们加上几个还未说明的前提,就可以更贴近论点了:

 

论点B(调整后):

 

l   前提1【前文未明确说明】:自由选择是在没有“人为障碍”的情况下作出的选择。

l   前提2【前文未明确说明】:压迫是“人为的障碍”。

l   前提3:大多数女性不选择攻读计算机科学学位或以此为职业。

l   前提4【前文未明确说明】:女性选择不攻读计算机学位或以此为职业通常是自由的选择。

l   前提5:不应该把充分的自由选择归因于压迫。

l   前提6【前文未明确说明】:自由选择解释了女性在计算机科学领域占比不足的现象。

l   结论2a【前文未明确说明】:我们不应该把女性在计算机科学领域从业人数占比不足归因于压迫。

l   结论2b:我们应当将女性在计算机科学领域从业人数占比不足归因于自由选择。

 

这样在逻辑上就更贴近论点了。但这样听起来合理吗?换句话说,每个前提都成立吗?我们目前添加了前提1和前提2(然而值得注意的是,Reges对压迫的定义与相关文献中关于这个话题的定义并不一致,无论是他对这个问题个人化,过分强调个人认知的因素,还是他将压迫降级,用于公然且有意识地努力去否认一些因素。相比之下,与此观点相关的重要文献都坚持了这一定义,定义也承认一些因素,这些因素可能更加具体细微,而且可能根本不涉及个体压力的制造者。例如,艾瑞斯·M·杨(Iris Marion Young)在2011年于普林斯顿大学出版社出版的Justice and the politics of difference)。

 

前提3是有统计数据证明的,因此看起来还讲得通。前提4要加以证明就比较困难了,并且看起来也并不正确。但为了进行论证,我们假设该前提成立(然而值得注意的是,我们有足够多的证据表明,这些选择完全是“自由的”,不受其他因素的制约,而其中的某些因素Reges似乎也是认同的)。

 

前提5则是让人匪夷所思之处。坚定的口气中并没有附带任何相应理由。Reges给出了很多女性出于不同原因选择计算机科学之外其他领域作为职业生涯的例子,但并没有给出任何论据来证明,当自由选择是一种充分的替代解释时,会将解释强行归因于压迫,这是站不住脚的(这一点尤其令人费解,因为这样会导致一种局面,哪怕对压迫的解释再完美也比不过仅仅充分的自由选择这种说法更令人信服)。此外,要使这一前提成立,下列一项或两项前提必须成立:

 

A:压迫和自由选择是互斥的。

 

B:充分自由选择的说服力总是优于任何程度的压迫的说服力。话说的过于绝对也许会令人生厌,也许一个人可以通过使用更温和的语言提出更有说服力的论点。然而,正如Reges的文章中所明确指出的那样,任何对此观点的削弱都可能从根本上动摇这一论点的实质。

 

在这种情况下,我们还不明确为什么需要AB这两项成立,并没有更深层次的理由。为什么不能用自由选择和压迫双重因素作用来解释呢?由于压迫的力量如此地隐蔽,是不是有些事情看起来就像是自由选择的结果呢?为什么自由选择被认为是首要的,难道我们不能将压迫作为更显著的原因吗?

 

再看看前提6,我们可以看到这个观点的真实性取决于如何去充分地进行解释,但没有多少论证来证明其正确性。我们就以前提4为起点,但是证据是否充足,什么标准的充分性是可以接受的呢?

 

所以很明显,Reges的第二部分论点存在一些严重的问题。虽然有些表示习惯的差异可能归结为自由选择似乎是合理的,但并没有明确的迹象表明这是唯一的,且是最好的解释。

 

我们来看看Reges论点的第三部分,看看是否能挽回一下。Reges所持观点的第三个关键之处在于,我们不太可能对增加女性在计算机科学业界的占比取得任何进一步进展。关于他的这个论点,加上一个附加前提会使其更接近逻辑效度。

 

论点C(调整后):

 

l   前提1:让女性明白她们是否应该对男性心怀不满,也让一些男性对自己及他人所作所为感到内疚(“我担心这样做不但不会帮助女性在科技领域人数占比取得进展,反而更会使积极的信息转换为有关男性行为不当相应负面的信息。女性要自己明白是否要对男性心怀不满,而男性也会为其行为的不妥感到内疚。这样的信息不会引起女性的注意,而男性会发现,在女性面前,他们会觉得自己比在其他场合下更尴尬”)。

l   前提2:前提1是弊大于利的(“我认为‘前提1’弊大于利”)。

l   前提3【前文未明确说明】:我们应该避免前提1弊大于利这种情况。

l   前提4:我们不太可能在女性占比方面取得超过20%的进展(“我们的圈子会不可避免地面对这样一个困境,不太可能在吸引女性从事计算机科学方面取得进一步进展”)。

l   结论3:我们应该接受女性在科技领域人数占比约20%的事实(“……诚实地说,女性在科技行业拥有20%的占比或许是我们能够实现的最好结果”)。

 

我们再来检查一下每个前提及其本质含义:

 

前提1包含很多迂回曲折的内容。从叙述女性的成功到男性行为不妥的“转换”时,Reges提出了一些不合理的假设,包括:(a)我们目前的叙述完全是关于女性成功的内容,而不是男性的行为有哪些不妥之处;(b)这两种叙述不可能同时存在。这个前提也使人不禁要问:对于那些在在科技领域表现糟糕的男性(或任何人)我们该怎么看待?

 

此外,上述“转换”的结果与Reges的预期结果(即,在美国,女性不知道自己是否应该心怀不满,男性对其不妥的行为感到内疚,女性觉得有关男性的负面信息信息并不吸引她们,男性在女性身边会感到更为尴尬)之间的因果关系并没有得到论证。这导致了一些列问题,需要进一步解释才站得住脚。

 

l   关于“转换”的因果作用问题:为什么叙述的转换过程中可以得出下面的结论:

 

——女性想要知道她们是否应该心怀不满吗?

——男性会感到内疚吗?他们会觉得自己应该做些什么来改善这种状况吗?她们会不会采取积极地防御的态度而撰写文章长篇大论地来表达他们的沉默呢?

——女性不会觉得那些有关男性的负面信息具有吸引力吗?

——男性和女性在一起会感到尴尬吗(他们是否已经感觉到某种程度尴尬了呢)?

 

l   关于所假设的前提当前状态的问题:是不是很多女性在某种程度上对计算机科学领域占比过少的现状没有心怀不满?是不是女性并没有发现计算机科学不吸引她们的地方?是不是男性并没有对不妥的行为感到内疚呢?

l   关于预期结果所隐含的负面影响的问题:为什么女性感到愤怒是件坏事?为什么男性对别人的不妥行为感到内疚是件坏事呢?为什么女性不觉得这些信息具有吸引力是件坏事呢?为什么男性在女性身边感到尴尬事件坏事呢?

 

前提4似乎完全可以用Reges的观点来加以证明,尽管各方共同努力提高了女性的占比,但近年来女性的占例“停滞”了。虽然我们承认事实的确如此,但从逻辑上讲,我们并不清楚这种妥协的必要性在哪里。比如,事情之所以停滞不前,可能是因为我们一直使用的战术已经走到了尽头。造成女性占比持续不足的主要原因可能是最难克服的。此外,这些因素都不能说明我们能够取得进展的可能性有多大。因为任何潜在的进展都取决于我们的实际行动。前提4和结论都不是所需的,也是不合逻辑的,是一个失败主义者。

 

 译者注:20173月,美国微软公司联合创始人保罗·艾伦向华盛顿大学(University of Washington)捐款4000万美元,微软公司亦捐款1000万美元以示对艾伦的敬意。9日,华大校董会通过了将计算机科学与工程系升格为计算机科学与工程学院的决定,学院的名称为“保罗·艾伦计算机科学与工程学院”。

https://blog.csdn.net/csdnnews/article/details/82321774

30 1月

邪恶的编码魔咒,你中招没?

原文链接:http://9tabs.com/random/2017/12/23/evil-coding-incantations.html

文 / Jekyll

自从我观看了Gary Bernhardt所推崇的视频以后,就对某些编程语言的怪异表现着迷了。一些编程语言比其他语言有更多令人感到意外的表现。例如:有一整本关于Java语言的书,专门介绍它的边界类(Edge)及一些特性。相应的,对于C++语言我们可以参考它的标准规范,花上200美元即可。

下面是我最喜欢的内容,是一些令人感到惊讶、搞笑的内容,还有一些像是魔咒。一般来说,使用这些有着特殊行为的代码被认为是邪恶的,因为你的代码不应该给人带来惊讶的感觉。如果你执意要去做下面这些愚蠢行为的话,会有不少洋相等着你呢。话虽如此,知识就是力量呢,我们开始吧。

在Python 2中对True进行了错误的重赋值

英文中的Two和True的发音是押韵的,但这并没什么意义。

 幸好Python 3以来将True、False和None作为保留字后,重复赋值的做法就会产生SyntaxError这样的错误。但这样奇怪的做法远比你在其他人的标准头文件中用#define true false少得多。

Java和Python语言中不可思议的表现

对于Java程序员来说,“==”运算符的语义常常令人感到困惑。但是,即使是一些微不足道的场景,操作符的不一致性表现也会使情况变得比较复杂。即便这样做能够提升程序的执行效率。

在[-128,127]之间,JVM将使用同一个引用。更令人称奇的是,python语言也有同样的行为。

即使变成负值,结果也是一样的。

相同的实例代码中,python语言解释器的整数区间下限似乎是-5。在[-5, 256]范围内的整数区间的得到了相同的ID值,这样就更奇怪了。

似乎使用破坏性赋值会对既有规则有所改变。我不知道为什么会是这样,实际上我遇到过一个堆栈溢出的问题并试图去理解它。我的猜测是,内存中一个列表里重复的值是指向相同对象的。

C语言中的反向下标

反向的下标符让任何一位开发者都会感到头疼。

这种写法能够运行的原因在于array[index]实际上只是*(array + index)的语法糖。多亏还有这样可互换的性质,我们可以将数组名和其索引进行互换而得到相同的结果。

C语言中的“一直走”操作符

当第一次看到–>操作符的时候,看上去似乎是语法错误。编译的时候,它看起来像是一项没有被归档的语言功能特性。不过,这些想法都是不对的。

操作符–>实际上是两个操作符,在所举的例子中被解析为(x–)>0。众所周知,这样做在成品软件中会造成相当大的混乱,极为邪恶。

C语言中的sizeof运算符

运算符sizeof是一个编译时运算符,它提供了有趣的属性。

由于在编译时sizeof运算符的实例就进行了运算,那么x+=1就不会被执行。同样有趣的是:研究表明printf(“wtf?”)这行代码是最典型永远不会被推入堆栈中的情况。

Lua、Smalltalk、MATLAB以及更多语言的索引从1开始

/r/ProgrammerHumor/这个目录下有很多索引从1开始所闹的笑话。令人感到惊奇的是,事实上很多编程语言的数组索引都是从1开始的。

Ruby语言中0的值是true

……也只有Ruby语言。

修正一下:在reddit站点上有人指出,Lua、Lisp和Erlang语言也是如此。

C语言中的Trigraph、Digraph和Token

由于历史原因,在C语言中有那些非字母和非数字符号有其替代符。

我希望这篇文章能够让您感到有趣,还可以在reddit网站上进行讨论。

http://blog.csdn.net/csdnnews/article/details/79191257

18 8月

霍尼韦尔黑客马拉松(Honeywell Hackathon)参赛记

黑客马拉松概念源自美国。一群高手云集一堂,几十个小时里开发出一款插件。参与黑客马拉松的人,除了热衷钻研技术的软件工程师,还有来自风投公司的团队,累了或坐或卧,现场休息,在几十个小时内拿出作品,择优而录,是“世界上最酷的开发者狂欢”。

“黑客马拉松”就像程序员版的《美国偶像》,极其火爆。有了更加易用的软件编写工具,加上各公司乐于让第三方分享他们的数据,2011年美国举行了200多场“黑客马拉松”(全球近20个城市分别举行类似活动)。结果是催生了一系列创意和新兴企业,光是围绕苹果的iOS系统,从2007年开始,就开发了50多万个插件,为程序员们带来30亿美元收入。

“黑客马拉松”规模各异,可能是在酒店自助餐厅举行、只有20个程序员参加的小型比赛,也可以是在13 .3万平方英尺的仓库举行、参加者多达500人的大型赛事。

拥有102年历史的霍尼韦尔航空航天集团怎能忽视这样高大上的编程赛事呢……

本次大赛由70位工程师,产生了20项创意。其中7项创意脱颖而出,分别斩获金、银、铜以及特别奖项。我们的团队由来自Aero Service Team的三位工程师组成(Shun Wang, Yiheng Ding, Yunpeng Bai)

拿出创意

使用JSON格式的数据表示AWC公共气象信息,将这些实用的信息实时发送给飞行员。

本项目原始创意由航空工程师Andy Li提出。遗憾的是由于他忙于准备去美国总部出差的事宜而没能参赛,团队借此机会,谨致谢忱!

组织团队

共3人,Shun Wang(iOS客户端), Yiheng Ding(服务端)和我(iOS客户端、推介),另外,Shun Wang和他的爱人(UI设计师)还承担了部分界面设计工作。

实现创意

经过十几个小时的奋战,完美地实现了所有创意点。项目名称叫做“Before Boarding, BB”,意即飞行员登机前查看。还提交了应用的Logo。

演示成品

10分钟时间包括简单陈述创意内容,演示PPT,讲解潜在应用市场和商业发展潜力。

面对评判

经过数月漫长的等待……

领取奖金

比赛项目最终获得了铜牌。洪荒之力有没有?一笔种子基金(seed fund)已经发放,用于以该作品为蓝本的商业项目创意的开发。经费可自行支配,购买项目所需的任何设备。

5621302A42EBE45BE1132831920540BB

图一 比赛现场

1A7EDC51AD3C2F21E244647D013075D0

图二 专心比赛

D2D91B92F294668CA540B0B84375BCBE

图三 后勤保障有力,可以使出洪荒之力

7BB24E82DF70373756F03BF5F6E7C447

图四 颁奖典礼

F92CA29486BE38EF3AB1241FE25C1924

图五 领取奖杯

每一位工程师在参赛过程中必然会有所斩获。祝愿参加黑客马拉松的小伙伴们在今后的人生道路上深耕不辍,绽放英华!