中国领先的IT技术网站
|
|

【IT观察】程序员培养新人的方法论

有读者向我抱怨所在公司是“技术保密”型的,每个有经验的程序员都生怕新人学到了自己的技术后取代自己,所以他感觉自己成长很慢。其实在团队里培养新人,既能让新人分担简单、重复、繁琐的初级工作(比如“个人中心”模块,难度不高,对耐心要求高),又能加深自己对不常见的问题的解决办法,是有利无害的做法。培养新人不能靠填鸭式的说教,而是要讲究一定的方法和步骤,就是所谓的“方法论”。

作者:玖哥来源:51CTO|2017-10-09 15:04


【51CTO.com原创稿件】有读者向我抱怨所在公司是“技术保密”型的,每个有经验的程序员都生怕新人学到了自己的技术后取代自己,所以他感觉自己成长很慢。其实在团队里培养新人,既能让新人分担简单、重复、繁琐的初级工作(比如“个人中心”模块,难度不高,对耐心要求高),又能加深自己对不常见的问题的解决办法,是有利无害的做法。培养新人不能靠填鸭式的说教,而是要讲究一定的方法和步骤,就是所谓的“方法论”。

指教

制定学习计划

刚入行的IT新人大多是在校学生、应届毕业生或半路出家的传统行业改行人,想成为一个合格的IT工程师必须经过一个循序渐进的成长过程,我们可以依照我们入行时候的学习顺序帮助他们制定一个学习路线图(这些方案是有例可援的,51CTO出品了最全IT知识体系图)。同时IT行业是一个瞬息万变的行业,曾经如日中天的Flash和J2ME两个技术领域早已成为了昨日黄花,我们也有责任帮助新人少走弯路。

小刚是大四上学期的时候成为我的实习生的,尽管毫无实践经验,但好在他是科班出身、基础扎实并且聪明记性好,更难得可贵的是他对Android有浓厚的兴趣和钻研精神。我先把我的几本Android书籍借给他看,然后又依照51CTO出品的Android知识体系图(去年的Android知识体系图内容较目前版本略少,缺少Kotlin等内容)给他制定了一个学习计划。我还给他指出了Android学习中的几个大坑,比如eclipse已经过时了、Google Map不适合在国内使用等,避免他在书上的某些不合时宜的章节浪费时间。

手把手做示范

新人入门之后,肯定急于表现自己,毕竟第一次拿锤子的人看什么都像钉子。他们眼高手低的样子像极了当年的自己,我们除了让他们自己写几个demo练手外,还可以把项目中简单且不重要的部分交给他们,然后逐渐提高难度和复杂度。重要项目是不能交给刚入门的新人的,上一个没学会走先被派去跑的人叫马谡。把简单、重复但手生就容易出错的工作交给新人去做,有助于新人夯实基础,同时自己也能腾出时间研究一些进阶技术,是一个一举两得之举。

小刚看了几天书,我又让把SVN的地址给他,让他熟悉熟悉代码。我尽量交给他一些简单的工作,比如看着UI图画布局、新建Activity或Fragment以及在AndroidMainfest里声明permission和activity,毕竟我也是从分不清layout_gravity和gravity的区别闹出过笑话、访问不了网络急得满头大汗到头来发现忘记声明权限的时候走过来的。做项目第一天他就向我提出了一个问题:我绑定控件的方法怎么和书上的不一样?我就向他介绍了用ButterKnife替代findViewById的好处。

及时沟通交流和review

新人就像种子,播种下去后不施肥除草就等于让他们自生自灭,所以及时与新人进行沟通和交流是很有必要的。沟通和交流可不仅仅是回答他们的问题,解决他们的困难;还要帮助他们温故知新,还要传授他们一些零散的知识点,还要review他们的代码——毕竟谁都不是一开始就能写出高性能、高可读性、高可维护性的代码的。

小刚每天上班时和我一起做项目,遇到问题及时向我请教,我总是在解决了他的疑惑后传授他几个解决问题的小窍门。下班后我俩经常学习一些新的知识,有时候帮他review他的代码,这时候能发现他的好多问题,比如“万能Activity”呀、莫名其妙的文字跑马灯控件呀、还有用Timer写的倒计时之类的,我就给他讲解了MVP架构、“android:ellipsize="marquee"”和Android倒计时类CountDownTimer等知识。

放手让他独当一面

车总是要上路的,新人有了项目经验后,就完全有能力独立完成任务了,这时候要放手让他独立负责一个项目的整个生命周期。在实战中不但可以检验学习成果,还可以让他看到自己有哪方面的欠缺。

小刚在我的指导下,进步的速度就像雨后春笋,每天都看得见成长。很快我就放手让他独立完成一个完整的项目(当时微信小程序尚未问世,再简单的业务想要从移动互联网领域分一杯羹都要做一个App,现在应该再也不会有那么简单的应用了),他拿到项目的需求、素材、接口文档等资料后,就展开了工作,因为有了前面几个项目的经验,这个项目独立完成起来也十分顺利。

代码之外

IT行业更新换代速度如梭似箭,做一名仅会写一种语言的程序员是一条死胡同,程序员真正的竞争力在代码之外。首先我们要用我们自身遇到的瓶颈向已经完成入门的新人灌输职场危机的观念,然后才能提升他们在代码以外的能力,比如解决疑难问题的决心、无私分享的开源精神、硅谷名企的企业文化等。

小刚的技术水平很快就从毫无经验的实习生水平成长为半年经验的初级工程师水平了,我在对他的进步表示肯定和鼓励的同时也没忘了向他传授一些代码以外的东西。首先我告诉他不要拘泥于Android乃至移动互联网这个领域,要放眼整个IT行业,于是把他拉入了51CTO开发者交流群③群参与每天的IT话题讨论;然后我推荐他给51CTO MDSA频道投稿,向广大同行分享自己的工作经历、职场感悟和技术干货不但可以践行程序员必须具备的开源精神,而且还可以获取不菲的稿费收入。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

【责任编辑:何星 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C#入门经典(第3版)

本书将全面介绍C#编程的所有知识,共分为5篇:第1篇是C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,应有尽有。第2篇是Win...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