有位小伙伴在微信上咨询我: 安老师,最近有点迷茫,我一直在做嵌入式硬件的 WIFI 模块的应用开发,在上海,工资一万左右。 最近一直觉得做 C 语言开发比较底层,好多东西也不会,待遇工资都不高,突然产生了转学大数据的念头,感觉培训一下,就会提升自己,薪资也会不一样,您觉得可行吗? 我当时直接回答他:不可行! 为什么我会这么说呢? 这是因为,开发者的薪资瓶颈,可能是多种原因导致: 行业不景气 公司不景气 个人在公司内的位置边缘化 个人没有竞争力 不加分析,简单更换所用的开发技术,是"懒于思考"的做法。 正确的做法是:先分析现状,搜集数据,看看自己为什么薪水没上去,然后再有针对性的采取策略。 让我们参考上面列出的 4 个方面,分 4 个步骤,由大到小来逐步分析,直到找到正确的改进方向,打破薪水天花板。 1. 行业环境如何 大的经济环境,会大概率决定你的平均收入水准。 比如,你在西安的餐饮行业做服务员,你每个月的收入就是 2500 ~ 3500 左右。这是市场行情,如果你不是特别优秀的人,很难超越市场环境。 再比如,你做软件开发,你从事行业类应用软件的外包开发,与从事互联网领域产品开发,薪水会有明显的差异。 所以,当你觉得自己薪水低时,要按下面的顺序,先做两个判断: 在同行业、同领域内,自己的薪水处于什么位置? 与使用同样开发技术、具有同样工作经验但在其它行业的开发者相比,自己的薪水处于什么位置? 假如在你所处的领域内,你的薪水处于底层,比如你在上海做教育类软件开发,工作三年,使用 Java 语言,月薪 6k ,而这个领域工作三年的开发者平均月薪是 10k ,那你要琢磨的就不是更换技术、行业的问题,而是你的收入为什么远低于行业均值(请接下去看第 2 步分析)。 如果你在所处领域内,薪水远高于平均值,但是和其他领域同等经验的开发者相比,又远低于他们,那可能是大环境限制了你的发展,可以考虑更换环境。 比如,你在上海做了 3 年 ERP 软件开发,月薪达到了 12k ,明显高于行业均值,可是和电子商务、金融、游戏等领域同等经验的开发者相比,又低得多,那更换行业方向,可能就是可以考虑的选择。 这里提到的薪水数据,并非权威数据,而是我个人从招聘网站搜索分析得来的,仅供参考。 2. 公司状况如何 经过第 1 步分析,如果你的薪水远低于所在领域的均值,那就要分析一下你的公司是个什么状况。 假如你的公司本身在行业领域内就是垫底的,那你的工资水平低于均值是大概率事件。如果你有能力换到行业内领先的公司,薪水提升是自然而然的。 假如你的公司,产品和服务在市场上颇有竞争力,员工平均薪水是行业前几名,那你需要进行第 3 步分析,看看你在公司内是不是处在边缘位置,离核心很远。 3. 个人在公司内的位置 在一个公司内,你的位置越接近核心,你的重要性就会越高,你能得到的回报也就越高。 一家公司的核心职位可能有这些: 核心产品(业务)相关的职位,比如研发、销售、产品设计等。 现金牛产品(业务)相关的职位,如研发、销售等。 管理职位,比如财务经理、研发经理等。 关键领导周围,比如总经理的秘书。 作为软件开发人员,可以从下面两个维度,很快判断出自己的位置是否核心: 你所在的团队,是否研发现金牛产品或核心产品? 你在团队中,是打酱油的,还是能够独立负责关键功能模块的开发? 这两个维度可以导出 4 种结果: 当你处在 A 位置(核心)时,你的收入一定是公司内比较高的,奖金也一定是比较高的。 如果你已经在 A 位置了,薪水还低于团队均值,那可能是: 进入公司时谈薪水没谈好 刚从边缘位置转到核心位置,薪水调整还没跟上 没有很好的呈现自己,在领导眼中绩效表现一般 只要找到原因,解决之道自然就会浮现。 公司在行业内提供的薪水很有竞争力,而你的薪水却比较低,这时你往往处在 B 、C、D 这几个位置。 此时你想要提升收入,方向就是往 A 移动: 想要往 A 移动,一般需要从个人能力着手。 一个人在公司内处在相对边缘的位置,个人能力又没问题,是很难让人相信的。 4. 个人能力 要完成位置移动,先要有目标,然后寻找目标和现状的差距,最后用行动消除差距。 目标可以是 A ,也可以是某个中间位置(比如 D 的第一步目标可能先是 B )。 找到了目标 T ,就可以看看 T 这个位置,需要什么能力。你可以通过下面 3 种方式来了解: 查看相关职位的任职要求 观察处在 T 位置的同事,或者与他们沟通 与团队的管理者或人事部门沟通,了解他对 T 位置开发者能力的理解 通过这样的分析,你就能得出 T 位置需要的能力清单。 接下来就可以分析个人能力了。可以从以下三个方面来分析: 技术:比如 C++、Java、Akka、Spark、Kafka、Redis 、Git、Docker 等 业务:理解、分析、分解业务的能力。 软实力:沟通、目标管理、聆听、反馈、激励、计划管理、逻辑思考、设计、想象力等。 按照这三个方向,你可以梳理出自己的能力清单。 对比你自己的能力清单和目标位置 T 需要的能力清单,你就能发现自己的努力方向。比如 T 需要你懂 Hadoop ,而你还不会 Java ,那你接下来就可以去自学 Java ,自学 Hadoop ,当你具备了 Java 和 Hadoop 这样的基础,就有可能转到 T 这个位置上来。 分析收入提升策略的流程 绘制了一张简单的流程图,作为对前面 4 个分析步骤的总结: