最近我司心声社区到处充斥着在40岁左右惯例的帖子,之前觉得这些觉得离自己很远。不经意发现自己今年也35岁了,惯例这一天迟早会来临,只是早晚而已,按目前现状,再为公司奋斗也不会有太多年了,你想奋斗关键公司不让你啊。最近也陆续听到之前曾经共事的同事,或由于身体原因,被沟通退休或离职;或由于绩效平平,合同到期不再续签;或由于种种原因,被进入战备预备队前途不明。公司主营业务已遇到瓶颈,整个行业暮色深沉,新的领域就开拓不足,公司高层也不断地发文要打粮食,熵减等等。总之:“山雨欲来风满楼”。
35岁应该是一个年富力强的年龄,不应该发出“今年35,还能做技术吗?”这样的话题,其中透露出一丝不自信。话说三十而立,但目前这个年龄段,我是上有老,下有小,身上还背着几百万的房贷,说没有压力不是可能的。作一名软件工程师,在国内来说其职业生涯是相当短的。而我一直从事软件相关的工作,目前虽是做软件架构设计,但还是喜欢写写代码,一直没有找到自己明确的发展方向,一方面有我自身的性格原因,一方面能力的确有些偏科。
我非常能理解公司最近一些HR政策,企业为了保持长期的活力,换血难免。不管这事是否有多么无情,站在企业的角度来说无疑是正确的,毕竟企业不是慈善机构。公司也不可能让一个上了年龄、有家室的人一直从事一线编码工作。公司注重的是流程管理,觉得编码也可以像产业工人一样批量地生产。而年轻人更能干得多,给予得少。即使最近提倡的工程师文化,也是很难真正地做到,越提倡说明越缺失。
先简单说一说我为什么走上软件开发这一条路的经历吧:
90年代还是读初中时,老爸单位就开始使用电脑记账,那时觉得电脑太神奇了。个人虽买不起电脑,而要求老爸买了学习机,当时按着说明书,用basic语言输出满屏幕的各种形状的图型,心中也被巨大的喜悦填满。目前我清楚地记得,我爷爷看到我能在学习机上打出全家的名字,觉得这个是怎么做到的而不可思议。
高考那一年,我一表哥从大学里寄来一本小说《第一次亲密地接触》,讲得就是网络交友,原来交朋友也可能通过互联网,当时觉得这个太好玩了。于是高考填写志愿,我报了某211计算机专业,可惜语文成绩刚及格,总分数不够(在本省就招3个,我排名第6,我爸通过关系才知道的)。还好有个第三志愿保底,并且填写可以调剂,于是我调转到另一所大学,学的是信息管理。妈蛋,到学校才知道,这个信息管理其实与计算机不太相关,虽然也会学些计算机原理,C语言编程等。但这不是主业,主业是信息检索,运筹学,是一个从图书馆管理发展起来杂学科,什么都学,什么都浅。
大学一年级第二学期就买了电脑,一买电脑,就没有心思学习了,第一年还拿奖学金,后面连课不上了。每天大部分时间都在折腾电脑,重装系统,Win系统不知安装了多少次;Linux当时还远没有现在好用,也折腾过蓝点,RedHat。除了折腾就是打游戏,或者泡在网上看各种论坛。计算机理论没有怎么学,但其间还是有些编程的基础,曾获得校编程比赛三等奖。后面也和同学搞搞网站,系网站还是我们整理的,界面虽然丑点,但蛮有满足感。
04年大学毕业后就来了深圳,开始家里就给我安排了一份工作,是做物业管理。但我不是这种菜,没有干一天,就辞职不做了,现在想想年轻就是任性啊。出来就自己开始找工作,找来找去,发现只有做网站的公司要我,于是第一年我就在一家当时在体育界还算小有名气的小公司做一名程序员,负责后台的程序开发,从此就踏上了软件开发这一条道路。后来05年华为大规模地招新四军,经过电话面试,当面做题,也没有怎么答好就稀里糊涂地来了华为,真还得谢谢当时的技面官。后面更没有想到的事,有些同学纷纷转行,中间也有过多次的机会离开,而我却一干就是12年了。
在华为一直干得比较辛苦,结婚生小孩之后,发现再不能跟小伙伴一直挑灯夜战了。之前也不是没有奋斗过:
- 去国外出差,可以整夜不睡觉,为了就是调通一个功能,等着明天客户可以验收。而这样的状况是持续的,每天吃不好,睡不着,最后回来发现落下胃病。
- 可以持续一个多月每天晚上11:30下班,回到公司附近的出租屋倒头就睡,明天又接着干。
- 可以凌晨不知几点,一个电话把你叫醒,说日志发到你邮箱,尽快定位解决问题。
- 可以明知道不可能完成的任务,还是坚持答应下来,即使周末过来,也要加班加点把它做完。
- ……
当过了三十多岁,的确现发现状态不如以前了,说一下感受吧:
- 明显感觉体力不行了。以前定位解决问题,搞到凌晨三四点也没有什么睡意,第二天精神也不错。现在如果要搞到凌晨或通宵的话,后面两三天觉得身心疲惫。
- 亚健康状态,平时锻炼比较少。每年的体检都有不少的问题,坐久了时间就觉得腰,颈椎痛。
- 记忆力没有以前好了。以前看过的代码,长时间能记住,定位问题总是比其它人快速。看过的资料,吸收没有哪么快了,记得的东西有时突然就想不起来。
- 明显感觉脑力跟不上了。以前码代码非常地快,一周就写10K;现在写代码总是思前想后,生产率没有那么高,但现在质量可能更好一些。想问题时注意力容易被打断,打断之后再难回神。
当然这些年也积累了非常多的经验:
- 尤其是攻关方面,我总是能解决问题,因为之前踩过不少的坑,看过不少的坑,也解决过不少的坑,问题总是本质一样的。写代码会本能地避免,定位总是会举一反三。
- 知道怎么去做方案设计,分解并指导新人完成一个系统。有些问题能轻车熟路,以前解决类似问题的方案可以拿来复用。
- 知道系统架构一些设计原则,理论基础,抽象建模,知道如何去权衡一些方案的利弊等。
- 知识不再局限于编程语言,知道从多角度,多层次来看待一些问题,也在尝试去提炼一些编程之外的东西。
热爱与钻研技术这个没有错,也不会随着年龄大了就不行了。虽然软件界的技术日新月益,编程语言层出不穷,各种框架各领风骚,但解决实现问题的经验与能力是非常重要的。现在你跟一群年轻人去拼体力拼时间,肯定是拼不过了,唯有作出转变。以前可能是“我能力强,效率高,部门的关键人物”,其实那是错的,不可替代性才是最有价值的。“人无远虑,必有近忧”,平时不妨努力提升自己,专注于某一领域,你能想到别人所想不到的,您能解决别人所处理不了的。编程只是一种解决问题的手段,技术也不仅仅只是编程。简单地说对于通用软件领域,当前主要的价值是如何构建分布式的架构体系统,以应对不断变化的商业模式与体量。
当然上面说的还是一条技术路线,更重要的是你想明白技术只是为了产品,为了商业模式服务的。要让自己增值,不再吃码农的青春饭,那就要改变自己的想法,以快速适应未知的变化。积累系统架构经验,积累技术把控能力,积累对商业的理解,积累发现机会的敏感,果敢地作出改变。