大家好,我是码农先森。

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 程序员为什么依然是外包公司的香饽饽?的更多相关文章

  1. ios外派公司—提供ios程序员外派ios应用外包业务(北京动点 可签合同)

    北京动点飞扬长年提供ios工程师外派业务. 我公司程序员平均技术情况如下: 1.二年以上iPhone/ipad开发经验: 2.熟练使用Xcode.Objective C编码技能: 3.熟悉iOS开发框 ...

  2. 程序员过关斩将--redis做消息队列,香吗?

    Redis消息队列 在程序员这个圈子打拼了太多年,见过太多的程序员使用redis,其中一部分喜欢把redis做缓存(cache)使用,其中最典型的当属存储用户session,除此之外,把redis作为 ...

  3. [No000032]程序员的年龄天花板

    程序员职业生涯中流行这这样一个定律:35岁定律,那35岁以上的老程序员都干吗去了呢?为了讨论程序员的职业寿命,我们先得给公司或者团队分分类.大概有这么三类: 外包型 项目型 产品型 咱们一一来说一下吧 ...

  4. 2017年 Java 程序员,风光背后的危机

    不得不承认,经历过行业的飞速发展期,互联网的整体发展趋于平稳.为什么这么说?为什么要放在 Java 程序员的盘点下说? 的确,对于进可攻前端,后可守后端大本营的 Java 程序员而言,虽然供应逐年上涨 ...

  5. 老菜鸟致青春,程序员应该选择java 还是 c#-

    致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的, ...

  6. 原来,多年以来,我一直是个curl/CRUD程序员

    curl,就是create,update,remove,list的首字母简写.说是CRUD似乎更流行些,不过无所谓,知道是一个意思就好. curl程序员,就是增改删查程序员,中文说增删改查更加顺口. ...

  7. 程序员段子:世界上最大的同性交友平台github

    程序员(又名程序猿)因为总是冲锋在网络的最前端,还有程序猿的各种特殊性,大家在茶余饭后都有很多关于程序员的段子流传.大多都是程序员自黑的,先说在前面,程序猿还是很好的!下面看看你有没有中枪的那一条呢? ...

  8. 37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了

    在职场论坛看到这样一个帖子,程序员小A被前公司裁员了,裁员之后也并没有特别气馁,打算重头再来,结果却被现实打击到了. 他大学毕业的时候进入到一家知名互联网公司上班,工作期间,也是不断学习,提升自己的能 ...

  9. 程序员遇到Bug时的25个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

  10. 程序员遇到Bug时的30个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

随机推荐

  1. C# EF 使用sqlite 数据库出现表名出现dbo的坑

    当ef使用sqlite时,正常情况映射的表名是没有dbo开头的.这个dbo是映射的sa用户,而sqlite是没有用户的.所以映射出的sql语句是查不到数据的.   我在网上找半天解决方案,都不得行.后 ...

  2. mac goland go env 环境变量 和 mac上终端go env 不一样

    编辑 vim ~/.zshrc. 在这里设置环境变量.goland 里面的才会生效.设置bash_profile 没用.

  3. CTFshow-Crypto(1-5)

    1密码学签到 自己倒序 在线网站倒序 文字倒序工具,在线文字倒序 (qqxiuzi.cn) python脚本 a = '}wohs.ftc{galf' print(a[::-1], end=" ...

  4. windows下vscode连接linux(虚拟机)进行(伪)远程开发

    免责声明 本文乃至本系列是对网络上传播的内容进行整理以梳理流程,且因为篇幅限制会精简内容,适合面向具有计算机类基础知识的人群,本文内容较为笼统,只有大体上的逻辑,具体的细节肯定是官网上写的准而全,望读 ...

  5. Java中Calendar类与SimpleDateFormat类的介绍

    目录 Calendar类(关于日期的一些方法) get(Calendar.XXX); get(Calendar.Year) get(Calendar.MONTH) get(Calendar.DAY_O ...

  6. WXS 模块

    https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/01wxs-module.html 2.1.概述 WXS(Wei ...

  7. while适用于不确定循环次数

      // 当前有一个随机数,是生成100-999的随机数值         // 需要生成数值666,需要知道循环了多少次,才生成的666这个数值         // 我们可以通过循环来实现     ...

  8. vue-cli 单文件组件 工具安装

    https://cli.vuejs.org/zh/ 在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) ...

  9. CF1827

    CF1827 A. Counting Orders 简单计数. 两个都排序,双指针维护一下 a[i] 在 b[p] 的位置(a[i] <= b[p]). 那么方案数 \(\times (p - ...

  10. 任意树遍历,可以使用 goto 跳记号标注的

    先顺序进入到最后一个根的根部,完后扫描同级 同级扫描完用 goto跳代码改层数到倒数地二层 之后操作就是倒着往上搜索的,有难度,但是还是能做到的嘛 用 lisit 好像不需要别的,全用 list 连接 ...