有没有人对如何指导初级程序员有任何建议? 如果你曾指导某人,你是否遵循了任何流程,还是非常非正式的?

如果你过去曾经被指导过什么样的事情你觉得最有帮助?

===============>>#1 票数:44 已采纳

尝试每天留出30-60分钟来一起审查他们的代码。 如果你不能这样做,那么除非它是非常基本的,否则每当他们进行代码提交时,都会尝试聚在一起审查他们的代码。 让他们解释为什么他们选择他们采取的方法来代替其他人。 这样的过程有助于建立良好的关系,并且真正激发学生自己思考并能够捍卫他们的决定。 学生不仅最终会找到一个他们可以信任的人,而且你会发现他们的代码和逻辑质量几乎立即得到了提高。

编辑 :此外,如果你无法承诺这么多时间与你的大三学生共同审查,那么你可能不应该指导他们,而是看看是否有其他人有一个允许它的时间表。 指导的全部意义在于积极地帮助学生的专业发展,如果没有给予他们适当的关注和指导,他们就不会学到很多东西。

===============>>#2 票数:18

我有机会在一家小型软件公司做实习生(两个中的一个),并有机会参与他们所拥有的“几乎全新”的项目。 他们让我设置了所需的一切,并向我介绍了项目实际上是什么(基本的东西,如需求是什么等)。

起初我们做了一些小任务,比如研究对项目很重要的事情(他们给了我们一个主题列表)。 我认为,这是为了看看我们能够处理多少事情,因为我们需要查看和研究的事情并非那么微不足道,而且需要花费2周左右的时间(计算我们必须为它创建的基本演示) 。 实际上,测试阶段确实没有太多“指导”。

但是,在那段时间之后,我们可以在实际项目本身上工作。 这也是我们开始一起训练的时刻,与对编程类似,除了我们三个人(2个实习生和1个'教练')。

我们从他那里学到了很多东西,但这是以一种非正式的方式,而且他并不像“无所不知 - 倾听我”这样的人。 当我们提出建议时,他会倾听并与我们一起思考他们是否有任何好处。 或者说出为什么不应该以这种方式完成一个想法...现在我想到了,他积极地鼓励我们提出建议,并考虑更好的做事方式,而不仅仅是坐在那里来自可能知道该怎么做比你更好的人的命令。

简而言之:

  • 让初级程序员(大部分)独自工作来研究手边的材料,给他一个小的TODO列表,比如查找信息或构建小型演示。
  • 检查他经常做的工作,并告诉他是否有更好的办法。 同时指出他实际做得好的项目,这样他以后就会记住这些。
  • 让他参与一个真实的项目,并通过在同一个项目中一起工作来指导他,在他有疑问时给他建议。
  • 努力必须来自两个方向:鼓励他提问,挑战'目前的做法'。 向他询问他认为应该怎么做的问题并给他你的意见。
  • 让它“愉快” - 不要让它看起来像你在发号施令。

===============>>#3 票数:13

在一个拥有大量内部IT的大公司实习期间,我与导师配对。 这种做法无疑在技术技能和商业技能方面帮助了我的职业发展。 以下是指导如此成功的一些原因:

  • 可信 :导师有超过8年的经验和完善的背景,可以利用领导和培训。 他经历过不同的挑战,在不同的环境中工作,所以他有很好的视角。
  • 真实 :导师鼓励指导,但不是那么正式,以使其成为通过动议的练习。 导师想要指导,我希望有人可以学习。
  • 激情 :导师喜欢他所在的领域,他正在解决的问题以及他正在使用的技术。 当我走进他的翅膀时,我发现这是有感染力的。
  • 尖锐和清晰 :指导者批判性地处理问题并简明扼要地构建它们。 我们的讨论中没有太多的模糊性; 我们找到了问题的根源,并指导我解决问题和行动的明智课程。
  • 有意义 :我和导师一起做的工作是有意义的工作,而不仅仅是为了保持忙碌或提高技能。 通过联合开展有形帮助组织的任务,这有​​助于集中我的兴趣并使指导过程合法化。

===============>>#4 票数:6

在我的第一个工作地点,有一个真正耐心的家伙,总能帮助我解决我的直接问题,然后教我一些重要的基本原则。 我喜欢这个,因为他会教我如何成为一个更好的程序员,帮助我保持高效。

===============>>#5 票数:3

我想我是大三学生:)我想我认为我非常重视非正式的方法。 它可能在很大程度上取决于你和你的被指导者的角色,但是如果你没有自负的话,我会说你学得最好。 打破僵局,确保两个方向都有反馈。 像代码审查(两种方式?)和偶尔的结对编程之类的东西都可以工作,如果有一个很好的匹配,它也可能很有趣!

===============>>#6 票数:3

因为在面试中我必须解释为什么我想要合作(除了需要钱)之外,我的经理确保我的第一个项目让我能够处理我认为是薄弱领域的事情:很少有Linux经验(我选择了一个仅限Linux的研发团队,所以我将被迫学习),不知道有用的文本编辑器(我真的想学习Vim),以及如何学习另一种编程语言(与学习编程时学习语言的方法截然不同) 。 他告诉我,我有一段时间有学费。

我通过阅读书籍学到了最好的知识,所以在为Unix做傻瓜之后 (是的!我不是唯一一个认为这有点晦涩难懂的人)我开始使用Unix中的Nutshell和Sobell的Linux命令实用指南 之后我打印出Vim文档并开始浏览它。 然后我浏览了几本关于Python的书,这是我第一个项目的语言。 我得到了所有的时间,我需要对这些事情感到舒服(这是真正的问题,正如我现在所理解的那样),然后开始为之前的合作项目添加功能。

据Kamikaze Mercenary所说,我现在意识到每天或每两天与某人会面进行代码审查会非常棒。

===============>>#7 票数:2

问他们接下来会尝试完成任务。 这可以让我们知道从“我不知道该做什么”到“嗯,我会尝试这个但是......”的类别是他们有自己的想法可能对起点有用。

快速浏览一下他们想做什么并提供提示,以便他们找出问题所在。 这不是给出答案,“只需取出这行代码,”建议他们看看那里有什么,这一切都是必要的

===============>>#8 票数:2

这将是我的短名单:

结对编程 - 这对许多事情很有帮助,比如加强各种想法和实践。 与经常使用它的人配对时,习惯Resharper要容易得多。

非正式聊天 - 这是我们去喝酒,去外面找人抽烟,一起吃午饭等等。在远离办公桌时,讨论可能与立即完成的工作或可能是抽象的哲学东西,可以帮助将某人的游戏提升一两个档次。 谈论各种即将到来的技术或即将发生的变化可能会令人兴奋并有助于形成联系。

反馈和建议 - 这是上述两种情况。 Dale Carnegie的“如何赢得朋友和影响人”等书籍可以帮助理解各种人际关系动态,虽然这听起来很技术性,但实际上只是关于如何以各种方式激励他人。 这里的一个关键点是要知道如何留下一些面包屑来获取一些实践,比如在暗示某些事情之后给出提示而不仅仅是给出答案。 我有各种各样的数学老师,因为我开发了一些这样的技能而得到了礼物。

因此,这部分仅仅是激励对方并试图引导他们,因为当有人为自己解决问题时,这可能是一种赋权和启发性的体验。 “我做到了!那是对的,莫伊,你的!” 当它发生时,那种自我对话是相当不错的。

===============>>#9 票数:2

根据我的经验,在指导某人时,对于受指导者来说,真正想要了解更多内容非常重要。

永远不要用勺子喂他们。 而是将它们指向有价值的东西,并让它们利用他们正在使用的项目中学习的新信息。 如果不付诸实践,知识就毫无用处。 因此,鼓励您的被指导者编写代码,编码。

===============>>#10 票数:1

我建议你开始提供你所拥有的部分真实作业,并尽一切可能使用他的代码。 换句话说,训练他替代自己。

通过这种方式,你将承诺分配时间与大三学生一起工作,他将能够看到“现实生活”。 通过真正的作业和听取生动的反馈,他将能够快速获得速度。

这种方法的缺点是它可能会过于狭隘地关注您的特定项目。 因此,请务必向受训者展示可能的替代方案,并鼓励权衡利弊分析,以拓宽他的专业视野。

===============>>#11 票数:1

几年前,我在一家小公司工作,第一天我就得到了一份完成的小任务清单 - 在代码中做一些小改动,找到并修复项目中的一个小错误。 这真的帮助我向我的导师提出了正确的问题并熟悉了环境,代码库。 这些任务很容易完成,所以在转向更大的任务之前,我有一点自信。

