论坛风格切换
 
  • 4005阅读
  • 3回复

[职场分享][创业]程序员高薪之路 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 使用道具 楼主  发表于: 2005-09-06
程序员高薪之路


作者:都市农民

  现在随便登陆一个人才网站,都可以看到招聘软件人才的信息铺天盖地,但是不同企业开出的薪酬却是千差万别。同样的用人要求,薪酬的落差甚至可以达到万元以上。究竟中国程序员的薪酬待遇是如何定位,程序员应当如何确立自己的身价,这都是值得大家探讨的问题。
  就中华英才网2000年下半年的薪资调查显示,计算机、互联网从业人员的平均薪水有所下降,跌为第三位,次于医疗设备与电信行业,但其待遇与国内其它一般行业相比,仍是以39712元的平均年薪名列前茅。可以看出,虽然目前国内IT行业不是十分景气,但由于其发展的势头正旺,程序员的金字招牌依然有很大的“钱”途,并且只要付出足够的努力,所得到的回报也是相当可观的。
  虽然程序员本身的学历或专长可以有明显的差别,说到程序员的薪资待遇,却不是用简单的分类就能一目了然的。因为用人单位的实际需求情况和其待遇分配的主观性就决定了各自待遇的千差万别。
  首先我们应当注意到地域性的薪资差距。从整体来讲,国内的程序员待遇低于国外与港台是理所当然的,而国内软件业的龙头聚合在京粤沪三地,因此京粤沪三地也聚合了国内大部分的程序精英,其待遇也是大大领先于内地其它城市的。相比之下,深圳和北京的薪资待遇要略高于上海,但从各地日常消费水平和购买力的差别来算,待遇实质差异并不大。例如一个深圳的程序员,月薪8000元左右,而他每月的日常开支就可能达到5000元,剩下的3000元作为额外开支也许还会觉得拮据,而在内地的5000元基本就能显得很宽裕。
  京、粤、沪 南京 苏州 武汉 成都 香港
  月薪 4000-10000 (1年业绩) 1500-5000 (1年业绩) 2000-5000 (1年业绩) 6000-10000 (5年业绩) 1000-4000(1年业绩) 1.8万-5万(1-5年业绩)
  应该关注的是现在除了外企、经济特区之外,西部地区如今为了吸引人才,也频频出招,提供了很好的工作环境。中国西部软件业与沿海地区存在极大的差距,从某种角度来看,这也正是西部软件产业的天然优势,因为市场的空白恰好是非常好的插入点,虽然目前西部地区的软件人才工资远远不及京、粤、沪地区,但是由于人才的外流与紧缺,真正的精英在这里有很强的竞争优势,并且由于近来国家政策的倾斜,为软件发展创造了良好的条件,软件人才在这里可以有更大的发展天地,所受到的制约相比之下也要小得多。
  就传统观点来讲,也许学历的高下在一定程度上影响了程序员的初期就业,但是不论如何,对于用人单位来说,对经验的看重更胜于学历,在业内真正重视的是实际的经验与能力,而学历仅仅是入门的一张“名片”。当然,“名片”是越拿得出手越好,如果能拿到一些相关的国际认证证书,例如微软的MSCE或SUNJAVA认证等,也会适当地提高自己的身价。在应聘时硬牌的证书可给用人单位特别是外企一个较好的第一印象,这对没有实际工作经验基础的应届生就业有所帮助。从实质的薪资差别来看,一些雇主表示,他们都愿意为员工的某些技术才能支付额外的薪水(包括Oracle、DBA、MCSE、SAP和PeopleSoft等技术领域的证书)。证书可以用来表明你熟悉程序员或网络工程师应该掌握的东西,虽然几乎每个培训班都说拿到XX证书就相当于拿到了XX万的年薪保证,但实际工作中的作品才真正能证实自己的价值。也就是说,如果你有工作经验,证书就很有价值,否则就只是一纸空文。
  其实真正决定薪资待遇的根本因素应该是用人单位的实力和程序员自身的素质。
  由于软件行业特别是互联网软件企业是高风险、高回报的新企业,企业的实力包括了其资金基础、研发能力、内部管理能力以及至关重要的市场运作能力等各方面。并且,由于品牌、市场运作等因素,即使是同样的软件产品,其价格也可能有天壤之别,产品所能创造的市值也就影响了程序员以及所有员工所能得到的报酬以及福利待遇,不管这种报酬是以月薪方式还是提成的方式体现。因此,撇开程序员个人素质资历等不说,同样是刚毕业参加工作的程序员,为什么有的能拿到数千的月薪,有的却只有惨不忍睹的几百元,这也是值得大家考虑的。
  基础雄厚的公司对精英人才有很优厚的待遇,除了高薪之外,还包括住房分配、各类保险金的缴纳等。国企的薪酬待遇虽然明显低于外资或独资企业,但是由于国企近年来逐步重视软件人才,所以与普通职工相比,程序员在国企中仍能算得上是高薪阶层,一般在国企中就业的程序员能拿到1500以上的月薪,上万的也时有听说,同时享受较好的福利。
  从目前国内的软件行业来看,对程序员的报酬有几种方式:一种是传统的月薪或年薪+奖金制,一种是期权方式,还有一种是某些公司临时聘请程序员只做一两个项目,做完走人,按项目付给相应酬劳。追求稳定的程序员可以选择基础好的企业以薪金谋生,并求稳步发展;有创业精神的则可以选择有发展前景的企业或团队,获得效益分享,期权曾经造就了不少程序员暴富的神话,但其风险也比较大。
  在传统意义的软件公司里,大公司一般有明确的分工,各个流程或模块由不同的程序员完成,象IBM这样的大公司里面,也许你是相当优秀并且知识是相当全面的,但是实际上的工作当中并不需要你做超出范围的事情,工作一般比较单一,同时也能得到稳定的收入。在更多作坊式的小公司里,一个技术人员通常要完成更多方面的工作,诸如需求分析、系统设计、详细设计、编写代码、软件测试、撰写文档、安装调试、系统维护等。这些工作通常会混在一起,而不是按照什么软件工程的顺序来完成。当然,从创业的趣味性来说,有的程序员会更加喜欢后者,但是这同时也要考虑到薪酬的分配是否合理,自己所付出的劳动是否得到了应有的回报。
  和做人的基本道理一样,程序员自身的综合素质影响了自己的价值。很多学程序的学生试图从自己的学历或所学的语言来确定自己今后能拿到多少报酬,这也有一定的道理,因为编程语言的难度和产品范围在一定程度上也影响劳动价值。就北京来说,在目前的情况下,大多数VC++软件工程师的入门月工资大约是在3000元左右,几年后成为熟练程序员大约在5000元 - 10000元以上。其他类软件工程师的工资水平,一般比VC++低一些。不过这不是绝对的。而且,不同的公司还有差距。有些VC++工程师认为,JAVA、DELPHI程序员的工资会比较高一些。但就产品的商业价值来说,可以说市场需求是最大的主导,并不是说JAVA语言作的程序就一定能比VB的程序卖出更高的价钱。因此程序员的薪金待遇也并不是以所学的语言而一概而论的,何况多数编程语言是触类旁通的,就看自己有没有很好的学习能力了。
  由于程序开发的日趋灵活性和多样性,IT行业越来越倾向于招纳一专多能的人才,因为大部分新兴的IT公司规模较小,为控制资金及成本,会趋向雇用多才之士。同时,由于计算机软件本来是要应用于不同行业的,因此只具备编程知识是不够的,和应用行业的知识组合也相当重要,例如商业与计算机技能的专业,如管理学和信息系统专业、计算机与心理学专业等。复合型人才在一些专业性较强的行业具有很强的优势,例如电信、电力、证券、医药等行业,由于以前我国教育的局限性和单一性,这些行业急需计算机应用型人才,而仅仅只会计算机的程序员是不可能适合这些专业性极强的行业的。因此,对特殊行业本身有深刻了解的程序员到这些部门肯定会大受欢迎,并且身价不菲。
  一般来说,刚走出校门并且没有一定开发经验的程序员,在刚开始的时候对薪资的期望值不要太高,很多程序员甚至有高程证书的程序员在刚工作时也只能拿到千元左右的月薪。因为企业对人才的定价已不仅仅看重一纸证书,而是看你在整个团队中所能发挥的作用。一般没有资历的程序员刚进入岗位时有1到3个月的试用期,视企业的不同,刚开始的时候试用工资在800-3000元左右,当做出一两个好的项目之后,待遇就会自然水涨船高。在软件行业中,敬业精神尤为关键。可以说默默无闻的程序员工作是相当枯燥并且辛苦的,是否具有忍耐力、快速学习能力、沟通能力以及团体合作精神,是敬业素质的重点。一个好的程序员到哪都是抢手人物,但一个好程序员的背后则需要他拼命地工作和不倦地学习,有时还要借助于灵感,而灵感来自于经验的积累和广阔的视野。
  从调查中可以看出,程序员的薪资与所用语言关系不大,并且高薪的程序员的学历也参差不齐,而从业的时间和业绩更大程度上影响了程序员所能得到的待遇,如下表所示:
  月薪
  0年 800-3000
  1年 3000-6000
  3年 5000-15000
  4年以上 6000-40000+
  现在,许多公司都是由一两个优秀的程序员在支撑,整个公司的业务都会注视着这少数的“领头羊”,薪酬也自然会向他们倾斜。由于前几年大家对计算机行业的看好,学习计算机专业的也是一涌而上人数众多,竞争对手越来越多。一个程序员要是跟不上或不是跑在最前面,就会被淘汰出局。要知道,即使在同一个公司里,程序员之间的能力差距所造成的月薪差距会在数千元甚至万元之多。竞争中永远是弱肉强食的,要想在待遇上遥遥领先,至少应当具备一直往前跑的阿甘精神。
  微软用人的原则很简单,那就是找最聪明的。每年在十几万份送来的求职简历中,微软只选少数聪明者。盖茨对软件开发人员说:“4~5年后,现在的每句程序指令都得淘汰。”这么快的更新速度,要求程序设计员必须有良好的创新能力。一个现在吃香的程序员也许几年以后就会发现自己已经太过落后,而面临残酷的淘汰。
  另外相信大多数程序员都有这样一个观点:程序员大都是吃“青春饭”的,现在写程序的人里面,30岁以上的已经在逐渐减少,而35岁以上的则屈指可数,大部分程序员的黄金岁月是在24~28岁。而到了28、29岁以后,由于软件行业的飞速发展,很多自己以前学的东西逐渐换代,而由于程序员长期埋头于工作,想学习崭新的知识也是力不从心。落后的必然结果就是降薪乃至失业。另外由于长年的辛劳,很多程序员对自己的工作感到厌倦,觉得自己应该做比编程序更重要的事情,否则就觉得没意思——很多程序员在工作一段时间后就把自己的目标定位在系统分析员或创业的老板,希望摆脱枯燥的程序设计。
  所以,面临新的挑战和机遇,一个合格的程序员应当具有敬业、灵活、创新、博学等全面优秀的素质。很多程序员抱怨自己待遇不公,但往往忽略了自身的因素,首先程序员在要求月薪之前,就应当首先考虑自己在所在的企业的位置,自己的能力专长是否正是该企业所需要的,能给企业带来多少产出。当然,初入行业时,也许会因为管理的因素造成不公的待遇,但是当逐渐融入工作之后,对企业以及环境有了一定的了解,就可以根据自己的实际情况理直气壮地提出要求。同时,由于软件行业的变动很大,程序员跳槽或“下课”是常有是事,有时候一些工作岗位也不能只注重它的薪酬多少,关键是看自己能够得到多大的提高与发展,某些时候,低薪但富有挑战力的工作也不失为开拓自己以后道路的跳板。
  老实说,一个资深程序员的薪资在很多人眼里的确是高不可攀,这个行业也是实实在在的白领阶层。但是程序员的艰辛也是非旁人所能想像的,特别要想在竞争中出类拔萃,更需要很大的毅力。程序员高薪的秘诀无非一个:机遇+经验+灵感。虽然世界人人平等,并且大多数企业都在以高酬吸纳优秀人才,但是价值要靠自己创造,每个人都会有自己的位置,这里给大家看一个小网络公司的招聘广告:招聘程序员,要求熟练掌握 VC、 VB、JAVA脚本、 SQLServer、 Access、 月薪800、 包食宿。
  呵呵,不要沮丧,这只是市面待遇最低的一种,想拿高薪吗?那么,努力吧,首先你应当成为精英!
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
只看该作者 沙发  发表于: 2005-09-06
呵呵,难死了,真正的程序员太少了
常人利已,圣人利他,我非圣人,取道中庸.

只看该作者 板凳  发表于: 2005-09-06
俺现在就是程序设计师

嘿嘿

怎么啥都不会呢???

只看该作者 地板  发表于: 2005-09-07
作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

1:团队精神和协作能力

把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。

2:文档习惯

说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

3:规范化,标准化的代码编写习惯

作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助踊同技术人员之间的协作。

有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。

再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。

4:需求理解能力

程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。

5:复用性,模块化思维能力

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。

复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。

一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。

6:测试习惯

作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。

测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情下的测试,整体系统局部故障情下该模块受影响状的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。

7:学习和总结的能力

程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。

善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。

善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。
具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。(这段话是转自别处的)
 

 
快速回复
限100 字节
友情提醒:谢谢您的回复内容,这是对楼主者莫大的尊重。
 
上一个 下一个