PHP 程序员为什么依然是外包公司的香饽饽?
大家好,我是码农先森。
PHP 唯一的爽点就是开发起来「哇真快」这刚好和外包公司的需求相契合,在 Web 领域的芒荒年代 PHP 以王者姿态傲视群雄。如果 PHP 敢说第二,就没有哪门子语言敢称第一,连 Java 都要礼让三分。我刚开始出来工作时,就误入了长沙一家常年在猪八戒网上接单的外包公司,公司所有的项目都用 PHP 来开发,前后端也不分离,团队成员都是全干工程师。

相信大多数的 PHPer 或多或少都有前后端通吃的经历,拥有这样类似伪全栈技术的 PHP 程序员,正是外包公司所热衷的,招聘的HR小姐姐都对你面面相觑。一上来就能干活,有时候还是一个人直接干一个项目,都省去了沟通的环节,那效率相当杠杠的。用武侠剧中的情节来形容就是「快刀斩乱马」,项目干好了就奖金SPA伺候,干不好就卷铺盖走人,多你一个不多,少你一个也不少。对于我们 PHPer 来说,反正人和项目只要有一个能跑就行,人员流动性极大,有可能还没认清同事的脸,隔天不是你消失就是他消失了。
常年游荡于外包公司的 PHPer 都是这个地方打一枪,那个地方放一炮。很多人说外包公司这不好那不好,确实我也认同外包公司对技术人员并不友好。但是不可否认外包公司也给很多人提供了饭碗,特别是那些从培训班速成的 PHPer,绝大多数都被外包公司所吸收了。外包公司既有功也就过,功是解决就业,过是造就了一批低水平一年经验重复十年的 PHPer,还写了一堆难以维护的代码,牵一发而动全身,还动不动在关键的地方写上 Sleep 美名其曰这是以后性能优化的点,正印证了 PHPer 时常自我调侃的一句话「开发一时爽,维护火葬场」。

回到本文的主题「PHP 程序员为什么依然是外包公司的香饽饽?」我想除了 PHP 开发快之外,还有就是 PHPer 的用人成本低。对于外包公司来说「效率为王,成本至上」的企业文化一直挂在墙头,尤其显眼。众所周知,外包公司接的项目都是被中间商层层扒皮,最后落到手的收益微薄的可怜。这种现象就断定了外包公司不可能会高薪招聘其他语言的程序员,因此 PHPer 正对了外包公司的胃口。
PHP 开发之所以快不仅是缘于语言本身简单灵活,还因于及其完善的 Web 开源生态环境。拥有大量流行著名的开源系统,比如博客系统 WordPress、织梦系统 DedeCms、论坛系统discuz,后台管理系统 FastAdmin、CatchAdmin 等等。其次还有众多的开源框架,比如 Laravel、YII、CI、ThinkPHP、Webman、Hyperf 等。网上现成的解决方案也比比皆是,满足了外包公司的拿来即用主义,简直爽的不行,甚至可能还是零开发成本,直接一键部署,三下五除二,完事收工!

PHPer 和外包公司的关系,就类似网上的一句广告语「你刚好需要,我正好专业」。外包公司需要考虑效率、成本,而 PHPer 正好高效率、低成本,直接撞到了外包公司的心坎里去了,那在他们眼中 PHPer 能不香吗?
时过境迁,外包公司只能是 PHPer 的一个过客,不要把外包公司当成家。茫茫人生路,道阻且长,对于 PHPer 来说要想在技术这条路获取职业上的长足发展,就需要去往更高的平台,比如产品研发、技术研发导向型的公司。
希望对大家能有所启发,也欢迎在评论区发表不同观点,感谢阅读。
欢迎关注、分享、点赞、收藏、在看,我是微信公众号「码农先森」作者。

