今天有个前同事联系到我,抱怨如今好的前端程序员很缺,正好前几天五一的时候看到 Twitter 上不少人公开讨论本身的薪资,有一些感触。大部分程序员,尤为是前端,天天都要关注技术进展,几乎没时间关心别的,性格每每也不善言辞,老实巴交,凡事先反思本身的技术水平,因此我打算写这篇文章谈论一下薪水问题,但愿对别人有些帮助。
首先简单介绍一下我的状况:本人以前在北京工做五年,技术能力平平,没多少谈论薪水的经验,相比之下薪水一直不高,好在不太在意薪水,也有时间想这些乱七八糟的问题。如今离开行业也已经近两年,因此这篇文章的内容可能都是纸上谈兵,你们看的时候多留个心眼,不要被我骗了 *_*
在往下看以前,请问本身一个问题:我辛辛苦苦作程序员的目的是什么?若是只是磨练技术水平,作出更完美的东西,物质什么的无所谓,那么就不用往下看了。若是你不止想提升本身的能力,还想随着经验增加不断挣到更多钱,那么下面这句话请跟我重复三遍:
你之因此挣到那么多薪水,不是由于你「值」那么多,而是你能「要」到那么多。
你之因此挣到那么多薪水,不是由于你「值」那么多,而是你能「要」到那么多。
你之因此挣到那么多薪水,不是由于你「值」那么多,而是你能「要」到那么多。
不少程序员特别诚恳,本身的薪水不高首先就怀疑本身的技术能力,告诉本身没有怀才不遇这回事。看到「为何如今好前端那么少」之类的问题,首先也不想到如今市场变了,前端更值钱了,而是把前端技能树列出来,告诉你们前端要掌握的能力不少,最后说一句咱们还不够努力。固然,这么想在某些方面是好事,能够勉励本身不断努力,但让咱们面对现实:你的薪水大部分是市场决定的,不是你的能力决定的。
举个极端的例子,假设你是世界上最顶尖的 100 个程序员之一,技术好到爆,可是由于某些缘由,世界上只剩下 50 个公司须要程序员,并且他们每一个公司都只须要 1 个,最高只能给你 2000 一个月,那么你最多每月也就能挣 2000 。这个和技术水平无关,就是需求没那么多,你再牛也没办法。
为了不误会这里要强调一下,我不是鼓励全部人都去钱多的行业,赶忙跳槽,而是说在提升本身技术能力的同时可能须要认清这样一个现实,不然你可能觉得只要提升能力就能挣到更多的钱,只会埋头钻研技术,最后发现达不到目的又反过来抱怨。不是世界欺负你,是你的方向有些误差。
那么怎么样才能挣到更多钱呢?很简单,四个字:
多要点儿。
多要点儿。
多要点儿。
首先讲一个不知道是心理学仍是经济学的概念,叫作「锚定」。好比说咱们去买手表,有时会看到柜台里有一只手表比其它手表都贵得多,会很奇怪它能不能卖得出去。但事实上它不是用来卖的,而是在你的内心作一个参照,这样你就不会以为其它手表很贵了。
因此当你和 HR 谈论薪水的时候,首先就要开高价,这样就给他们一个参照价格,就算他们不能承受,回给你的价格也会接近这个参照价格。而若是你一开始就要的比较低,就算 HR 可怜你,也不会比这个参照价格高出多少。担忧 HR 也懂心理学识破你的把戏?别怕,「锚定」最妙的地方就在于,就算对方知道这个心理现象,哪怕他是个心理学家,仍是会受到影响。
另外一个事实是,若是找工做的时候你不敢张口,致使起薪很低,那么别期望每一年公司内部的加薪。下次再大幅加薪只有跳槽。之前我很是天真,以为起薪低没啥,只要努力干,公司确定不会亏待个人,但在我学习过公司的激励制度以后,猛然发如今一个公司里「加薪」是激励员工的最后选项。加薪对员工激励最大,可是一旦加薪就很难再降回去了,因此加薪必定要很是谨慎。这就是说你想要薪水大幅提升,就只能跳槽。
或许你还会担忧这样狮子大开口会不会致使对方很是生气,而后拒绝雇佣,最后致使找不到工做呢?若是你有这样的疑问,请跟我重复三遍下面的话:
HR 不会和我同样幼稚。
HR 不会和我同样幼稚。
HR 不会和我同样幼稚。
程序员通常都不会掩饰本身的性格,有技术防身,见谁黑谁,照样活得不错。可是在不少其它行业是有社交规则的,就算很讨厌你也不会在办公室对你摆一副臭脸,并且当他们想要招你的时候,若是价格不合适会和你继续讨价还价,而不是拍桌子走人。他们可能会在朋友圈骂你癞蛤蟆想吃天鹅肉,但面对面的时候仍是会很礼貌。
找工做就是推销本身,这个时候咱们就不是程序员,而是一个 businessman ,因此要专业一点。咱们要作的就是在找工做的时候暂时收敛一下本身的性格,努力彬彬有礼,开高价的时候也要专业天然,摆出协商的姿态,而不是拽得不行。最新一季纸牌屋里面 Claire 在俄罗斯监狱里面劝说那个理想主义者说:You want change? Then learn how to compromise. 内心有「妥协」两个字才更可能达成交易。
「开高价」和「妥协」在一块儿使用很奏效。前几天 Twitter 上讨论薪资的一篇文章很值得一看:
http://www.kalzumeus.com/2015/05/01/talking-about-money/ ,做者在里面总结到:
If a buyer pitches me on 2X my desired number I will, naturally, say “That’s an interesting number. If you were offer insert 2.2X here I think we’d have a deal.” No buyer will pitch 2X if they know what X is, though. A younger, less savvy me would interject here “Why ask for more money given that they’ve already offered you enough?” and my answer to that is “Because everyone in the negotiation is a businessman and any number we are mutually happy with is a morally acceptable number. Given this, and keeping all else equal, I prefer ‘more’ to ‘less’ and always, always, always ask for ‘more.’ You should try that — it’s a trivial tactical suggestion which helps address you systematically low-balling yourself, which you’re prone to. You think that asking for ‘more’ will result in ‘less’ being yanked from the table, but you believe this because you’re young, inexperienced, and working from a narrative about desert which is quite disconnected from how rational businessmen actually operate. No counterparty who you actually want to work with will hold good-faith negotiating against you.”)
Always, always, always ask for ‘more.’ 若是你开的价格没有公司能接受,那么为了找到工做你天然会调低指望,这就是市场的力量。咱们要相信市场的力量。
还有一个误区是认为薪水和能力是绝对正相关的。再举个极端的例子:全世界只有 50 个程序员,你是最烂的一个,其余人都鄙视你的代码。但如今有 100 个公司,每一个公司须要 5 个程序员,你依然能够要到高薪。
程序员群体很重视技艺,这点有时我很喜欢,有时我很反感。可能我程序写得不太好,可能我比较笨,但一个烂程序员也是人啊!咱们也有追求高薪和幸福的权利!大家固然能够不给咱们高薪和幸福,但不能和 HR 一块儿嘲笑咱们的梦想!公司招人是很理性的,通常不会有 All or nothing 这种想法,当他们的预算不够或者没有吸引力,找不到一个好的程序员时,他们宁愿找一个烂程序员,至少烂程序员也能够干活。并且若是咱们能力确实达不到市场要求,天然找不到工做,生活变得艰苦,命运会惩罚咱们。有时候看到一些优秀的程序员嘲讽「某些人能力不够还开天价」,我就以为奇怪,每一个人都有开价的权利,不肯意给就拒绝好了,我们能不能别那么幼稚。
而做为烂程序员,咱们要把技艺和薪水分开。技艺不够要谦虚,多向大牛学习,可是薪水是另外一回事,坚定不能自卑自暴自弃,仍是要尽可能多要。((「你觉得我穷,低微,不漂亮,我就没有灵魂没有心吗?你想错了! 我和你同样有灵魂,有一颗完整的心!」)——简爱)还有一个经济学理论叫作「更大傻瓜理论」。当你看到一个易拉罐,你知道它是个垃圾,但也知道会有一个富豪花高价买下它,那么你就要买下它,由于会有比你更大的傻瓜接盘。固然,咱们只是程序写得烂,比垃圾仍是好不少(虽然在大牛那里就是垃圾 T_T),因此若是有人愿意高薪聘请咱们有什么奇怪呢?
并且烂程序员能要到高价,说明市场不错,这对整个程序员群体都是好事,那些优秀的程序员就能挣到更多。一个反例就是不少作外包的特别讨厌学生,由于学生要价特别低,扰乱整个市场,若是他们多要一些,你们会更好过。上面那篇文章中还提到,做者在挣到 30K $/year 和 30K $/week 的时候技术能力并无太大区别,"I just got better at organizing the business to expose me to opportunities to capture the better rate. "
这里须要说明的一点是:若是自觉是一个烂程序员,找到好工做千万不要做贱本身,以为是公司施舍给你一份工做,今后感恩戴德。固然在哪里都要努力工做,可是记住一点:公司绝对不会施舍给你工做的。公司很是理性,他们招你是以为你最合适,不招别人是别人能力不如你,或者不肯意来。他们不开除你不是由于可怜你,而是由于你能完成工做,或者你工做能力虽然不太好,但再招聘一我的成本很高,不如将就一下。有些公司主管特别莫名其妙,巴不得以为是你们的衣食父母,常常有那种高高在上的施恩的姿态。对公司女同事能够有感情,可是对公司就没必要了,从小到大咱们遇到多少一脸「咱们生你养你多不容易」以及「我是为了你好」的莫名其妙的人,不须要再多给本身找一个。啊,感恩,多少恶行假汝之名以行!
不少人可能会以为若是程序员都要高价,创业公司就招不起人,这样不利于创新和理想主义。首先,没有多少公司想要创新,不少人都是奔着被收购或上市去的,找人一块儿抢银行固然要先谈分赃。其次,要高价其实能够帮助更好识别那些理想主义的公司,一个听到别人要高价就在微博上骂人的 CEO 确定是无法创新的。程序员那么老实,如今一心看钱,还不是由于你们都通常黑?真有一个想创新的,确定马上被感动了,顾不上钱了。
事实上,愈来愈多的公司懂得宣传和包装本身,口号喊得比谁都大,让人以为谈钱很羞耻。这样的公司说着「善待员工」,实际上巴不得把员工体检和 team building 都安排在周末,而且以前和以后都要顺便开项目会议,为何不让员工周末在家陪家人呢?程序员哪有家人?在家本身打游戏也好啊,要你管。不少人以为谈钱伤感情,但正如塔勒布在《反脆弱》一书比较了商界和学术界以后说的:「金钱和交易净化了关系;而“承认”和“信用”等概念和抽象的事物则围绕着学者们,致使造成一种没完没了的竞争氛围。」若是你拿到高薪,心情就会很舒畅,不少事情就会变得包容,就算老板抱怨某员工要价过高你也能体谅他创业不易,须要不断宣泄。
我也是看着 Google, Facebook, Amazon 的故事一路过来的,也曾由于看到它们给董事会的信里面义正严词地写「咱们更看重长远发展」而激动不已,可是毕业以后被打击获得如今还没太回过神来。若是你也被硅谷文化吸引,那么尽快去硅谷,不然你就要意识到,硅谷的文化和美国其它地方的文化都有很大差别,更别提中国了。若是你正在或打算看硅谷文化的书,别拿那个当标准,向往一下,或者当个遥远的梦就行了。
接下来我想说一下:为何前端工程师应该拿高薪。
众所周知,中国经济发展速度很是快,并且最近好像要大力发展互联网行业。我性格懒散,并且一直不知道本身要什么,因此不太愿意拼命挣钱,想要按时下班,而后思考人生意义(严肃)。是的,我就是李彦宏曾经发文严重鄙视的那种「小资」。我并非想找一个「钱多活少」的工做,而是想相对挣少一些,同时没那么多加班,但后来发现几乎不可能,由于在这样的大环境下公司都发展很快,不加班的工做就是没有工做。
公司发展快的结果之一就是产品迭代特别快,不少可能只是实验性质,若是某段时间内用户达不到多少就直接砍掉。这个时候前端工程师彻底就是苦力,干的是体力活,天天都要应付不少新需求。这也就罢了,问题是技术理想彻底被践踏。想要优化代码?想要应用设计模式?屁啦!这个页面说不定下周就要重作,赶忙上线是正事!别难过,等咱们产品成功了,给你招几个小弟好好重构代码!
一段时间之后,尽管项目经验丰富了,但技术水平好像在退步。由于早就被社区灌输了「程序员要不断学习」的观念,心中后怕,周末不去相亲打算学点新知识,结果发现硅谷那帮人又造了一堆框架和类库,并且如今都不说 just works 了,动不动就 most advanced 或 popular ,错过一个都以为亏,还有一堆人成天在 blog 上写恐吓文章:2xxx 年不得不知的几个趋势,5 most useful tips in web development。心生疲惫以后发现 AngularJS 发布了 2.0, 宣布彻底不兼容 1.0 ,他妈的又白学了好多。
因此国内的前端工程师不少都处在只有输出没有输入的处境,长时间重复劳动,没时间应用新技能,没时间学习新知识,就算有时间也一团乱麻,经常担忧本身被业界抛弃了,对不起笔记本上贴的 HTML5 贴纸。若是你真的碰到一家对技术精益求精的公司,也可能并非好事,技术主导可能拖累产品进度,致使商业上的失败。
有些人或许会说如今自己就是「终身学习」的时代,本身学习能力不行不能怪别人。但学习是有分别的,有些学习能够积累,而有些没法积累。不断编程确实能够提升不少方面的经验和能力,好比调试能力、系统架构能力,但有些具体的经验,好比学习 AngularJS 1.0 ,等 2.0 普及以后可能大部分就没用了,而新人彻底能够跳过这些经验,他们也更年轻,更有好奇心,更爱加班,把前浪拍死在沙滩上很容易。
我很难赞成那种刻薄的论调,即把全部问题都归结到程序员「缺少危机意识」、「学习能力不够」。一个有多年经验的前端程序员本能够去作架构师,继续发挥做用,但整个行业并不给他喘息的机会,到后来不少人转管理,而后你们又抱怨为何国内程序员寿命那么短。
鉴于前端程序员那么辛苦而且职业道路坎坷,并且如今创业公司个个都要作网站或 App ,严重缺少前端程序员,因此你们应该趁这个机会把薪水提升一些,再提升一些,把整个行业的薪水都拉上去,固然啦,是在不耽误研究新技术的状况下。若是有公司许诺有远景或者重视工程师,那么问一下本身:这家公司在这样的环境中远景究竟是什么?有没有能力对抗整个环境?嘴上说的和真正在作的同样吗?
这里说句题外话,常常见到高管,CEO 以及其它成功人士在微博上教育别人,他们说的那一套都对,「忠诚」、「长远眼光」之类的,但为何一个忠诚于公司的人,薪水要比一个跳槽出去再跳回来的人差那么多呢?为何整个环境那么浮躁,鼓励你们放弃好的品质呢?为何向上面要市场而向员工要道德呢?我以为有影响力的人更应该思考这些问题,而不是但愿有一群奴隶。
写了这么多,不少人可能以为我惟利是图,斤斤计较,negative & mean 。no, no, no, 那只是表面现象,拿高薪这件事情意义重大:
当程序员拿到高薪以后,就有更多时间思考技术,也更乐意为开源作贡献或教育业界新人。同时那些给不起钱又没理想的公司会慢慢倒闭,整个行业的资源获得优化配置,更具备创新能力。美国人再也不想要把工做外包给中国程序员,而是转向越南或者美国,缓解这些地区的就业问题。因此仅仅经过提升本身的薪水,咱们就能够 make the world a better place, 让世界变得更好。(P.S 咱们也毫不愿意生活在一个产品经理薪水更高而且比咱们更能让世界变得更好的世界,哼。—— 参考
《Silicon Vallay》第二季)