谁应该培训新程序员?初级还是高级程序员?[关闭]


15

在我的团队中,我们经常需要最高级的程序员来培训/指导全新的初级程序员。但是,这些高级程序员是从事大量真正重要工作的人。

我试图与我的经理争辩说,让才华横溢的初级程序员将新的程序员置于自己的领导之下是很有意义的。首先,它将使高级开发人员有更多的时间从事更重要的计划(并不是说指导并不重要)。接下来,它将使初级程序员对其工作感到有些自豪,因为他们会被要求承担这种责任,并且他们可能会在教学中学到一些东西。最终,这将为公司节省资金,因为高级开发人员的成本比初级开发人员高得多。

我的老板一直未能被说服,因为显然这是自从一开始就对这支球队工作的方式。假设已经决定必须进行某种形式的培训/指导,那么谁能为我提供更好的论据或告诉我为什么我做错了?您的团队做什么?

**我们都可以同意,资历不一定表示能力,所以假设“高级程序员”是指“顶级程序员”。


1
我希望我将这个问题写成“顶级程序员与中级到中级程序员”。虽然有一些很好的答案。
smp7d

您可以编辑它,知道...
ChrisF

哈,对已经回答的人不公平。
smp7d 2011年

我以为你是在说标题...
克里斯·

好吧,如果他们总是那样做,那一定是做事的正确方法。
SoylentGray

Answers:


11

我在上一家公司遇到过这种情况。只有少数高级开发人员指导着越来越多的初级开发人员,以至于他们无法完成分配给他们的其他任务。不久之后,高级开发人员将其与我们的经理联系起来,并决定,介于初级和高级之间的开发人员将充当导师的角色,但是对于棘手的问题,他们可以去找高级开发人员。

效果很好。在此之前,一些高级开发人员开始寻找新工作,因为他们没有在工作中受到挑战。之后,他们能够开发新功能并完成工作。您的高级开发人员如何看待这种情况?

我认为,担任高级职位不仅仅涉及领域的专业知识,电子邮件页脚中的标题或工作了多长时间。这也是一种心态,可以帮助和指导初级开发人员。还有什么比让不那么资深的教练更好地让团队中有更多资深开发商的方法呢?


2
这听起来与我目前的情况非常相似。
smp7d 2011年

21

并非每个顶尖的程序员都是顶尖的老师。我建议由可以解释您并且对公司的“环境”有概述的人(技术方面的东西,但也包括组织的联系人)进行培训。


当然是正确的,但是正确的问题可能是“这些技术上出色的前辈甚至会尝试提供更多的支持并教那些经验较少的人吗?”。我认为他们错过了工作的重要部分。我想没有人会自己成为大四。
zeroDivider

7

我重申一些已经说过的话,但我有两种看法。

业务:作为业务,您希望提高生产率并降低风险。尽管高级开发人员正在做大量工作,但您希望他们将他们对系统的知识向下传递,从而降低了风险。生产力不会受到太大影响,因为您需要给这些前辈一些休息时间来做一些不太重要的事情(教初级开发人员)。除了系统之外,他们还拥有许多初级开发人员尚不了解或掌握的学科。

尊重:将新开发人员带到自己的翅膀之下的少年就像是盲人带领盲人。大三学生尚未掌握所有要教别人的知识。同样,它可能不会奏效,因为可能没有尊重。对初级开发人员的尊重是有问题的,因为您的技能与初学者的技能可能相差不远。虽然一起解决一个问题却是另一回事。毫无疑问,高级开发人员在教学初学者甚至初中方面都受到尊重。我们都知道,当两个人或一个团队缺乏尊重时,灾难就在等待发生...


6

从另一个角度看这个。您想在这里的程序员之间传递什么样的技能和知识?如果高级程序员正在做大部分实际的重要工作,那么就谁知道哪个系统而言,这难道不能保持一点孤立吗?让初级人员了解系统,以便他们可以作为高级人员的后备,这是一个很合逻辑的方向,因为在这里,最重要的是可能积累了多年积累知识的高级知识。在我看来,指导下辈的年长者似乎是一种自然的形成。

在我看来,一个初级程序员指导另一个初级程序员并不太有意义。将一对初级程序员配对在一起虽然在某种程度上可能很有意义。由几个人一起完成一项任务,使之不仅仅是一个人的想法,这将非常有用,并且有助于营造一个更加协作的环境,使团队在某种意义上团结一致。根据您所处的环境,这可能没有意义,也可能没有意义。


4

好吧,如果团队中的高级程序员并没有真正掌握比初级人员更多的知识,只是在团队中待了更长的时间和/或在团队中具有较高的社会/政治地位,那么确实并没有太大的改变谁(如果有人)指导新移民。很有可能,无论如何他们都会趋向于平庸。

