程序员转型不得不说的事(一) 转型的原因
一转眼不做一线的开发已经将近两年了,但是在这两年当中还是没有离开编程,还是在不断的学习,或者当一个在站在圈子外面再来看做程序员的点点滴滴颇有些感触,所以在这里分享一下我的经验,希望用咱们希望从编程的圈子里走出来的人,以及希望进入编程圈子当中的人有一点用处。
首先我必需要说程序员为什么转型:
在国外有很多老枪,甚至经常看到有的公司的招聘要求动辙8年、10年,而在国内有这么久一线编程经验的人少之又少。我曾经在国外工作做一段时间,对于国外的程序员多“长寿”,而国内程序员多“短命”的现象都不感到奇怪。
从工作性质上看我认为单从工作性质上说,工作经验与工作经历其实对工作效果的帮助要比工作上的冲劲更加重要。原因很简单,工作的产品与工作得好的产品完全不是一个概念,对于语言的内涵、设计模式直至软件工程的认识绝对是需要时间与经验才能得到的知识。但是为什么样内外程序员的职业发展会有这么大的差异呢。
在国外软件公司发展大多比较正常,也就是大家都是在良性发展,很少见到恶性的竞争,而且最重要的一点软件工程师这个职业是比较受人尊重的。也就是从外围环境上讲大家评价比较低,而从内部工作性质上说工作强度以及工作压力没有国内软件开发的从业人员那么大,所以从事这项职业很久时间也就不难理解了。
但是国内软件业的发展至今,对于开发者来说工作性质简直类似于IT民工,编程已经成了体力劳动而不是脑力劳动。造成这种现象的原因其实也不难理解,因为大多数公司急于求成,只关注数量与速度而完全不不关注质量,对于软件工程方面经验的运用与理解很浅。
造成这种现象的原因是什么呢?其实你可以想象一下这个场景,同样一个功能一个有经验的程序员,把设计做好,该做的架构做好,该定义的宏与常量定义出来,把今后可扩展的东西留出相应的接口。但是这些都做好了,对不起老板可能会看到初学的程序员可能通过几个通宵的努力把一个可以基本运行正常的版本出来。虽然能工作和工作得好有巨大的区别,但是如要老板运用这个软件公司本身就比较急功近利的话那么后果可想而知,马上就会得出老程序员不好使用的结论。
但是如果软件质量把控不好那么软件今后的可维护,可扩展性都会很差。但是等这些问题都暴露出来,一般来说项目代码的编写人员恐怕已经有很大一部分的流失了,所以后期的工作推动非常艰难造成了恶性的循环。而等公司搞清楚这些道理开始重视架构,重视设计的时候,你会发现你的成本远没比那些按照软件作坊式的企业高,你们对于同一个项目报价没法竞争,所以没办法面向恶性竞争如果没有雄厚的资本支撑(当然了有雄厚的资本早去搞房地产了)完全耗不起。
这样的发展模式就造成了软件从业人员的体力劳动属性增加,脑力劳动属性降低。当一项工作要考体力的时候老程序员怎么拼得过年轻人。尤其是在成家立业后有了家庭的责任,有时候就是加不了班,那么久而久之项目经理不得不放弃使用老人,即使他们已经完成了自己的工作。
而且从另一方面社会对于30岁以上的程序员本身就是画了一个问号,因为社会对于程序员本身形成了一种青春饭的标签,所以真的没办法有时一个程序员的转型背景真的是许多的无奈。