阿朱出品必属精品。阿朱出品必属精品。阿朱出品必属精品。重要的话要说三遍。
上周搞公司史上首次最大的研发校招新人培训,我讲了一些个人的成长经历,觉得对工作3年以内的人挺有启发,所以今天在微信文章中再分享出来。(好像这些内容我在《走出软件作坊》书中也提到过一些)
一、做项目
做项目是个我个人成长非常明显有效的一个方法。
案例一:做报表
我也是当年以应届新人毕业生的身份进入一家商业软件公司做专业开发。给我分配的第一项任务就是写复杂报表,报表有二维表有统计表。这里要用到很多SQL技巧,而且性能还不能慢,而且表关联非常多非常复杂,我需要理解很多表的字段意义和字段值状态,这也逼着我要去理解这些表所代表的业务。而且这些多张报表之间是存在勾稽关系,你一个统计错了,其他报表就对应不起来。
我后来也使用过这招来历练开发与测试新人。因为报表是输出,不用更改业务数据,这样既安全又能反逼开发新人能快速熟悉业务熟悉表关系熟悉客户最想得到的结果是什么。这个案例让我现在想起来都觉得非常有价值。
案例二:打大仗
我回顾我的成长经历,有一个非常幸运的是:我从头到尾参与了新的系统研发,而且是全新一代的整个ERP的研发,而且用的是全新的技术,而且是从头全新思考全新设计业务。
很多研发人干了十年研发,也未必能遇到这样的机遇,大多数研发人一直在维护别人写的代码,自己从未从头全新写过什么。
当时我们封闭开发,一直持续了2个月,每天11点回宿舍,每天晚上吃完饭先集体打一盘帝国时代再开发,全是男生,到晚上7点后大楼就不给输送冷气,当时我们5、6月,只好光着膀子挥汗大干。大多数男生都是单身,甚至连女朋友都没有。那段时间是我们记忆中最苦干最无忧最光辉的岁月。
案例三:独立主导
当时我们要给灯塔客户做实施与现场定制开发。正好那段时间我的师傅(Leader)跳槽离去了。我从一个主力程序员变成了要独立领导一个系统的全部事务。我需要直接面对客户,直接筹划、推动、沟通协调。我从一个只需要照顾技术世界代码的快乐程序员,变成了要照顾人和商业价值。
这也是一个很综合的历练,这步大家都要走出的。
要领导,要做技术还要做商业价值,要照顾系统也要照顾人还要照顾团队。
案例四:参与开源、阅读开源代码
当年有个梦想就是想成为中国一流的程序员。在公司内已经有技术口碑了,就想挑战挑战业界。当年好像参与的就是SQLLite,记得就是一个非常小的单机数据库开源项目。我先是阅读代码、梳理代码结构、梳理重要函数的逻辑。虽然后来我没有贡献任何的代码,但是看到了业界的高人写的真实代码,深刻理解了自己和业界高手的差距。这种真实的了解也反向驱动我更努力的学习和磨练。
说起阅读开源代码,我曾经也阅读过当年我用的一种开发语言(delphi)的源代码,我也梳理了它的全部类库结构与关系,搞明白一个功能它是怎么实现的。这个阅读与梳理也给予了我非常大的成长。
二、看书
案例一:看顶级书
当时公司有两套书,一套是borland公司出版的delphi开发指南,一套是borland台湾产品经理李维写的delphi深度开发(这套书还是公司托人从台湾买过来的,大陆没有如此深度的书)。
从此我养成了一个习惯,要看书,就看谁做的这项技术就看谁写的书。就如同我当年学SQLSERVER,看的书就是SQLSERVER研发组人写的书。所以看书要看第一手的书,别一入门就被误导了。另外,看书要看最高峰的书,不要循序渐进21一天入门之类的。攻克是难,需要一遍遍的看,但攻克了你的功力增长就非常大,比你循序渐进更有效。
案例二:看业界前沿
正好当时蒋涛创立了CSDN,出版了程序员大本营和程序员杂志。当年真是大开眼界啊,很多业界最前沿的技术和研发方法都有介绍,每期必买,大呼过瘾。很多技术在程序员杂志介绍后3年,才在中国大陆真正流行开来。
三、听分享、做讨论
案例一:业界分享交流
我一直很喜欢听业界分享,过去在通县住,但都坚持每周到中关村,不是看书就是去参加分享沙龙。听到了很多业界前沿大牛人的当面分享,认识了很多大牛。激励自己更刻苦的磨练,希望能够更快的成为和他们一样的业界牛人。
另外,我在线上也积极参加业界分享交流,玩BBS。当时主要玩的是delphi大富翁论坛,认识了很多高手,大家积极回答问题积极刷分、力争每月排行榜。为了回答某个问题,自己赶快去学习和实验,这种反向倒逼学习的方法也提升相当快。
案例二:积极参与研发大讲堂
研发中心当时人的规模还不大,30来人。每周五下午有技术大讲堂。我当时是积极分子,每次必去,发言积极,而且跃跃欲试希望自己也能做分享者。这个手段的学习也让我增长很快。
案例三:部门聚餐吃饭交流
很惭愧,每次部门聚餐都是部门老大请吃饭。在吃饱了的时候,部门经理就会给我们分享很多公司内、业界内不为人知的一些事,让我们这些毛头小伙茅塞顿开,哦,原来是这么回事。这让我们这些一心扎在比拼技术的人更有一种全新视角,应该多平衡思考一些其他部门怎么想、他们的利益是什么、公司高层会怎么想、他们是站在什么利益点和大局来思考。
对了,补充一句话:新人毕业,最好是先到一家大公司先干个3年(也不要干长了),不要一毕业就到小公司。到大公司能从一开始就有大格局大视野大胸怀。小公司往往会助长鸡毛蒜皮小鸡肚肠,做人就一开始就做小了。
四、总结梳理
案例一:做电子摘刊
当时我在研发中心自我喜好做一件事,那就是把每月看到的好文章都摘录下来,然后做成电子PDF文件,然后放到公司文件服务器上,大力传播推广。我记得都做了有十多期,很多人现在都记得我做的电子刊,认为很有价值。
我倒不清楚别人是否从电子刊中吸收了什么。我个人是为了尽心尽力做好电子刊,为了让每篇文章篇篇精华干货,所以大量阅览、严格筛选、严格校对。我是学习了很多。
案例二:写博客
当年BBS火的时候还没有博客流行。我当时就在BBS上写文章,写的很长,把一项技术点都总结介绍出来。后来博客这个形式火了,我也继续写博客,我的博客后来也火了。
写博客是一个梳理总结的过程,而且能及时把过程中所想所思考及时的留痕下来。写博客还有一个更重要的好处,就是别人可以评论你。别人有不同的视角不同的疑问,让你啊呀一声原来自己这块没有思考全思考深这块原来大家很关注需要讲的更细。我过去写《走出软件作坊》,后来的篇章就是用户推着我走了,他们在我博文后的提问,驱动我在下一篇文章中写出给予解答。
当然,因为博客好文被获得赞赏,所以也收获了很多高手好朋友。所以说,博客也是一种社区社交工具。
五、最后
我也后来对比了我的其他同事,为什么他们就成长缓慢呢?
可能他们没有目标或愿景(成为中国一流的程序员),可能他们不太喜欢与陌生人交流(BBS/沙龙/开源项目/研发大讲堂),可能他们不太擅长写或总结梳理(博客),可能他们不太愿意做与薪水与工作无关的事情(做电子月刊)。
所以,在新人选人时,就要问问他们有什么梦想,为了梦想他们做了什么准备,或者有什么学习的好习惯,说起来是否眉飞色舞深深热爱。不热爱,只当一个糊口手段,别人再推也推不起来。选人,很重要。
我也反思了培训。
我做新人时,当时公司非常注重人才成长,所以新人入职培训长达7天,讲公司规章制度,讲产品系统。但是不管是我后来进入岗位还是现在回忆起来,都好像没有起到大作用。倒是公司给每个人发的手提袋,里面有公司彩页介绍和产品彩页介绍,让我觉得这个公司实力很牛,让我有信心留在这家公司。
不过,后来我做一个新系统时,我对那块的业务领域知识一无所知,公司专门从客户方找了专家来给我们做演讲,那次几个小时的分享培训让我快速对业务有了深入的了解。这个培训为啥我觉得有用?我想有两点:1、我对这块的业务知识一无所知,我是从0到1 2、是真正的业务方给给我们讲,是真实的经验,是真实的业务诉求。所以建议以后搞实效培训,多邀请客户方的人来讲,少自己人给自己人讲。