如果OTOH,从真正的意义上说,长者真的(至少明显地更接近)是一位高级程序员,那么它将产生很大的变化。大三学生可以很轻松地向街上的新孩子教不太好的做法。而且,比起学习最佳实践开始,要稍后再学习次优或糟糕的方法要困难得多

这就是说,如果一个初中有天赋,并可靠地证明了他(她)知道他(她)做关于某种工具,技术或区域,他(她)确实是一个有用的教练对这一特定领域

但是请注意,从某种角度看,指导/培训的整个目的是使老年人将一些他们不那么具有挑战性的任务委派给他人,以便他们可以专注于真正棘手的事情。为此,他们需要首先向同龄人实际教授这些任务和技能,并很好地教他们,以便正确,一劳永逸地接管任务。


4

简单的答案:进行培训的人应该是最擅长培训的人,同时也想进行培训。

有些人喜欢培训和指导。有人讨厌它。您不希望人们做他们讨厌的事情-对他们不利,对受过培训的人可能不利,并且对整个团队不利。它没有添加任何东西。同时,让人们去做自己喜欢的事情对他们和团队都是有益的,希望受训者会有所热情。

同样,有些人擅长训练,有些人则不行。有一种人与人之间的互动或智慧,使某些人能够善于理解其他人的tick嗒声。培训师应该能够以受训者能够理解的方式提供知识。好的培训师可以做到这一点,并且可以了解受训者喜欢“理解”事物,“看到”事物或“做”事物-人们学习的各种方式。糟糕的培训师会演练过的演讲且僵硬,当受训者不熟悉其特有的学习方式时,会感到沮丧。

我认为您希望受训人员获得最好的培训-全面而有效。如果您的“顶级程序员”热衷于培训,那么他们应该这样做。如果“初级程序员”能够胜任,那么他们也应该有所作为。几个人参加培训计划并没有什么坏处-这样您就可以确定谁想培训,谁擅长培训。

从您的问题中我不确定您是否是想退出培训的高级程序员(不要批评-您有更多重要的事情要做,或者只是不喜欢它),还是初级程序员想要参与其中。但是,无论哪种方式,您都在尝试做自己喜欢的事情-难道我们都不想做我们喜欢的任务吗?快乐的员工带来更好的工作环境和更好的输出。


3

在我工作过的大多数公司中,初级程序员都是经验不足3年的人。我很高兴,作为一名具有指导经验的经验丰富的程序员,可以将新程序员推荐给初级程序员进行特定主题的培训,但我想保留控制权,而不是将所有指导职责委托给仍然需要指导监督的人他们自己。


2

我发现,业务规则和设计准则之类的内容是更高级的程序员必须能够转嫁给初级开发人员甚至是新雇用的高级/专家开发人员或承包商的最关键的内容。当这些关键信息被ho积或从未解释时,问题往往会出现。也许这是您的经理关心的不仅仅是实际的编程知识。

至于编程知识本身,最好是在各个级别的团队中传递。即使是经验丰富的程序员也总是在学习新知识,尤其是在复杂的开发框架中。这种共享可以是正式的,例如在午餐和学习会议中,也可以是在时间允许的情况下通过非正式讨论。


1

我选择的导师主要是组织中顶级程序员以下的一两个步骤。

尽管您已经给出了一些充分的理由,但我还要指出一个我认为特别重要的方面:教学是最好的学习方式之一,尤其是要学得更多以使最后一些步骤从真正的良好中脱颖而出。很棒。其中一个特别重要的部分是,学习不仅要做好事情,而且要善于阐明自己在做什么以及为什么这么做。我经常发现,要做好解释为什么我以特定方式做某事的工作,我必须坐下来仔细考虑一下,以使1)我自己的理解得到很大改善,2)我经常重新评估情况以改善自己的工作。

尽管这样做可能会更加困难,但这对于社交技能相对于同龄人而言可能有些不足的程序员尤其有用。将他们从纯粹的编码中移出一些舒适的地方,进入更多的社会方面,例如辅导,可能会给他们提供与辅导者一样多的帮助。但是,显然,如果要执行此操作,则在选择配对对象时需要格外小心-错误的配对最终会伤害到他们两个。


0

我认为当导师自愿完成任务时,效果最好。在这里,我们没有一个非常正式的指导流程。有时我们的经理会想到一些具体的东西,但有时他会说类似的东西:“有人对新人的项目有个好主意吗?” 谁拥有最好的主意,最终都会进行指导。

最终发生的事情是,新员工被安排在一个项目上,该项目可以负担学习时间,并且由最熟悉该项目的人员进行指导。可能有人来这里已有10个月或10年。有时人们最终会对导师进行一些指导,但是好处是新人们仍然记得成为新人的所有困难以及克服这些困难的方式。

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.