PHP 程序员为什么依然是外包公司的香饽饽?的更多相关文章
- ios外派公司—提供ios程序员外派ios应用外包业务(北京动点 可签合同)
北京动点飞扬长年提供ios工程师外派业务. 我公司程序员平均技术情况如下: 1.二年以上iPhone/ipad开发经验: 2.熟练使用Xcode.Objective C编码技能: 3.熟悉iOS开发框 ...
- 程序员过关斩将--redis做消息队列,香吗?
Redis消息队列 在程序员这个圈子打拼了太多年,见过太多的程序员使用redis,其中一部分喜欢把redis做缓存(cache)使用,其中最典型的当属存储用户session,除此之外,把redis作为 ...
- [No000032]程序员的年龄天花板
程序员职业生涯中流行这这样一个定律:35岁定律,那35岁以上的老程序员都干吗去了呢?为了讨论程序员的职业寿命,我们先得给公司或者团队分分类.大概有这么三类: 外包型 项目型 产品型 咱们一一来说一下吧 ...
- 2017年 Java 程序员,风光背后的危机
不得不承认,经历过行业的飞速发展期,互联网的整体发展趋于平稳.为什么这么说?为什么要放在 Java 程序员的盘点下说? 的确,对于进可攻前端,后可守后端大本营的 Java 程序员而言,虽然供应逐年上涨 ...
- 老菜鸟致青春,程序员应该选择java 还是 c#-
致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的, ...
- 原来,多年以来,我一直是个curl/CRUD程序员
curl,就是create,update,remove,list的首字母简写.说是CRUD似乎更流行些,不过无所谓,知道是一个意思就好. curl程序员,就是增改删查程序员,中文说增删改查更加顺口. ...
- 程序员段子:世界上最大的同性交友平台github
程序员(又名程序猿)因为总是冲锋在网络的最前端,还有程序猿的各种特殊性,大家在茶余饭后都有很多关于程序员的段子流传.大多都是程序员自黑的,先说在前面,程序猿还是很好的!下面看看你有没有中枪的那一条呢? ...
- 37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了
在职场论坛看到这样一个帖子,程序员小A被前公司裁员了,裁员之后也并没有特别气馁,打算重头再来,结果却被现实打击到了. 他大学毕业的时候进入到一家知名互联网公司上班,工作期间,也是不断学习,提升自己的能 ...
- 程序员遇到Bug时的25个反应
开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...
- 程序员遇到Bug时的30个反应
开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...
随机推荐
- C# WPF 自定义Main方法总结
在使用自定义的Main函数启动应用时,应该需要做这几步: 1.去掉App.xaml的Application的starup属性. 2.右键App.xaml,属性 把生成操作改为Page. 3.如果有引入 ...
- synchronized锁升级过程
更过博文请关注:https://blog.bigcoder.cn JDK 1.6后锁的状态总共有四种,级别由低到高依次为:无锁.偏向锁.轻量级锁.重量级锁,这四种锁状态分别代表什么,为什么会有锁升级? ...
- CSS操作——背景属性
1.background-color(背景颜色) 页面的背景颜色有四种属性值表示,分别是transparent(透明),RGB十进制颜色表示,十六进制颜色表示和颜色单词表示. 属性使用: /* bac ...
- Json.NET Converting between JSON and XML
Json.NET supports converting JSON to XML and vice versa using the XmlNodeConverter. Elements, attrib ...
- QuickApp 快应用中 或 nodejs 中 API接品调用时 GBK转UTF8
请求接口地址:https://doc.quickapp.cn/features/system/fetch.html?h=fetch 第一步,安装包: npm install iconv-lite as ...
- 领域驱动设计(Domain-Driven Design,简称DDD)【简介 个人学习笔记】
找到了第 1 篇资料:领域驱动设计详解:是什么.为什么.怎么做? - 知乎 找到了第 2 篇资料:领域驱动架构(DDD)建模中的模型到底是什么? - 知乎 找到了第 3 篇资料:一文看懂DDD 领域驱 ...
- 为什么SwiftUI使用struct, 限制使用class
前言 在学习SwiftUI所有的地方,视图元素都定义一个struct并实现View协议,该协议定义body变量返回View类型. 但是为什么,这里一直是指定的struct, 而不是class呢? 尝试 ...
- 纯css+html做emoji动态表情
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- 剑指Offer-55.链表中环的入口结点(C++/Java)
题目: 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 分析: 利用快慢指针,如果链表中存在环的话,则快指针一定在环中的某个节点与慢指针相遇. 设头节点到链表的环的入口结点 ...
- 基于 Easysearch kNN 搭建即时图片搜索服务
环境准备 启动 Easysearch 服务: # Make sure your vm.max_map_count meets the requirement sudo sysctl -w vm.max ...