当初级程序员需要帮助以始终加入并尝试对其进行培训时,您认为这是一个好主意吗?还是他们会忽略您给他们的所有“教鱼”建议,而只关注您刚给他们带来的“鱼”?知道错误是最好的学习方法,您是否让他们总是自己解决问题?还是您担心他们会变得如此沮丧和沮丧,以至于他们失去了加快速度的渴望?
您何时选择何时帮助比您更初级的人,何时退缩并让他们从错误中吸取教训?
当初级程序员需要帮助以始终加入并尝试对其进行培训时,您认为这是一个好主意吗?还是他们会忽略您给他们的所有“教鱼”建议,而只关注您刚给他们带来的“鱼”?知道错误是最好的学习方法,您是否让他们总是自己解决问题?还是您担心他们会变得如此沮丧和沮丧,以至于他们失去了加快速度的渴望?
您何时选择何时帮助比您更初级的人,何时退缩并让他们从错误中吸取教训?
Answers:
在我的一份工作中,我既在学习又在教书(因为我当然不知道所有事情,但是我不仅仅知道一些)
不要不惜一切代价将手放在键盘上。这让您和您正在教的人都感到沮丧。即使您给出了逐步的说明,当您把手放在键盘上时,也等同于给他们一段代码并说“这可以解决问题”。
据我了解:
苏格拉底式的方法,即问他们一些使他们朝着积极方向思考的问题
[即使您不知道问题出在什么地方,这也很有用,更不用说解决方案了]
我学会了帮助他们设计架构师并在那里停下来。选择正确的工具,为一个或两个复杂的问题制定总体设计,然后由他们来解决。如果他们回来寻求建议,请一小段给他们。如果他们不这样做,那就让他们成为。
对于“被烧毁和沮丧”,您是完全正确的。如果您进行微管理或自选,它们就是您想要的。最后,与您的同事建立友好的工作关系将大有帮助。获得信任和相互尊重所花费的时间将为其自身付出10倍以上的回报。
如果他们是一个优秀的程序员,他们应该找到一种方法自己完成任务。现在,在某种情况下,几乎不可能找到信息或解决给定问题的方法,只要您在合理的范围内伸出援手,似乎就在合理的范围内。不要用勺子喂他们答案。
举例来说,我今年18岁,已经独自学习多年,并且编写了一些疯狂的东西,包括我自己的编译器,并且我自学成才。我只会在我真正坚持的事情上寻求帮助(因为我一直在搜索和试验至少一天,但无济于事)。我还想提供一个反例:在编程课上,我曾经有一个学生要求我调试他甚至没有编译过的代码!
本质上,一个好的程序员,甚至是初级的程序员,也应该能够对大多数问题进行实验和研究。
我最近开始使用番茄技术。结果,如果我在不中断我当前任务的思路的情况下不能回答问题,我就开始问我是否可以将答案推迟到番茄时间结束之前,平均要延迟15分钟左右。我发现的一个有趣的副作用是,当我坐在他们的办公桌旁回答问题时,他们通常已经自己解决了这个问题。如果他们还没有的话,那我将更加准备全力以赴。
这不是学校 如果您迅速提供一个事实,他们最终可以自己找到,这不是欺骗。相反,节省他们的时间在商业上是有意义的,根据我的经验,与导师相比,通过反复尝试可以使您在正确的方向上经常进行一些小的推动,而技能的提高却很少。我希望他们在我的帮助下学习10种正确的方法来做事情,而不是9种错误的方法以及一种对自己的方法。
如果可以轻松查找某些内容,请教他们如何做。另一方面,如果您只能从经验中了解到这些信息,例如要研究哪些文件中的某些Bug症状,那么我给出一个无法解释的答案绝对没有错。
相反,更主观的事物(例如体系结构指导)应始终伴随其背后的推理。一方面,初级开发人员对他们的特定任务的思考比您要深入得多。进行交谈可以确保您不会得出结论。另一方面,它可以防止他们将规则不适用于将来可能不适用的情况。
我只能想到一个案例,我彻底拒绝继续帮助同事,那是在花了几个小时多次解释某些内容并经过几个示例之后,在此之后她实际上仍然不知道要输入的下一个语句一些非常重要的提示。那时,如果不认真学习基本面,她几乎没有希望继续她的工作,而且可以肯定的是,她只维持了几个月。
我认为上下文很重要。
如果我们要处理重要的生产支持问题,而响应时间很重要,那么我实际上会提供很多帮助以及很多解释,以便他们可以了解问题。
如果截止日期不太敏感,那么复杂性将成为驱动力。当然,您可以通过分配技能水平的适当任务来帮助新手,但是如果通过研究可以解决问题,那么我同意其他指导者的意见,即在没有给出确切答案的情况下指导他们是一个好方法。
如果他们问的问题很容易找到其他地方的答案,那么我会引导他们去做自己的工作。沿着这些思路,如果有一个非常死记硬背的过程或解决方案,让它们成为奴隶并没有什么价值,那么如果您没有方便他们检查的Wiki,那么您将感到羞耻。
当涉及到将定制知识转移到企业时,我不会说碎话。尽快讲清楚。新手需要它来帮助以后的所有事情。对业务的了解不会太快或太容易。我曾经有一个老板玩了一个小时的各种花招,试图让我找到答案。我是全新用户,对应用程序或业务一无所知,并且正在处理生产支持问题。我想尖叫:“您为什么&#@ $!玩#@&(* $%!游戏?试图拿出发票的用户正在等待答案!”
我认为您在帮助他们之前首先要问他们的问题是您是否对此进行了调查?如果是,请问他们发现了什么,并指出正确的方向。调查它通常被低估,但这是我所学到的最佳实践之一,查找有关您需要的信息可以使您自行学习,也很清楚他们必须首先尝试。
如果问题更复杂,请不要告诉他们该怎么做,而要分享一些想法,请问他们如何认为他们可以解决问题。
如果他们没有任何线索,请尝试将其分解为一个非常基本的层次,即您没有给出所有细节,而是充分描述了解决方案以供他们尝试,有一些非常有用的工具,例如算法或流程图。
总而言之,尝试在不干扰学习过程的情况下为他们提供指导,始终帮助他们,使他们在完成每个任务时都依赖于您,这将花费您的时间并且适得其反。
作为我自己的新手程序员(在我目前的工作中大约使用Perl和SQL大约有9个月,并且不了解Perl,并且b)在此工作之前花了几个月的时间修改SQL),在询问编程问题时,我尝试展示到目前为止,我所做的事情,或者在某些情况下无法正常工作(并且难以调试)的情况下,我认为可能是错误所在。在可能的情况下,我一直在尝试学习钓鱼。