什么是“无我编程”?


12

我大约十五年前第一次听说过这个词。

我的理解与Wikipedia文章TechRepublic文章中描述的理解相似:您以“友好,合议的方式将个人感受放在一边”与同事合作。它包括诸如在相互尊重和学习欲望的情况下进行同行评审,而不是觉得自己是“自己的”代码之类的事情,因此,如果有人提出建议或说有错误或需要更改它,您就不会感到防御它。

我还认为,很大程度上是要有一种态度,以与其他程序员建立良好的关系为目标,以改进代码。因此,我没有看到它与以您的工作质量而感到自豪或因您所做的事情给客户带来麻烦而感到后悔不相容。

但是,对最近一个问题的回答使我认为其他一些程序员对“无我编程”有不同的理解。那么正确的定义是什么?它的含义是什么?


7
不过,自我控制编程比无自我编程有趣得多。
作业

2
@Job:是的,正如Mythbusters所说,使用C-4可以使一切变得更好。
鲍勃·墨菲

Answers:


17

上述所有的。

Egoless编程主要与您对跟随您的程序员的尊重程度有关,后者将不得不弄清楚您对代码所做的工作,以便他们可以维护它,并且很有可能会改善您所做的工作(我知道,这似乎不可思议,因为我编写的所有代码已经很完美了;)。

我也相信,无私的程序员不会对自己的工作持教条立场。这使他们足够灵活,可以在可能并不总是如此急切地接受或无条件接受其理想主义期望的环境中工作。


我同意非教条式对建设性关系非常重要-不仅在编程中也是如此-我一直在为此奋斗。
鲍勃·墨菲

@bobmurphy我知道两种避免教条主义的有效方法。1)不要胡言乱语。2)投入时间和精力来建立拥有共同理想的开发团队。许多人放弃了2,写了没有人读的标准文档,然后慢慢滑入1。唯一的注释是关于人的感受的代码审查。与遵守规则无关。
candied_orange

8

该短语没有ISO标准含义,因此不同的人可以合法地表示不同的意思。

我相信它是温伯格在“计算机编程心理学”中创造的。他的意思是在编程时不会将自己的任何事情与代码联系在一起,因此它不是“您的代码”,而只是代码。这有助于改善代码的合作,接受对您所写内容的批评(因为它不是针对您的)和进行一般团队合作的能力。


我不认为这是ISO标准。:-)令我惊讶的是,人们暗示无知编程意味着当我的软件使用者对我编写的错误感到不便时,向他们的使用者道歉是不合适的。如果那是什么意思,我会保持自我和礼貌。
鲍勃·墨菲

@Bob:我看不出温伯格的无私之心会导致没有为错误道歉。对我来说这听起来很自负。
David Thornley 2010年

那是我不知道的。
鲍勃·墨菲

6

没有一个正确的定义,因为“自我”的概念需要很好的解释。取决于您的心理和精神信仰,关于如何尝试从生活中消除自我的答案不只几个。

据我所知,这意味着存在集体所有权,因此团队中的每个人都在为所有人的利益而不仅仅是自己谋福利。“ 大卫·洛根(David Logan)的部落领导 ”是TED演讲,从某种意义上说,第4级部落将是无私的人之一。


1

我是中年人。我去过许多不同的国家,并且有幸结识了天文学家和禅宗佛教僧侣等杰出人士。

大约两年前,我参加了几门计算机课程,以提高对编程的了解。

有一天,我的程序设计教授将“河内之塔”难题带到全班。有些学生总是吹嘘自己作为程序员的成功生活。我的教授给所有学生难题,并要求每个人同时开始难题。

所有编程特立独行者都在尽力证明自己有多聪明。首先完成难题的学生是十八岁的中国学生,对编程知识了解甚少。特立独行者不高兴 但是,我拥有30年编程经验(包括Lisp)的明智教授脸上露出了微笑。

对不起,我的英语不好。我的母语是日语


+1:我已经看过很多次了,不仅仅是编程。
Bob Murphy

顺便说一句,我也是中年(52)。在我十几岁和二十多岁的时候,我确信我对很多事情了解很多。现在,我确定我对任何事情都不了解。看着我18岁的侄子非常确定自己是一件很有趣的事情。
鲍勃·墨菲

@BobMurphy“我学得越多,我知道的我就越少”
gbjbaanb

1

我的观点(并唯一地认为)是“无我编程”一词是矛盾的。

程序员和工程师本质上是一群自负的人(包括我自己)。归根结底,当您编写代码时,您正在创建东西。当您为自己的工作和输出感到自豪时,无论您多么尊重同事,并了解将来需要对工作进行更改,当它发生时,它仍然会损害您的自我。我见过的每位工程师都会立即做出过度保护父亲/母亲的膝关节反应,以保护他们的婴儿,即使进行了全面的讨论,作者也更愿意接受需要做出改变的事实。

换句话说,我认为完全没有自我的编程是不可能的。

再说一次,只是我基于经验的意见。随意抨击我:)

... 现在我意识到此线程的年龄:P


3
仅仅因为您的同事是混蛋,并不意味着您也必须这样做。这个想法是,如果我们鼓励无自我编码,那么下一代可能会少一些初级专业人员,而更多的是专业人员。
gbjbaanb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.