有超级程序员这样的东西吗?[关闭]


14

您遇到过超级程序员吗?与“普通”的经验丰富/杰出的程序员相比,他或她的身份如何?

也。您如何与团队中一个认为自己是超级程序员的人打交道?两者都是万一他真的是,还是他不是?

编辑:全面有趣的输入,谢谢。可以收集一些信息:

出现了一些定义。忽略过于本地化的定义(将作者或其熟人标识为超级程序员),我喜欢以下几个定义:

  1. Thorbjørn的定义:长期以来始终如一地表现出色的团队的人。

  2. 自由电子,与亨利的答案有关。一个非常有生产力的人,具有非凡的能力。该说明是一本好书。

    当涉及到代码时,自由电子可以做任何事情。他们可以从头开始编写完整的应用程序,在周末学习语言,而且最重要的是,他们可以深入研究大量的意粉代码,弄清楚它,并使其真正起作用。您可以围绕Free Electron建立整个业务。他们真好。

    与最后一个定义相反,是James与天才程序员的神话(视频)有关的观点。在rwong的评论中,无意识编程也表达了同样的想法。他们对是否针对这样一个独特的程序员或团队进行优化提出了相反的意见。

这些定义肯定是不同的,因此,如果您有更好的输入,我将不胜感激。当然,也可以添加自己的名称,尽管这将有助于说明为什么它与那些有所不同。


3
是的,他的名字叫约翰·卡马克
加里·威洛比

1
我的办公桌上有一张抽屉里的小纸片,上面列出了4种自由电子的清单。
亨利

如果“超级程序员” ==“天才程序员”,请click_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
詹姆斯,2010年

请参阅Jeff对无我编程的回应。
rwong 2010年

我只想在《神话的月刊》(en.wikipedia.org/wiki/The_Mythical_Man-Month)中添加一个想法,引述了一篇研究论文,它表明一个优秀的程序员要比一个好的程序员高出好几倍。我不记得所有的细节,但是很显然,一个可以在团队中发挥作用的人具有很多价值,比其他人高几个数量级。
特拉维斯

Answers:


17

我只将“超级程序员”一词用于那些能够完成通常需要一支优秀的程序员团队并且长期稳定地工作的人。

这既适合编写高质量的代码(文档,测试等),也可以解决非常困难的问题,需要大量的知识和才能来解决。

但这需要长时间在所有帐户上提供高性能。对于那些写大量代码的人来说,谁都无法理解和维护,该术语不适用。

怎么处理?如果您确实这样的人,那么您将竭尽所能为该人提供出色的脚手架。这意味着将无关紧要的东西移开,并提供人需要的资源。请注意,我发现表现出色的人往往很谦虚。

不幸的是,您更有可能认为自己是超级程序员,而实际上不是。根据我的经验,处理这些问题的方法是使它们的性能可衡量。“ FindBugs可能找不到任何问题”,“所有代码必须具有与用例相对应的测试”,“同行评审”。

如果该代码确实难以理解,则考虑每周召开一次会议,由不是那么超级的程序员解释自上次会议以来任何人都可以匿名要求解释的代码,而任何人都可以匿名拒绝接受该代码。使其无法维护的代码库。然后,至少您已经共享了思路,并允许将来的维护者否决一段代码。这也将向程序员强烈指示哪种代码将触发他不得不做额外的工作。

(编辑:匿名的原因是,避免让不是那么超级的程序员对反对他的人进行报复)。


2
优胜者,匿名输入除外。如果团队要真正实现统一,并且“超级程序员”了解他是否确实符合定义,则他们需要学习彼此的长处和短处,以便为团队和软件的成功而共同努力,并建立信任。这是向他人开放批评的能力(在这里已进行了一定程度的尝试),以便人们找到并纠正他们作为超级程序员的缺点。
Huperniketes

@Huper,匿名是为了避免这种情况在一开始就变得个性化。如果您认为自己是超人,那么您可能不会接受过多的批评(或者首先不会问这个问题)。

2
@Thor,当您处理别人对自己的看法时,这已经是个人的了。匿名使信任更加难以发展。团队成员必须相信自己可以诚实,欢迎批评,并且公开发表重要意见。
Huperniketes 2010年

超级程序员会发现向初级程序员解释代码更容易或更困难吗?如果差距很大,可能很难解释。不是吗
Muhammad Alkarouri

1
@Muhammad,考虑到我的定义是,超级程序员可以编写干净,可维护的代码,并提供良好的文档,即使是初级程序员也可以理解(除了非常复杂的算法,由于运行时可用的东西,Java中这种算法的使用频率较低,因此我不考虑它们)。我认为向初级程序员解释会很容易,但可能需要更长的时间。

5

超级程序员是指可以比快速编译器更快地生成代码,比递归函数更强大,并且能够在单个范围内跳过FIFO堆栈的任何人。

与团队中一个认为自己是超级程序员的人打交道的方法是,使他暴露于他唯一的弱点-阳光下。


5
@Chetan:什么是FIFO堆栈?
rwong 2010年

3
@Chetan:这是无用的答案。也许您没有与如此难以置信的程序员一起工作,您开始怀疑自己是否值得。
JBRWilkinson 2010年

超级程序员应该生活在云中,并为其心灵查询语言提供公共API 。
rwong

@rwong先进先出堆栈,也称为队列。
替代

1
@mathepic:如果您可以将队列称为堆栈,是否意味着LIFO和FIFO是同一件事?(释义林肯)
rwong

3

要求此人以“ 工作中的编码员”风格写自己的一章。提交给发布者。如果被拒绝,那么该人不是超级程序员。


您的说法是否正确?(如果被接受,您可以假设他/她是超级程序员吗?)我认为可以澄清一下。
替代

当我读到他曾经是“基于Java的事务性消息传递系统的架构师”时,我对这本书的作者失去了任何尊敬。哦,好吧,至少他有辞职的感觉。
Dan Molding 2010年

1
@丹·莫丁(Dan Moulding):只要他闭嘴,让他在那本书中接受采访的程序员都能畅所欲言,我不在乎他的主张。(我刚买了那本书,很期待阅读。希望它和我认为的一样好)。=)
gablin

这个想法很好,但是发行商倾向于接受著名的程序员,而不是超级程序员。正确?
Muhammad Alkarouri

@Alkarouri:如果super具有与superstar中相同的含义,那么是的,成为超级程序员也意味着出名。
rwong 2010年

2

有些人的产出比其他人更多。

有些人可以产生比其他人更低的缺陷率的输出。

那些能够持续产生更多输出而缺陷率低于正常水平的人可能值得被称为“超级程序员”。

通常只对开明的经理有利,因为后见之明才知道或这样认为。

认为自己是超级程序员的人可能有很高的自我意识,并认为自己很好。那不会使他们好。

态度<>能力。


1

超级程序员:具有超乎平均水平的智力,并致力于编程。我说的是一个花很多时间在编程上的人,不容易退出并且决心解决特定的问题。如果有未解决的问题/错误,此人很少睡觉。超级程序员编写有效,快速和可靠的代码。超级程序员对至少一种编程语言(和技术)具有广泛而深入的了解,并且精通其他几种语言,并且可以快速学习其他所需的知识。


0

您遇到过超级程序员吗?是什么使他或她如此

具有create程序/项目,其源代码,已完成的研究中。

相信他是一个超级程序员

正如您所说的,他很难相信。最糟糕的想法是,那个人已经停止成为更好的程序员了,因为他认为一切准备就绪都是超级的,而他停止了他的发展。比编程更糟糕的是。无论如何,您总是可以要求提供证据...并问他与谁进行自我比较,以得出他/她超强的假设。

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.