为什么互联网大厂校招的薪资一年比一年高?为什么作为打工人的我们,总是被倒挂?
其实互联网公司倒挂现象非常普遍,很多公司应届生比工作多年的员工工资还要高。
我认为薪资倒挂并不是坏事,能薪资倒挂的行业才是兴兴向荣的行业、有希望的行业、值得去卷的行业!
那么我们究竟如何看待「薪资倒挂」这个问题呢?和大家分享下我的看法:
很多朋友不理解互联网企业为什么经常会薪资倒挂。
互联网是一个高速发展的行业,这个行业的头部公司更是如火箭般的窜升速度,高速发展的老业务和层出不穷的新业务,都需要大量的人才。
对人才的渴求就会从社招侧的直接挖人蔓延到校招侧的「囤积人才」。
哪怕没有明确岗位和业务,先把人招过来,这样竞争对手就无人可用了。
这事不光腾讯做过,百度阿里华为等公司都干过。如果大家都同时干这件事呢,自然让新人的价位水涨船高。
这个时候企业提升薪资是为了保证招聘端的竞争力。否则压根招不到新人,进而严重影响业务发展。
那么老员工的薪资呢?他们的感受呢?说实话公司没有这么Care,更不会立即给老员工涨薪。
当然这并不是说公司不重视老员工,而是因为公司早就算好了一笔小帐。
这里得用点产品上的概念来解释了:拉新、留存。公司招聘体系和涨薪体系,完全就是平行的两个体系:一个负责拉新,一个负责留存。
拉新必须按市场变化来定价,不然一个新Leads都拉不过来,留存你懂的,用户已经被弄到平台上来了,只要公司提供的价值+迁移成本>竞争对手提供的价值,用户就不会流失。
对于公司员工,企业能给的价值当然就是薪资和福利了。
迁移成本其实就是你对薪资倒挂的忍耐极限,一般来说30%以内,打工人是不会立马行动的。
所以给老员工涨薪一定是滞后的,立马给他们涨了公司反而承担了额外的成本。
在这件事上,再牛逼的公司选择的策略都会是:只要不是民怨沸腾,那就装瞎子。
哪怕是好的企业,都会先拖个半年,然后再放点普涨的消息,再过半年落实涨薪。一年的成本就省下来了!
更别提在一些无良公司,一直倒挂到底,除非你提离职,一提就加不提就装傻。这些都是很常规很标准的操作。
记得我2008年应届生加入腾讯,内网有个留言过千的帖子。就是关于老员工薪资倒挂的讨论,不乏有很多老鹅直接开喷。这个帖子存在半年了,当然腾讯也算比较大气,没有删掉。但半年也没给这些老鹅们加薪。
最后民怨太大,Ponyma出面把矛头对准了人力资源。老鹅们应声加薪!
其实也很容易理解,人力部门有两件最重要的事儿:
这两件事,任何公司的人力部门必须都做好,那么老员工在很多时候就只能被牺牲了。
无论对新的校招生还是往届打工人来说,薪资倒挂都是利好。这说明行业的趋势向好!
在一个萧条的行业大家的薪资一定都是温水煮青蛙,多年不变。在薪资倒挂且高速发展的企业,老员工的低薪问题迟早也会解决。
毕竟时间长了,经验丰富的员工大量流失,带来的企业成本不可承受。
所以大部分企业拖个一年半载,最终还是会选择集体普调。更别提这个时候选择离职的员工,重新回到劳务市场,完全可以争取更高的待遇。
腾讯这次率先大幅调整校招生薪资,不出意外几家大厂会迅速跟进,进而会传导到很多互联网公司。
虽然对行业利好,但老员工被新员工倒挂的滋味一定不好受。经验更丰富、干的活更多、吃的草却更少,这的确是很憋屈的感受,但我们要理性面对这种现实。
在谈应对策略之前,先聊聊打工人和企业的关系,旧文说过一个观点:别把公司当家,而是要把自己当作公司来经营。
这篇旧文感兴趣的可以看看:把自己当做公司经营,是高手最重要的人生哲学。
很多公司很多领导会宣传:我把你们当家人,你们要忠心不二,很多员工也会产生幻觉:公司真是一个大家庭啊,真温暖。事实上,企业裁员的时候,绝不会把你当家人。
打工人和企业的关系只是一种合作关系:你付出时间获得薪资和成长,公司付出金钱购买你的时间和劳动成果。
当你的能力不断提升,自然有理由要求更高薪资,甚至炒掉老板,另谋高就。
理清楚关系,我们再来讨论「如何应对薪资倒挂」。
首先,倒挂的只是薪资,而不是你的能力,只要能力持续提升,何必在意短期的倒挂?
其次,所谓轮回,被倒挂者,何曾不是倒挂人?当你们刚参加工作的时候,一样将前人倒挂在沙滩上。
更重要的,我们要有长期主义,要有耐心。短期的不平衡,放到更长时间线,一定会「均值回归」。
这个回归点,可能是公司终于给大家普调了,也可能是你的能力已经极大提升,履历完整之际,来个跳槽翻个倍。
我有个关于打工的观点:公司付钱给你积累经验和能力。所以一直以来,我更关注的是自身能力的高速提升,而不是薪资的高速提升。
毕竟薪资的决定权并不在你,而不断提升能力是你可以控制的事情,关注能改变的事情,更容易拿到想要的结果。
写在最后
公司对于我们而言,是漫长人生旅途中的一个关卡。我们不应该太关心闯过关卡之后,能够得到多少物质奖励。更重要的,是在闯关的过程中,我们的能力能够增长多少。
因为,后者能够决定,我们是否有足够的底气,去挑战真正的人生关隘。从而拥有功成身退甚至成为资本本身的机会。
太多人刚开始工作收入微薄,但慢慢积累,不断努力,最后一发冲天。或许开始时他们也对自己的收入不满。但绝不会陷入这种不满导致愤懑不平,而是将其转化为努力的动力。
如果你也是被倒挂之人,不妨解开这心结,努力把握眼下比金钱更为宝贵的光阴呢。
打工人!加油!
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我有一大串格式化数据(例如JSON),我想使用Psychinruby同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解