这些年前后带过很多新人,仔细算下来估计有近100个以上了,每年大概带10人左右,把带新人的感受写下来供大家参考借鉴,由于我从来没有在一流牛B软件公司呆过,只能说是中下游的草民软件公司的带人经验了,总的来说,还算是规范的专业软件公司了虽然与世界知名的软件公司无法攀比。
首先不要指望新人成长太快、不要总是跟自己现在的能力比,我们毕竟是写程序有10年8年了,他们还刚毕业、刚进入这个行业,有很多应该知道的常识都不知道,当然也不知道天高地厚,想想我们自己10年前是什么水平?每个人的提高成长都需要漫长的、弯曲的折腾着前进的漫长路程,拔苗助长是未必都能见效的、大跃进理论上是可行的实际是残酷的,脚踏实地一步一个脚印才是真,再说了,牛人还会来我们公司打工嘛?早被牛公司盯上录用了。
不要以为给他们把事情都讲明白了、详细要求都提好了,他们就可以做出来了,他们不是老员工、不是高级程序员,要在纸上给他们画清楚页面详细效果,每项注意事项都记录好,不光这些弄好了就可以了,还要给他们找个实实在在的参考的例子程序复制粘贴,他们会更容易上手完成工作任务,说白了你自己做比他们还快,但是他们总需要一个成长的过程。不可能是一步就博士毕业了,还得从幼儿园、小学、初中一步步进步,他们毕竟是实习生、新员工。
不要指望那些简单的道理他们都懂,你要把他们当成傻瓜,给他们仔细的上基础技术知识培训、例如管理方面的常识,然后让他们每个人都讲解一遍,确认他们真的懂了,公司的行政管理上的规章制度、薪资制度等都最好培训一下,我们部门是每个人把公司的规章制度打印出来读一遍,然后签字,表明他们都已经了解了这些,当然我们更以技术上的培训为主。
时间是宝贵的,活了一天就是少了一天生命,而且是很多人浪费一天,那对公司来说更是残忍的事情,每天都需要布置明确的工作任务,每次布置任务后,你不要指望最乐观的效果,要指望最糟糕的情况,就是你自己动手做绝对比他么快5倍以上,但是还是要让他们自己折腾折腾,给他们及时检查程序、修改程序,然后让他们做纪录,给他们讲解为什么要这么写才对。
工作任务越细腻越好,你总不能给一个新来的,3个月,做一个进销存,那是不实际的,或者1个月做一个OA出来,若真的这么好管理,那公司养你干啥,早让新人来替换你的工作岗位了,新任更听话、成本更低。
没有检查验收通过的工作,都可以视为0,因为很可能全盘被推倒,或者帮的是倒忙,开发人员往往说开发了90%了,接着还有10%的工作,但是后来发现,这个10%才是真正的90%,因为后面花了9倍的工作时间,才真正把这项任务完成,所以我从来不相信开发人员报的进度,我只会当个参考值,真正检查验收过的,才是真正的进度。
新人随时可能会走,他们身在本公司总会觉得另一个公司前途更好,工作环境更理想,薪水待遇会更高,或者已经学到足够的本事了想闯闯看,看看外面的世界是不是更精彩,他不会知道天下的乌鸦都是黑色的,不来回折腾几个公司消磨几年时间,总会觉得有梦想中的理想工作。最聪明能干的新人,一般是最早会辞职跳槽的,我们一般希望走中庸之路,这些员工一般才是最稳定一些,甚至是最不聪明的员工是最稳定的,以为他想跳槽也跳不了,由于新人的不稳定性,所以不能把核心的工作安排给新人做,他做了一半拍拍屁股走人了,你说找谁擦屁股呢?
你让他们用SQLServer他们会觉得Oracle更有前途,让他们用Oracle它们会觉得MYSQL更牛B,你让他们写.NET程序他们会觉得学Java更有前途,你让他们做B/S他们会好奇C/S系统,他们会觉得你没在做的那个技术含量更高,更有前途,你想让他们搞东他们会想搞西,甚至想研究Linux系统才是牛B的、收入才会高,好奇心强,定力不足,没有稳定的立场。
新人、甚至是公司的老员工,对公司的开发平台都没兴趣,敷衍了事的比较多,反而对其他公司的产品、平台更有兴趣,对国外的开源更有兴趣,但是学了,也没能力改进公司的开发平台,学会了,理解了,与能用,能改进,能整合还是有很大的差距。
新人怎么带,他们就会变成什么样的,自己稀里糊涂,跟着你的新人也会稀里糊涂,你努力拼搏,新人也会被熏陶,一个公司的文化气氛是什么样的,新人也会被改变成那样的,这就是所谓的入乡随俗吧,有些公司5:30一下班,工作任务有天大的重要事情还没解决都走人的,新人也会觉得5:30了下班是天经地义,整个公司都可以上网聊天看新闻,新人也会觉得这样是天经地义,一般第一个工作影响人的很多方面,若第一个公司很厉害,一般这个人未来的几年也会蛮厉害的。
若什么事情都能依赖新人做好,那真的软件公司,想什么时候开就什么时候开了,招聘20-30个新人,学过IT知识的,那就每个人安排合理的工作岗位就可以开软件公司了?没那么简单,一般软件公司走上正轨的道路,一般会烧1000万左右的学费,这也是正规软件公司的门票钱,烧了这些钱了,老板也就明白软件公司怎么开了,这不是我讲的,我一个朋友跟我讲的,我仔细想想,也的确是有道理,我的好几个老板,烧的学费,可比这个数目多多了。
公司的开发平台,相关文档等,当然还有其它的,都是靠钱烧出来的,这一般不是短时间能积累出来的,就算快速堆积在一起了也很坍塌的。
人的精力是有限的,往往日常工作中还需要处理很多事情,自己手头上的事情需要做好,同时需要分配布置任务、分析系统、与客户打交道、与其他部门、领导打交道,还要进行日常的管理工作,再额外带几个人,已经是很累了,还要保障带的效率要高,能做出成绩来,一次性带几十个人,是不太实际的,除非你专心做培训,其他事情都不干,还有希望的。
新人往往会做几个页面了,重复的劳动就不喜欢做了,但是做出来的软件里,会有很多Bug、会有很多书写不规范、思路不严谨、程序漏洞、运行性能问题、效率问题、代码的质量问题等等,你提醒他们多了,自己烦,新人比你还反感这些,这也算是让人头痛的事情。
新人很容易蜻蜓点水,了解了表面很浅显的内容,就以为自己很懂了,不原意干重复的劳动,更不愿深入进去,当然更不会为某件事情,某项工作负责到底的,一般是会中途放弃或者经常换来换去,前几年很容易啥也干不出来,也能骗几年的工资。
新人往往都喜欢学习,工作时间学习、休息时间学习、周末学习、晚上学习、中午学习,但是都不知道在学啥?学了是不是有用?其实学习就是为了解决日常工作中的疑难问题、为了解决客户的需求,需要引导这些人,围绕着实际工作需要展开学习,有目的有计划地学习。别说新人了,连有些老人也都喜欢学习。
我曾经有个台湾老板,说得很有意思,你买书公司是不会给你报销的,那是你对自己的投资,你学厉害了,公司不是还要加薪吗?你上班时间不允许学习,先工作为主,公司不是花钱让你来学习的,是让你来工作的,学习是你个人提高的事情,跟公司的工作,暂时撤不上关系,公司以满足客户的需求为主。
我一般除了学习英语外,技术都不喜欢学习了,工作上需要什么,我就学什么,跟工作无关的,求我也不学习了,我宁可休息,看看电影,甚至是静养也可以,学那么多干啥?我学了那么多,你给钱啊?平时的工作压力已经很多了,若没事干当然要学习了。
做IT软件,其实是工地上的民工一样的性质,也是工人而已,其实没啥本质的区别,再说了,我们没能掌握多少核心的技术,操作系统不是我们国内的、数据库不是我们国内的、开发环境、编译器不是国内的,版本管理器不是,连像样的第三方控件也都是国外开发的。
你说我们能学到什么核心技术?估计连javascript、浏览器、html 也都跟我们没多大关系,我们都是在用别人发明的东西,我们自己是没多少发明创造,用别人的工具平台、跟别人屁股后面学点儿如何应用的小伎俩、小技巧,再翻译一下国外的应用文章,就是蛮厉害了,可能这么想就悲观了一些,连很多HTML编辑器也都是国外的吧?
大部分人,都是建立数据库、添加、删除、修改、查询、搞几个界面,把数据倒腾来捣腾去而已,能有多少技术含量?其实更多的是业务知识,更多的是看谁倒腾数据倒腾等更有道理、思路更严谨、更了解客户的需求更方便操作、页面更美观而已。
做公司的项目,与学习是2回事情,做个某个项目里的某个功能,需要注意的事情非常多,例如编码规范、引用的公用类库、程序处理逻辑顺序、检查项、版本控制器、基础数据、权限、日志、异常管理、多语言、多版本兼容等等,所以做出一个有用的东西很难,不是网上那样真的添加、删除、修改就可以,虽然本质上没啥区别,但是能做出符合公司要求的东西,的确需要一些水平才可以新人比较难有这个境界的能力,所以往往喜欢抛开这些,另立一个山头,其实这也表明他的能力还不够,不是说有多牛B。
其次,新人由于在一个陌生的环境里,怕问别人,因为不问,别人不容易知道你的深浅,你一问别人,或者问多了,就是很容易让别人知道,你有几斤几两的水平,说白了就是脱了裤子给别人看了,这时候往往新人会采取沉没态度,工作做好了,也不吱声、做不好,也不吱声,你不去问,他可以3个月都老老实实的呆在那里闷头干,不知道都在干些什么,这些管理者要加强沟通、监督、指导才可以。
其实有些问题网上找找是可以找到答案,但是你半年都不跟同事沟通,怎么促进感情、怎么融入团队啊,有时候假装问几个问题,让你的项目经历对答如流,让他牛B一下,也可以拉近你跟他的距离,当然别问太多太幼稚的问题,别人会反感,还得区分开来,你的主管是不是很忙?还是比较悠闲?偶尔问个难点儿的问题,也让他知道一下,你的水其实很深,也不是坏事。
一说领导一词在国内快成腐败的代名词了,其实在很多场合只有负责的人,手上才会有权利,出了实情,这个人是有责任的,所以大多蹲监狱的,也是这些领导,很少听说哪个机关、哪个公司的小兵蹲监狱了。
可能有些跑题了,新人往往顶不住比较大的压力或者不太容易融入公司的文化生活,这时候往往会选择逃避,选择离职跳槽,我也是从新人过来的,我也承认,我的几次跳槽,就是有逃避的心态,只是那时候不敢承认,现在死猪不怕开水烫,承认了,你又能怎么样?我是最不要脸的家伙,哈哈,现在是敢站出来承认,当初的确是逃避占了大头。
走南闯北多年,发现不管是那里,权利都掌握在对工作负责的人手里,敬业的人手里,当然大部分的收入好处也都被这些人拥有了,那些不负责的,没责任的,大部分是无足轻重的打工仔,多一个少一个无所谓的。
不能过的期望新人有多少责任、负责等等,毕竟他们都是小孩子,能力、心力也都没成熟,他们有经常反悔的权利,有跳槽的权利,喜新厌旧的权利,毕竟他们的回报也很少的嘛,人都需要一个成长的过程,好局好散、顺其自然比较好。
SQL语句尽量不要写得过于复杂的,他们大多没那个能力,尽量越简单越好。
系统平台架构尽量是能让人少犯错误的,随意性不要太大。
代码尽量不要手写,能生成的就生成,这样又规范有可以减少审查的成本,系统的架构、原理、注意事项都要告诉他们,尽量让他们少写代码,尽量用代码生成器或者标准样例程序模仿。
千万别让他们乱发挥,那乱摊子倒时候会搞死你,你要给他们布置好明确的任务、做好一个即时验收一个,虽然做到这点非常困难,但是努力去做。
他们总会觉得加班会有加班费,这个月的工资这个月发,或者尽快能转正,最好是下个月能拿到1万的月薪,或者下个月就到IBM去工作,Google去工作。
新人做出了一点点后,会觉得很了不起了,觉得会很累了,很会把加班当回事情说,觉得自己很委屈很辛苦,经常会请假迟到,事情特多。
发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)