Migarated from here at ‘2012-05-22 17:35:03’.
看到别人形形色色的简历,不同年龄,不同经历,一样的为生活奔波和努力。自己的未来呢?自己将会是什么样子的?这个问题真的应该好好地想想。这个社会这个行业需要什么样的人?我能够成为什么样的人?我应该怎么做?
刚才看简历的时候突然想到:象美国那样40多岁做普通程序员的事情很可能永远不会在中国发生,——而原来我认为随着中国软件业的成熟,这种情况是会发生的。让我的想法发生改变的原因是:中国的劳动人口太多了,包括软件行业,现在甚至已经出现了开发者过剩的情况。在这样供过于求的环境下,必然是用人单位压低薪资水平,甚至使用加班的手段降低成本,因为你不干自然有别人来干。而入门级开发者没有时间和精力进行深层次知识的学习,而随着主流开发技术的不断简化和中国没有自主技术的事实,导致大部分中国软件作坊需要的开发技术也只是属于“入门级开发者”就能做的,所以在人才需求方面也没有对高水平开发者的大量要求。没有需求,也没有供给,自然象美国那样,四十多岁年纪、在某方面是专家的程序员在中国就不可能存在了。
而人总是会老的,这么多的开发者到了40岁的时候该怎么办?和刚工作几年的开发者相比,人力成本高很多,如果技术上没有明显长处,是根本无法竞争的。现在这个问题就已经产出了:刚才看到几份71年到75年出生的人投来的简历,心里很不是滋味,和80左右的开发者比,实在是没有优势啊!再联想到自己,再过若干年后,是不是也会面对同样的情况呢?其实对于从事这个行业的中国开发者来说,每个人都应该有这样的危机感,因为它真的就在我们身边。那如果还想从事软件开发行业,应该走一条什么样的路呢?我想可能的选项有这么几个:
由开发走向管理,做类似项目经理的角色。这也是大家通常认为的“正统道路”,但是我认为这条路其实也是充满了风险,因为就目前行业内存在的“项目经理”职位,大部分都是国内作坊在招聘。大公司是很少会直接从外面招聘一个Project Manager的,因为大公司需要员工在公司内部进行一个积累的过程然后提升,除非你是很牛的人,不然在大公司直接做PM很渺茫。所以大部分提供这种职位的公司都是国内的软件作坊。但是国内的作坊实际上对PM的要求甚至更高,因为在大公司一切工作都有章可循,责任权利义务清楚,发挥你的能力,尽心工作就可以了。可是国内作坊的情况就很复杂,公司没有严格的规章制度,看似宽松,实则责任权利义务不分。对项目经理来说,不仅要技术方面一人可以顶下来,还要面对难缠的客户,不满的老板,和怨声载道的开发者。在这种环境下,能够较好处理各方关系,把项目做好的项目经理实在太少了。话又说回来,如果你真的有处理这种问题的能力,那你也应该考虑更好的发展前途,而不是在这种环境中郁闷的生活;
进入大公司从事软件开发。注意:我这里所说的大公司是指有自己系列软件产品的公司,象微软,SUN,google这种。在这样的公司工作,如果做的好,再加上大公司产品的延续性和应对变化的相对稳定,是有可能一直从事开发工作,而过得不错的。相比较而言,另外一些做外包做项目集成的大公司,虽然公司大,但是所做的项目都是短期性质的,不需要专业知识的积累,自然也不需要资深的开发人员了;
第三……还有第三条路吗?我一直在思考这个问题:第一条路非我所长也非我所愿;第二条路看似简单,但是随着年龄的增长,个人的竞争力实际是在降低,抵御风险的能力较差。在快速变化的社会中如果竞争力不是在提高而是降低,那就非常危险。我所能想到的几个“第三条路”是:
参与开源项目,锻炼自己做技术大拿,自然有公司来找你,以后甚至可以做咨询,开自己的咨询公司;
进入大公司,从基础做起,做tech lead或stuff engineer,确立自己的技术或管理优势。总之进了大公司不是进了保险箱,要让自己不断的提高;
出国,比如到美国去做开发。在那里四五十岁的程序员很多,你不用担心年龄的问题,但是你要面对的是异国生活的其他问题,文化冲突,生活习惯,没有认同感……恐怕那滋味也不好受吧!
离开这个行业,做一些“经验比较值钱”的行业(现在中国的软件行业是典型的经验不值钱的行业),比如教育,比如财经。
说了这么多,其实想达到的目的只有一个:当你人到中年,如果有一天,上司对你说:“因为%#$%#@%,我们很遗憾,不能和你继续劳动合同了……”在这一刻,如果你的第一反应不是惊慌或恐惧,OK,那你就已经成功了。