在我的整个职业生涯中,我屡屡目睹才华横溢的工程师经过短暂而痛苦的一段工作后离开原公司,去了更好的公司。
其实我自己也做过这种事,我曾在一家很棒的公司呆了不到两年后离开了,并加入了另一家公司
撇开我的例子不谈,我认为从宏观视角来看待这个现象,这是组织的问题,而不是个人的问题造成的。
在招聘新人时,公司都被迫在公开市场上互相竞争,抢夺顶尖人才。但在企业内部,它们制定了一套又一套不透明且信息不对称的薪酬结构,其目标是最大限度地遏制现有员工的薪水增长速度,为公司能省一分是一分。
我并不想加入这种类型的公司
因为软件测试行业就业市场非常火爆,测试开发人员都会在各家公司之间跳来跳去,并在这个过程中获得巨额加薪。
但我们用经济学家的头脑来思考一下就会发现,在一个完美的市场中,这应该是不可能做到的。如果达到一定技能水平的开发人员能够在公开市场上获得一定的薪酬水平,那么为什么他们现在所在的公司不给他们发同样金额的工资呢?
在我们这个不完美的世界中,具有一定专业知识水平的工程师会加入一家公司,花时间在该公司内部学习和发展这个领域的专业知识。但最后无论出于何种原因,工程师发现,这种技能水平的增长在本公司外部更容易获得认可。
下面的图片可能有助于说明问题。首先,市场化薪酬是随着求职者经验的增长而增加的,当然前提是工程师正在提高他们的技能水平。
这个趋势很合理不是吗?好吧,让我们看看工程师在 Acme Corp 工作的薪酬曲线。注意这条线的斜率有点小。是不是很有意思?
在我看来,许多公司之所以会控制这条线的斜率,可能是为了在短期省点钱,满足这种短视的追求。
那么如果我们谈论的是就职年限与离职补偿的关系,斜率会怎么样?看看这个陡峭的角度。
看吧,开发人员在公司工作时不仅提升了他们的可转移技能,他们还获得了许多只对这家公司有利的领域知识,这些东西是非常有价值的。但问题是它只对那一家公司有价值!我们把它们都放在一张图中来看一下,这里就不要吐槽我混用单位的事情了。
让许多公司难以理解的一个严峻事实是,它们应该向在公司内长期任职的工程师支付高于市场价格的薪酬。 这是因为在一家公司工作了很长时间的工程师在这家公司中的影响力比在其他任何公司中都更大。
说起来容易做起来难
嘴上说说“给你的开发人员付更多钱”是很容易的,但实际做起来从来没有那么简单。
一方面,这种薪酬结构对于处于非常早期阶段的初创公司来说是不切实际的,因为在这些初创公司中,老板通常不可能向前几名工程师支付市场水平的薪水。
此外,即使没有人力资源基础设施,简单和平等的氛围也可以帮助早期公司蓬勃发展。
**当炙手可热的新人初级工程师突然开始超越老前辈时会发生什么事情?**凭借基于影响力定价的薪酬结构,她理应获得可观的加薪,但公司是否愿意接受这一点,并冒着让其他团队成员不高兴的风险给她加钱呢?
这时出现“薪资倒挂”的现象,老员工对此肯定会有不满,但是公司又不愿提升薪水,那最终的结果就只能是老员工跳槽。
那如何应对这种情况呢
提升自己的实力是最好的办法之一,当你有实力的时候,你的选择面就宽广了起来,有句话:“此处不留爷自有留爷处”
作为一名从业5年有余的测试工程师,我把自己的一些心得感悟留在下面,希望能帮助到更多的“测试人”
第一阶段——先入行
先学python+接口测试。接口测试是现在应用最多的技术,也是性能测试的基础。
python则语法简洁,可以用的第三方库多。学习目标是使用python搞接口测试。
这一步不建议选择主要用jmeter、postman等现成工具搞接口测试的岗位,依赖工具会浪费你的工作年限,导致无法在技术上深入。
这一步不建议去做移动端测试、图形界面自动化、游戏测试,选择这些依赖于图形界面的测试类型也会导致在技术上深入极其困难。
这一步不建议去小众的企业做小众的领域,会导致后续无法顺利跳槽。
这一步不建议做手工测试为主的工作,如果你的工作是手工测试为主,那就自己想办法搞成用接口测试做。
这两个学完后在一线城市理应拿到10-20k的薪资。胜任一般企业的初级和中级测试开发岗位。这一阶段往往使用别人写的测试框架,自己虽然不会写,但是会用。
绝大多数测试人员停留在这个阶段。这个阶段稍微基础好一点的应届生,花两三个月就能胜任。并不是有的人工作十年八年就脱离这个阶段了,特别是一开始选错岗位的人,会吃死选错岗位的亏。而点点点时代遗留下来的老人,也还在这个阶段去。
第二阶段——筑基
以自己用python等语言写测试框架、测试工具为目标,继续进行学习。一方面对计算机网络的理解要加深,另一方面对web开发、服务端开发的理解加深。在工作中偶尔还需要做性能测试,开始涉及性能测试原理、脚本等。这一阶段需要补充软件测试理论知识,理解各种测试是怎么做的,为什么要这么做,如何根据实际项目调整测试方式方法。此时还会学习大量的开发知识,你的项目的开发用什么就学什么。比如我要做一个oracle数据库同步百万条数据到awsrds数据库的测试。那两个数据库加上同步工具我都得学一点。这里学习的速度和独立程度标志着和下一阶段的区别。
在这一阶段需要积累很多开发知识,才算打好基础。同时在学习中理解了如何学习。值得一提的是,好学校的好学生可以在学校里就完成筑基的大部分。而上一阶段走错路的人压根就没意识到他需要学开发知识。“我就是不想写代码才做测试的”,卡在上一阶段的人如是说。实际上不是他不想,而是他不能,他不会,他学不进去。
这一阶段的积累方向不同会导致下一阶段的岗位不同。建议积累方向在写下一阶段时讲。
薪资大约是一线城市15-30k。
第三阶段——“大成”
如果不具备独立且快速学习新技术的能力就不算进入这个阶段。在上一阶段积累大量技术后,水到渠成进入这一阶段。在这一阶段,开始意识到自己在上一阶段写的测试框架、工具的缺点和设计上的失败之处,开始有了软件设计的意识。从瞎jb乱写代码走向了写优雅的代码。上一阶段的积累方向不同决定了大成期的岗位方向不同。
通用的积累的技术有:性能测试原理、操作系统、计算机网络、编程语言、数据库原理、git、持续集成。
可选的:微服务、大数据、高并发、云平台等等。
1.主攻性能专家方向:各种web服务器、jvm、各种数据库、linux、中间件等等各种东西的配置和使用。这些在调优时都要用。高并发编程,自己写压测工具时要用。
2.主攻测试开发专家方向:web开发包括前端后端、数据可视化、devops工具链(几十种工具)。
3.主攻移动端专家方向:抱歉,我不会这个方向,总之列在这里表示这个可以有。
4.主攻安全专家方向:呵呵,这个我也不会,而且安全专家往往不认为自己是测试(性能专家也不认为自己是测试,确实也不是)。但总之我也列在这里因为也有这种岗位存在。
薪资大约是一线城市20-40k。
送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了!
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
点击文末小卡片领取 |
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:25天从零基础转行到入职软件测试岗,今天学完,明天就业。【包括功能/接口/自动化/python自动化测试/性能/测试开发】