要不要去做外包?

335 阅读4分钟

一个程序员,如果想长期从事这个行业,那么外包不值得做太多年。

做外包的限制

我们来讨论一下外包对个人成长有哪些限制。

难以获得完整地解决问题的能力

外包的真正问题在于,它的工作内容只包括最后的写代码,不包括写代码之前的思考和筹备过程。但是这个思考的过程,对程序员来说是非常重要的。通过这种练习,程序员可以培养出思考问题的能力,然后将这些问题拆解成一个个小的、复杂可控的模块,通过编程完成一个能够解决问题的系统。

纯粹写代码,并不是解决问题的完整过程,如果不经过前期的思考和锻炼,解决问题的能力是无法得到很好的锻炼。

外包公司不注重人才的技术成长

外包的工作内容,也决定了外包公司对人才的态度,从外包公司的利益来看,只要员工能够“按照需求,写出代码,完成功能”就可以了。只要能够达到这个水准,那么外包公司就没有理由,也没有动力去培养人才了。

外包公司不鼓励程序员深入学习,还有两层利益方面的考虑:1)学习需要耗费时间,技术够用就行,没必要探索用不到的新技术,公司更希望你用这个时间来干活,2)如果程序员技术精进了,跳槽的几率就会变大,因为外包公司不需要程序员有强大的技术,而程序员有了技术傍身,工资又不涨,自然会考虑跳槽。

外包公司没有探索的环境

因为需求和详细设计都是甲方定的,作为实施的乙方,没有权利和自由区实践可能更好的方案。

可替代性强,可能无法完整参与一个项目

因为外包公司的工作比较单一,所以可替代性也更强,同样外包公司的程序员的可替代性也强,这就造成了外包公司的人员流动比较大。

从成长和积累的角度来看,程序员最好能参与项目整个过程,甚至一个项目多期的开发,这样就能沉淀完整地经验,如果是东一榔头、西一棒槌,技术和业务都很难沉淀下来。如果能参与一个项目多期的开发,也可以从这个项目的技术演进中,学到不少东西,但是如果无法连续参与,也无法收获这部分经验。

什么情况可以考虑外包?

任何事物都有两面性,我们也不应该一味地摒弃外包,在有些情况下,外包可能也是不错的选择。

通过外包快速积累经验

成熟的外包公司一般会有规范的项目管理、文档管理和代码规范管理等,这些可以培养程序员优秀的编码习惯。同时,在还没有熟练掌握一个技术之前,在外包公司可以通过项目将自己熟练度提升上去。

希望进入一个新的行业

如果你想进入某个行业,但是没有相关经验,无法通过面试直接进入这些公司,那么不妨考虑相关行业的龙头外包公司,积累相关的行业经验。

总之,外包公司并不是一个很好的可以让程序员长期发展成才的环境。在外包公司呆久了,这种分为可能会让人有两个错误的认知:程序员的工作就只是写程序,程序员只有转管理才有前途。

如果想要城战,就不要被外包公司的氛围影响,做个有心人,肯下功夫,也会有自己的收获。当然,如果你觉得在外包公司已经没有太多的成长空间,感觉自己不想只是写程序,那么不妨换个环境。一般来说,在一项技术上如果有三年的积淀就差不多成熟了,这时如果还想做程序员,就需要考虑向更高的层面发展了,去锻炼自己在写代码之外的能力。


此文章为极客时间3月份Day31学习笔记,内容来自《职场生存手册》课程。