这种辅导方式对我很有帮助,所以我打算和我们的新同事一样。

===============>>#12 票数:0

我以前曾指导过几个初级人员。 根据他们学习的方式,我的方法略有不同。

简而言之,我尽可能地为初级人员提供了小型,自足的项目,并给他们一个相对固定的时间来完成任务。 任务完成后,我会检查他们的方法,代码和解决方案,并提出改进建议或更好的方法来处理问题。 我认为这样他们不会感到不知所措,成为一个更大的项目的一部分。

希望这个对你有帮助。

  ask by David translate from so

未解决问题?本站智能推荐:

8回复

还需要做什么? 程序员指导理解自己

我刚刚毕业于大学,获得了计算机科学学士学位,并且已经和其他数百万人一起寻找工作。 我已经在大学里学习过汇编,Java和Scheme,并且自学了PHP,HTML,CSS,Android和JavaScript。 我现在的兼职工作,我是一名兼职网页设计师,并使用Dreamweaver,Fire
11回复

向程序员解释嵌套数组[关闭]

你是如何向程序员解释嵌套数组的? 我在想一个对编程有入门级了解的人,但他正在尝试做更复杂的编码。 带数组的数组有效,但他们无法完全理解这个想法。 编辑:嵌套数组的示例: 当然,它们通常比这更复杂,也许这就是问题所在。
14回复

向非程序员介绍软件项目[关闭]

很快,我将需要为我的大学的工程学院和一大批工程技术专业的学生介绍我的荣誉项目。 虽然所有参加会议的人都具有技术头脑,但并非所有人都是程序员,而且大多数人都来自其他工程学科。 我之前做过演讲,我有信心和一群人说话,但我现在知道我之前给过的所有演讲都是CS / SE的专业和教学人员。 我想
17回复

你如何向新程序员解释OO? [关闭]

我的亲戚正在学习编程,很难理解课程。 他很难理解,例如你需要实例化它,方法不能在其他方法中访问变量,如果你在类的一个实例中更改变量,它对其他实例不会改变。 我试图使用像类定义这样的类比就像一个房子的蓝图。 实例是由该蓝图制成的房屋。 你如何解释一般的课程和OO?
21回复

采用“程序员”笔记的有效方法是什么? [关闭]

我经常多次遇到有人向我询问我工作过的错误或功能的问题。 通常通过查看Bugzila以及我的CVS报告,我花了很长时间才回想起它。 所以我试图找到一个很好的方法来记录我一直在做的事情,并寻找你的建议。 事实上,我通常会记录关于我所做的事情的几乎ZERO注释,尽管我在获取规范或某些技术内容时会
7回复

引导新鲜计算机毕业生成为程序员[关闭]

新毕业生在第一次编程工作开始时应该接受哪些关键的实践概念,以及您希望他/她多久能够提高工作效率并实际交付您期望的代码?
4回复

为C ++程序员学习基于Web的编程[关闭]

我想为我想了一段时间的项目创建一个Web界面。 在过去的五年里,我一直在用C ++(加上HLSL)进行专业编程,并在大学里学到了很多其他的知识(Java,VHDL,众多的汇编语言)。 我正在寻找好的资源来比较网络编程的不同可能性(javascript,php,python,ruby等)。
40回复

为什么新手程序员似乎避开了库? [关闭]

我注意到新程序员在这里提出了许多问题,这些问题可以使用库来解决。 当建议使用一个库时,通常他们会回答“我不想使用X库”,这是学习曲线吗? 要么 ? 只是好奇!
4回复

新程序员的玩具项目

当我第一次开始自学编程时,在完成一个教程后,我觉得我仍然无法用语言做任何事情。 所以,我环顾四周寻找可以解决的问题。 由于我刚刚学到了一些基础知识,因此查找,阅读和添加到开源项目所涉及的工作量似乎无法克服。 相反,我开始做几个玩具项目,结果非常有益。 从初学者那里看到很多类似于“我现
3回复

程序员的排队理论?

在看起来“显然足够快”但在负载下吸收性能的事情上被烧了好几次后,我开始认为在进行容量规划时我的“直觉”可能还不够,而且一些理论背景是必要的。 那么 - 社区,你能指出我在排队理论应用到编程方面的良好资源吗? 无论如何 - 文章,案例研究,书籍。 到目前为止,我发现了几本似乎相关