一、互联网公司与外包公司的联系与区别
互联网的到来就注定会有外包公司的诞生,起初外包公司给一些不愿意花高代价招程序员的创业型小企业做独立外包,后来渐渐的大型的互联网公司开始出现 ,他们愿意把一些自己不熟悉或者繁琐的的领域和功能模块外包给专业能力更强的外包团队。
从本质上讲,互联网公司和外包公司都是以盈利为己任。但是在这两种公司的程序员却会因为公司为达到盈利而需要采取的行动而产生分化,久而久之变成两类完全不同的程序员。
外包公司和互联网公司本质上的区别来源于互联网和外包公司的产品模式:互联网公司有一个或者多个比较完整产品线,而外包公司没有。
互联网公司的程序员往往是要对一个或者多个产品线负责,付出努力,产品成型,项目成功或者失败,至少程序员会陪伴一个项目的完整周期。而最终的是程序员会享受项目的成功带来的种种机会,当然也会承担项目失败带来的后果。在互联网公司衡量程序员价值的大部分来自所做项目最终给公司带来的益处。
外包公司的程序员是以甲方的需求驱动的,虽然跟互联网公司的程序员一样,他们都是以实现业务方的功能为己任,但是外包公司的程序员不需要为产品的最后成功与否负责。外包公司的程序员要做的就是按照甲方的需求以及期限做好开发工作,完成对应的产品功能,而至于以后甲方如何运营这个产品,如何使用这个产品,都与程序员无关,即使及后甲方用这个产品拿到融资、产品有上亿的用户,这些都与外包公司、与程序员无关。在外包公司衡量程序员价值的大部分来自项目是否按照要求达成。
互联网公司是一栋大楼,互联网公司的程序员帮忙建筑这栋大楼,并且希望这栋大楼越来越好,因为这是每个人的心血和努力,每个人夜都知道这栋大楼越来越好,自己也会越来越好。外包公司可能是这栋大楼的一块砖,大楼需要什么砖,外包公司的程序员就给什么砖,这栋大楼日后怎么样与他们无关。
技术深度方面,其实很多外包公司的普通员工的技术深度与互联网公司普通员工也无大差异。甚至外包公司的程序员在某领域的深度是高于互联网公司的程序员的,毕竟很多互联网公司的某些特定功能「很可能是目前自己公司的程序员实现起来投入产出比比较低」就是外包给外包公司的,术业有专攻罢了。
外包公司是一个能让人快速成长的地方,因为它能让一个人快速的接触上手开发多种项目。但是在外包公司呆久了,会让人麻木,容易迷失,也会让人越来越觉得自己只是一个螺丝钉。
二、初入行新人建议
1、外包公司存在的问题
(1)项目无法深度参与,很多甲方很独当和强势,不能客观的接受意见,更多时候就是你说我做,最后难免敷衍。当然很多时候有解决办法,真正当成自己的产品打磨和思考,但客户一旦不接受这里面的价格,那么就很难。有些大客户,光原型就做了考虑和碰撞,他愿意买单,己方才花得起时间。但大部分创业项目都穷,大部分企业项目利润都被中间人拿走。
(2)养大的孩子和别人跑,全部在喂奶过程。前期是最需要磨合和适应的过程。项目做好了,客户就会融资自己接过去,看着好的没自己的份,没有一个心里伴随感和技术的成长性,对自我技术的发展不好。今天我们前端负责人就和我说老是做这个项目对他的职业路劲不好,正好我们有个百万级用户的客户,接下来他抗。项目开发好了,但做砸了,只能默默骂运营傻逼。无能为力。很多时候还拿不到钱,就可能发不出工资。一旦项目出了问题,客户就理直气壮我项目不做了,他知道你对,他知道该给你钱,他知道项目成功失败和你没关,就是不给你钱。
(3)项目小而砸,没法专心做一个事情。我们有些客户公司体量上去了,每个人的职业路径是清晰的,那么他更多是在这条路上去走和摸索,就会不错。但外包公司可能同时要做几个项目,耗脑力还要耗心力。程序员大都反感做一个拼凑没有延续性的事情。
(4)外包公司能学到的东西多?答案是不存在的。很多人说外包可以学到很多东西,在我进我现在公司之前也面试过一家公司,去了之后才知道是外包,然后和旁边一个应届生也是面试者的哥们聊了起来,我说你知道这公司是外包吗?他说“知道啊,不过也没关系,外包能学到的东西比较多“。我当时也没说什么,很多人似乎也是这样想的,外包学到的东西多,然而,不得不说的是外包能学的东西其实真的不多。有时候外包为了快速迭代,你做的项目可能不过是上一个项目拿过来改改而已,不断重复同样的工作比较多。相反自研的话因为迭代得多,你会更深一层的接触业务,很多东西深一层开发之后简单的增删改查就不顶用了,就得扩展更深一层的方法了。重要的是,外包公司很多都是没办法接触一些高并发的场景的,一些新一点的技术可能都是没办法用上的,这对以后的发展来说挺受影响的。
(5)外包公司大都只顾功能完成不顾后期扩展和设计的好坏。在外包公司很多时候都是你自己一个人负责一两个项目,只追求功能上的快速实现,所以也不管你代码写得有多难堪或者设计得有多烂,只要能跑几乎都没人管你,甚至乎你会忙得焦头烂耳,框架接触得再多最后也仅仅只是会用表层的,有逼格一点的写法和使用可能都不会了。也因为自研一般是多人同时开发一个项目,你也可以看看别人是怎么写代码的,慢慢的规范起自己的代码质量。
2、互联网自研公司的优势
自研的大公司对你使用一些新技术会有更大的包容性和鼓励性,有些也是愿意花时间等你去研究的。还有一点是,自研的公司有时候会比较闲,这样的话你相对自学其他的时间就比较多了。
也有人去外包公司是因为外包公司钱多。不可否则,有些外包公司确实钱是挺多的,不过更多的是没日没夜的加班加点。然而我想说,其实自研的一些公司钱也不少。说句题外话,那就是,如果外包公司你觉得钱多,但如果你一个月都没能控制好自己不乱花钱,每个月结余就那么点的话钱多了可能也没办法很好的改变你以后的生活,而且,外包公司的话很多东西都不规范,我认识一同学,他有一朋友做php的,在外包公司,连swoole和鸟哥都没听说过,眼界也不够远,对以后想要跳更大的平台来说真的难。
所以说,能去自研的公司还是去吧。对以后去更大的平台做好准备。学习这种东西更多是靠自己去学习的,仅仅靠工作去逼迫你才学习的话,路途会有些坎坷。当然,事无绝对,重要的是看自己怎么想的和怎么行动的。怎么选择,自己权衡吧。
【这里是技能树·IT修真院:IT修真院官网,初学者转行到互联网的聚集地】