论坛首页 综合技术论坛

【阿里感悟】如何带好新员工

浏览 62710 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-02-06  
fantasy 写道

在阿里,每一位新员工进来之后都会有一位导师,导师一般都是比较资深的程序员。

 

我的导师是如何带我的

      在实战中辅导:刚来一个月就直接进入项目,从小需求做起,一开始导师会花大量的时间帮我做Core Review,逐行审查,审查出不符合代码规范的代码(有些规范是没有写在文档中的)和写得不合理的代码,帮我提高编码能力的同时保障了项目质量。

 

      在公共场合肯定你做得好的地方,在团队的项目总结会中提出表扬和肯定。

 

      在私下说出你有待改进的地方,并解释的非常详细,这样既不会打消新员工的积极性,也能帮助新员工提高,如建议我不做过多的设计,因为设计上的灵活,会带来三个弊端,第一设计时间比较长,第二代码不易读,第三大部分以后都用不到这个扩展。所以只做必要的设计,以后再重构。

 

我是如何带实习生的

    由于实习生和正式员工不一样,我在上述三点的基础上增加了以下几点:

 

    计划驱动:互联网开发要学的东西比较多,对于实习生来说不知道该先学什么后学什么,学到什么程度。所以计划驱动比较重要,在工作和学习之前会给实习生列一份详细的学习和工作计划,并询问下实习生这个计划有没有问题,能否完成。学习之前我会大概和他讲解下,让他有个概念。比如webwork是一个什么样的框架,它是用来解决什么样的问题的,它和你用过的框架有什么优缺点。学习的周期一般比较短,主要是让他在实战中学习。

 

    

    定期沟通。 每两周都会抽时间和实习生进行一次单独沟通,每次沟通都会按照先后顺序谈以下三点。

  • 第一关心:询问下他对工作和生活的想法。询问下在公司的食堂吃的好不好,住的有没有什么问题。
  • 第二肯定:肯定下他最近工作中做的好的地方。比如很擅长提问,做事情非常积极。
  • 第三建议:首先给他一些学习的建议(遇到问题要深究原因,学习要学透不能浮于表面)和工作的建议,比如质量意识(自己写的代码要想CodeReview然后再自测,最后再提交)和团队合作意识(当团队其他成员遇到问题的时候,我们要主动去帮他解决,而不是让他一个人加班解决)。然后再说说最近工作中有待改进的地方。比如指导他如何进行有效的沟通。之前他问问题给出的描述信息太少,我必须通过不停的反问才知道他到底是在问一个什么问题,于是和他讲,沟通的时候要站在听众的角度来提问,提问的时候尽量多描述问题的细节,一旦听众听明白了就会马上回答你,否则听众必须通过不停的思考和反问去知道问题到底是什么,反问越少提问效率越高 

   每日CodeReview。由于实习生没有太多工作经验,写出的代码肯定会存在很多的问题,所以CodeReview变得尤其重要,否则有问题的代码提交到项目中,以后维护成本会非常大。为了避免问题太多难以修复,所以要求实习生尽量做到每日check in代码,我每日进行CodeReview代码。以下是使用我们团队开发的Tala CodeReview工具Review出来的问题。

 

 

 

      用提问的方式帮助学生思考。指导学生采用引导的方式比灌输的方式要更好些,学生遇到问题会提问,如果直接告诉他答案,他吸收的会非常少,所以一般我会采用提问的方式引导学生思考,比如这段代码还能进行优化吗?这两个SQL语句能不能合成一个?培养团队合作意识也会采用提问的方式,首先和他讲一个真实的案例,在XX公司里来了一位新员工,因为对系统不是很熟悉,文档又非常少,也没有导师帮他review代码,所以他修改代码的时候引发了一个严重的BUG,结果导致自己得加班到1点才解决这个问题。从这个案例中你有哪些体会?通过案例和提问让他意识到团队合作的重要性,开发的时候通过团队合作(CodeReview和较差测试)保证质量,出现问题也应该由整个团队一起帮忙解决。

 

      对学生的要求主要有两点。第一:尽量不要问重复的问题。说过的事情必须用东西记住,这样可以节约双方的时间。比如告诉学生开发服务器root的密码,就必须马上记住。第二:定期提问。有问题首先先自己思考下,如果解决不了就先记下来,然后选择一个固定的时间一起提问。如果想到一个问题就问,自己会养成懒得思考的习惯,而且会不断打断我的工作,影响工作效率。

 

 

总结     

     作为导师的目的是培养学生,需要耐心和责任。

  • 指导需要有耐心,实习生写出的代码肯定存在很多问题,也有可能同一个问题反复出现,出现次数多了肯定会生气,但发现后指导就可以了,相信他不是故意的,下次会改正。不能一味的去指责他怎么会写出这样的代码,谁没有经历过这样的时候呢。指责多了反而会打消实习生学习的积极性,不利于学生的成长。
  • 出现问题是自己的责任,如果由于实习生的代码引起的线上的故障或BUG,不要责怪学生,而应该责怪自己,因为自己没有严格执行CodeReview。

      

    教学相长。在带学生的过程中,学生的很多问题能引起自己的思考,让自己学的东西能更加扎实,在教的过程中,自己要理清思路,整理好后和实习生讲,讲的过程中有一种温故而知新的感受。  

公司里的东西就不要贴来贴去了。

0 请登录后投票
   发表时间:2012-02-06  
LS:不是需要保密的东东,贴出来大家长长见识也无妨。
0 请登录后投票
   发表时间:2012-02-06  
damoqiongqiu 写道
LS:不是需要保密的东东,贴出来大家长长见识也无妨。

基本同意大漠,
基本上都是个人的感悟和理解,share出来很好。
那两个表格算上公司的东西,但是贴出来感觉也是无妨。
而且也是其他内容的补充,不错。

0 请登录后投票
   发表时间:2012-02-06  
没有人带,自生自灭的飘过
0 请登录后投票
   发表时间:2012-02-06  
身为一个实习生,非常羡慕上面的方法~无奈啊
0 请登录后投票
   发表时间:2012-02-06  
羡慕中.....如此好的导师在小型或的是外包型的公司来说基本不存在

公司总希望招进来的人就是好的,而不愿意花太多时间和精力培养
0 请登录后投票
   发表时间:2012-02-06  
zui4yi1 写道
互联网的就是不一样,唉,悲剧的外包~~~全靠自己,而且提出改的声音,多半没人理

我们公司也是互联网呢.....也没有导师这一说!
0 请登录后投票
   发表时间:2012-02-06  
只能说羡慕了,自生自灭导致中国的软件落后啊
0 请登录后投票
   发表时间:2012-02-06  
阿里这种做法值得称赞啊。
老员工带新员工 有下面这些好处:

新员工能够快速提高,能够更快地为公司做贡献。
避免新员工的经验不足引起更大的生产问题
温故而知新,老员工也能提高自己。
提高新老员工的感情。

很多公司没有这种文化和制度。
新员工偶尔问问题,老员工还是愿意帮助,但经常问,老员工就会烦,因为他们认为这些不属于自己的义务。
这些对公司的发展都是不利的。
0 请登录后投票
   发表时间:2012-02-06  
新员工的第一个月很重要哟,如果公司都不管不问的,大多数都会离职......到头来就是双亏
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics