毕业后的 5 年多时间里,在 AvePoint 一共带过 12 位研发新人,他们每个人各有自身的特点,我和他们每个人共处了很久都彼此了解,这期间有许许多多的回忆、讲不完的故事。如今,我已经离开 AvePoint,在此将这些年的带人经验做做总结,这些经验主要针对刚毕业的技术新人或者实习生来讲的,因人而异,只做参考。
新人培养可以考虑分为以下几个阶段。
- 第一阶段,基础素质和基础技术的培养学习(3周 – 6周)
a. 参加公司统一的新人培训,是非常必要的,跳过此过程会降低作业完成的质量,也无法更好的促进新人之间的关系建立和整体稳定,新人作业的过程不能跳的太快,跟着公司的 Plan 走,可使导师得到更多的权威性,新人得到更多的约束,至于 Schedule 则可以自行安排即可。一定对作业进行特别严格的要求,不可随意跳过开发类型的作业,要绝对侧重后台基础技术的学习
b. 首次谈话很重要,要强调以下几点
- 新人自我介绍、导师自我介绍,导师会对你负责,要信任导师
- 公司介绍,给新人一些远景,激发兴奋点,让新人知道自己有什么,去想想自己想要什么
- 不要玩手机,不要肆意上网,注意同事关系,多沟通交流,强调不要在一个坑里掉进去好几次
- 每天必须向周围同事问早,多向导师询问问题,不要坐等,主动性非常重要
- 遇到问题多查资料,查到的资料多总结到 OneNote、印象笔记 等,总结的内容就是日报的内容,特别是导师讲过的内容,一定要多记,比如用过的 command、一些经验的分项等等
- 要求前几周必须早来晚走,前期效率上,一定要敦促,要逼迫加班,前紧后松,养成初期的良好习惯,先紧紧肉
- 强调私人时间也要多看书学习,特别是英语,平时要多去游历,少玩游戏
c. 不要求第一周就要求编写日报,给与适量的适应时间,随后的日报要多点总结性的内容
d. 导师前期不要过度殷勤,一定要重视基础技术的学习,第一天的午餐一起吃,非常重要
- 第二阶段,应用技术和产品基础的学习和实践,前端、MVC、MongoDB、SQL Server 技术的学习,小型项目适应、组织、规划能力的建立,前端或后端主攻向的确立(3周 – 4周)
a. 学习一个小项目、小工具
b. 对所属产品的基础逻辑、后台数据结构的使用和学习
c. 针对小项目,或者所在产品,开发一个符合现实需求的 Tool,作为一个阶段小成果
d. 这一阶段一定要重视培养编码、结构的规范性
e. 培养预估能力,培养责任心,对自己说出的话、给出的截止时间、给出的逻辑负责 - 第三阶段,耐心和基本经验的磨炼,达到可以没有阻力的完成简单 bug 的处理(2-3个月)
a. 尝试加入测试 Team 深入了解、学习逻辑 (开发与测试时间,4 – 6 时间分配)
- 与测试 Team 以及周边的各位同事熟悉、了解开发流程
- 了解测试流程,了解产品逻辑,了解代码结构,了解产品薄弱点,了解现实存在的各类问题,明白软件开发不只是写代码
- 培养自身耐力,了解现实的软件开发
- 培养并行工作的能力,一人多职,一人多项目,培养工作的适应能力
b. 并行处理简单的 bug,熟悉国际化、JIRA、SVN、Git、前后端 Debug 的基本方法等流程
- 第四阶段,熟悉现实的产品开发,开始实际经验积累,完成基础培养阶段(2个月以上)
a. 接受较多的Bug,夯实基础,完全熟悉流程,完全适应 Team 环境
b. 2-8 时间分配,20% 用于开发 tool 或者学习技术,继续提升基础技术的扎实程度,至于新技术,应该在以上内容夯实以后,由新人自主的进步。
- 学习基础技术
- 开发可应用的 Tool
- 学习感兴趣的技术