什么决定了程序员的价格,程序员该如何溢价
什么决定了程序员的价格
所谓的职业就是企业和员工之间的价值交换。
企业付出薪水,福利来雇用员工,以期通过员工的劳动来实现企业的目标。
员工付出劳动,技术,以期通过在企业中的劳动来实现自己的目标。
当双方都觉得收获大于付出的时候,交换就会产生,于是供需双方达成合作,价格也就产生了,当然这里的价格不仅仅是薪水,而是多方面组成,参考马斯诺需求,现分类如下:
· 生理需求:薪水够不够吃饭,是不是老是加班,长期出差,是不是需要大量应酬喝酒抽烟,是不是腰椎颈椎有问题,是不是压力太大影响心理健康。
· 安全需求:工作是不是稳定,是不是会随时裁员,朝不保夕,公司可能不可能被兼并或者面临倒闭。
· 社交需求:团队氛围是不是很好,是互相信任,还是勾心斗角,工作环境活泼还是压抑。
· 尊重需求:公司或者上司的领导风格是否过于强硬,是否尊重员工的劳动成果,员工的工作是否有技术含量,在业内得到认可,员工所在的公司是否得到社会的尊重。
· 自我实现需求:是否能够学到新的技术,是否能够职位上难以提升,是否工作过于清闲,职位被架空。
那么程序员到底价格几何?由什么来决定的呢?
在工作或者面试中,我们常常看到有以下两方面的误区:
· 企业方面:在给企业提出多少薪水的时候,想想你给企业能够带来多少价值。
凭什么你一个大学毕业生,刚入职场,就要求给你2万的收入?你想想你一个月能够给企业赚2万元么?我们还要花时间培养你。你先来我们这里,给你一个月5000,等你的能力上去了,相信薪水也会跟着上去的。这是我们经常听到一些老板的理论,每当这个时候,被问到的求职者就会苦笑不得,我也不知道我能不能给企业每个月赚2万,但是我的确得到了另一个公司的2万的offer,你给不了,我就要去他们那里了。
老板的这种理论是典型的使用价值决定价格的理论,虽然这些老板对求职者是这个样子的,转过脸来对消费者就不是这个理论了,变成了供需理论,同样一个房子,原来5000一平米,现在30000一平米,房子给我带来的使用价值值得我花这么多钱么?老板会说没办法,需求太旺盛了。其实同样对于程序员也是这个样子的,是供需而非使用价值决定了我们的价格,我们只要保证在市场中像我们这样整体素质的人需求大于供给就可以了,举一个极端的例子,如果公司想聘用一个清华大学毕业,学生会主席,英文流利,ACM程序设计大赛,就是他写出的软件年年赔钱(当然赔钱的原因很少是因为程序员的问题),你也必须要付出相应的价格才能聘用。
· 员工方面:我们程序员千辛万苦,加班加点做出的软件,老板卖了1000万,可是每个月还是给我们5000一个月,连加薪都不肯。
就像上面讲到的,软件赔钱的原因很少是由于程序员,其实软件赚钱的关键点也多不在程序员。为什么这么说你不是关键点呢?其实还是一个供需的概念。假设你的薪资水平是5000一个月,你们100个人一起完成了这个项目,和你同样水平的程序员在市场上有10万人,可以组成和你们一样的团队1000个,如果有机会的话,每个团队都想赚这1000万,但是却只有你们团队接到了这个项目,这里面可能有以下的因素:一是别的团队不知道,你的老板说不定跟了这个客户n年才知道客户需要这个软件,这叫信息;二是知道了,却拿不下来,招标人说不定是你们公司副总的小舅子,这叫资源;三是知道了,也有可能拿下来,但是前期投入需要500万,做完了才能赚1000万,可是你们这个团队所有能凑加起来才100万,挣不到钱公司就得垮,这叫资本;也可能是销售卖的好,也可能是市场广告做的好,客户相信你们的品牌等等等等,正是这些因素而非你的技术,让你们团队从1000个相同类型的团队中脱颖而出,所以你不是关键点。当然,如果你掌握的是很牛的技术,整个市场上一共100个人会,而想使用这个技术的公司就不止100个,所以是因为你的技术使你的公司脱颖而出,你理所当然的成为关键点,那1000万中你得一大部分也不为过。
所以,程序员的价格是由供需关系决定的,有一个概念叫做机会成本,也即公司换掉你再招一个需要多少钱,那么你大概就是这个价格。就像个误区中的公司,你如果想招这样的牛人,无论你的公司是否盈利,就必须要给这么多钱,你嫌他要的高,把他赶走,再招一个同样水平的,还是需要这么多钱,除非你降低要求,招个不那么牛的。再如第二个误区中的员工,如果你所从事的技术很多人都会,甚至培训一下就可以速成,那么如果你因为觉得这样不公平就不想好好干,老板可以辞掉你后,同样花5000到6000再招一个,并不影响其项目的进行。
程序员如何涨价
当然市场上价格不是固定不变的,而是不断变化的。
这种变化有客观方面的原因:有的时候因为需求的增加带来程序员价格的上涨。
一些新的产品,新的平台,新的理念,会造成新的技术方向,当新的技术方向刚刚兴起的时候,需求远远大于供给,从而造成在一段时间内从事新的技术方向的程序员薪资高企,引得众多程序员趋之若鹜,然而当进入这个新的技术方向的程序员大大增加后,薪资就会慢慢回归。
另外就是整个社会的通货膨胀,新发的货币虽然先流入基建工程,如铁道,公路,或者房地产,金融,使得这些行业赚的彭满钵满,上游产业吃肉,IT业也能喝点汤,流动资金增多,很多创业企业就能够得到较多的天使投资或者风投,成熟企业也能够借机扩张,从而造成大量的程序员岗位缺口,引得很多人跳过去,这些人的跳槽又造成了原来企业的岗位缺口,从而终出现大家都跳一跳,薪水也都跟着涨一轮。
在主观方面,作为程序员,我们自己更应该做的是,减少相同水平的供给量,也即提高自己的不可替代性。有人可能会说了,不可替代容易啊,人们不能两次踏入同一条河流,世上每个人都是不一样的,每个人由于性格特点,个人兴趣,学习经历,工作经历不同,会形成不同方面的能力,虽然每个方面的能力不是好的,但是各方面综合起来,就会存在一定的不可替代性。
比如一个人英语好,爱炒股,本科学的会计,研究生读的是计算机,也许这个人做不了好的翻译,不能成为好的证券分析师,不能做好的审计员,不能成为牛的软件工程师,但是如果说要找一个四门全会的人,这个人就有很好的不可替代性。这种说法有一定的合理性,不过还是必须要指出的是,这里的不可替代性,是供需关系下的,不但要强调供给(我具有某些能力),还要看这些能力有没有需求,以及这些能力有没有需求结合点(同时需要这些能力)。显然如果一个公司不需要某项能力,就不会为这项能力付出额外的薪水。比如这个人找了一家做web开发的国内公司,公司就仅仅会付给一个软件工程师的钱,如果这个人碰巧找了一家做财务证券软件的外企,则公司自然会为外语能力,证券知识,会计知识付出额外的薪水。这不但告诉我们,在找工作的时候,应该尽量去寻找你的各项能力有需求结合点的公司,也同时告诉我们,自己的职业生涯需要好好的规划,使得自己的多项能力更容易找到需求结合点,而不是东一榔头,西一棒子。设想如果你做了三年C++,三年Java,三年C#,结果样样通样样松,哪一方面也要不上好的价格,和做了9年C++的人就不能比了。
那么程序员应该如何规划自己的职业生涯呢?当然谁都不可能一毕业就知道自己想做什么,即便有想法,也可能能力不及,暂时不能实现,即便能够实现,也可能做着做着,发现初的想法不符合。但是必须指出的是,一个人,无论多么不成熟,无论前途多么迷茫,每个阶段,都应该有一个目标,随着自己的路慢慢的走,经验不断的积累,前面的路能够看的清楚一些,可以根据自己的经验,性格特点,做事风格,已有优势,目标可以进行一定的调整(不必固执于原来的想法,请参考老罗语录Happy Accident),每次调整,可能都会面临选择,没办法,只有像李开复说的那样follow your heart,追随内心,人都有一个特点,追随内心的选择比较不会后悔(至于对不对,人生没走完,谁也不知道)。比如面临A,B两个选择,内心想选A,可是家人,朋友都觉得B好,如果选择了A,A选择顺利,则会庆幸自己的选择,如果A选择不顺,也会想,就算选B也可能不顺,相反如果违心选了B,如果B顺利,会想如果选A说不定更好,如果B不顺,则抱怨家人朋友让自己掉坑里了。(也提醒大家在亲友人生重大问题上,必须让其自己选择)
前面说的比较抽象,下面具体说说。在这里,我把程序员的能力分为以下几个维度:技术深度,架构广度,业务知识,管理水平。
当一个程序员从学校里面出来,所掌握的基本只有计算机基础知识以及程序设计语言,这个时候,会面临个选择,就是语言方向问题,java/C++/C/C#/PHP/Python/Perl等,有的是主动选择的,非这个我不做,大多数还是被动选择的,可能在学校学习的是C++,擅长的是C++,面试的也是C++,但是分到团队后,发现项目是Java的。因为刚毕业,程序员像一张白纸,公司不怎么挑面试者的语言,觉得只要基础好,上手都很快。如果你有很强烈的语言倾向,则在前三年务必坚持使用这门语言进行开发,如果这三年使用了其他语言,再去面试的时候,公司就不再会相信你在大学的时候擅长某门语言这个故事了,在想转回去难上加难。如果没有强烈的语言倾向,倒也无所谓,每门语言都有自己的优势,也都能出牛人。在初的三年,根据接触的项目不同,你已经开始接触某个技术分支,比如Linux应用程序开发,linux内核开发,windows应用程序开发,windows driver开发,Java SE,Java EE等。
在这三年,你可以不怎么稳定,换项目甚至不断跳槽,职业生涯初期的频繁跳槽还是比较容易得到理解的,但是不是盲目的跳,你要做的一件事情就是确定好自己未来的技术分支,并开始在这个方向上深入研究,形成自己的维度的能力——技术深度。
根据不同的人基础不同,确定技术方向的快慢,深入研究的努力程度不同,在职业生涯的第三到第六年,技术深度一般会达到一定的程度,大多数人都会成为工程师,在这个阶段的后期,一般会再一次面临选择,这是职业生涯中关键的一次选择,将影响职业生涯的第六年到第十年。
有的人会选择更细的技术分支进行进一步更深入研究,继续扩大自己在技术深度这一维度的优势,此类人职业规划简单直接,就是成为某项技术的大牛,不希望找过多的需求结合点,就像郭靖一样,就是降龙十八掌一掌一掌练下去,就靠一技之长行走江湖,跳槽也是容易,只要是需要这方面技术的就可以,其他的我不想做,对于此类程序员,我的建议还是选择一些有技术含量,稳定不易淘汰,不是一时半会儿能学会的方向,比如linux存储系统的开发,数据挖掘,图像处理等。
有的人不希望进一步扩大技术深度这一维,而是希望整个系统从前端到后端,从底层到上层都能够有一定程度的了解,也即开始扩展架构广度这一维度,此类人对每一项技术都会了解到一定的深度,在各项技术大牛的帮助下,能够搭建起整个系统,他们的职业规划就是成为架构师,由于各个模块的技术都有可能更新,所以架构师需要不断的学习新的技术,不至于架构过老而遭到淘汰。
有的人做的软件是面向某个行业的,比如金融,证券,财务,航运,电力等,他们出来技术深度形成一定的优势外,在三到六年这段时间里,也开始慢慢了解这些行业,于是扩展了另外一维——业务知识,他们能够迅速理解这些行业的业务需求,并转换成为软件的需求,他们的职业规划就是需求分析师,他们需要更系统的学习业务方面的专业知识,以期能准确把握需求。
有的人在成为技术主力后,由于有一定的沟通和组织能力,开始带新人,以及领导一些人完成任务,于是扩展了另外一维——管理水平,他们需要学习项目管理,组织行为学,绩效管理等方面的知识,职业规划是成为技术经理,我的建议是有可能的话,做管理开始尽量在大公司,一方面大公司体制完善,培训到位,会更快帮助你成为一个好的管理者,另一方面大公司的管理岗位才有含金量,不像小公司,动不动就冒出个技术总监。
接下来,在工作的第六年到第十年,就是按照上述的选择各自走各自的道路,终小有成就,成为真正的技术牛人,软件架构师,需求分析师,技术经理。
在这个时期的后期,部分人还是会选择多维的结合,技术牛人技术太牛了,大家五体投地,都心服口服的听他的,终也会发展处管理水平这一维,成为技术型;架构师由于需要协调各方,也会发展出管理一维,成为经理,由于架构师基本能够自己搭建一套系统,有可能会因为一个idea进行创业;需求分析师一般也会参与到架构设计中,发展出架构广度一维,也需要协调团队完成需求,发展出管理一维,从而可以成为乙方的项目经理,甚至会进行接项目方式的创业;技术经理可以进一步拓展管理一维,成为经理直至技术总监。
在国内,成为大公司的技术总监,中小公司的CTO乃至VP,是大部分的程序员职业生涯的顶端,如果你是国外派回来的海归,或者自主创业成功的英雄,那应该另说,毕竟都是少数。
当程序员按照自己的职业生涯规划提高自己的不可替代性的时候,会造成市场上此水平程序员的价格上涨。
相关文章