阅读更多

26顶
13踩

研发管理

转载新闻 程序员如何增加收入

2013-01-08 17:11 by 副主编 WnouM 评论(26) 有14237人浏览
本文转载自陈勇的博客。原文内容如下:

程序员的收入是广受关注的问题,很多人从业3~5年之后就会遇到这个收入瓶颈。尽管物价不断上涨,程序员尤其是初、中级程序员的收入不升反降。即使上次在某个文章中看到有中国第一程序员之称的某位,月薪也只有3万,尽管这个数字已经很高了,但这个“中国第一”,也只有众多小型软件企业总监级别的收入而已。为什么这么高水平的技术人员在公司中的位置仍然显得与日俱降?本文会分析其中的原因,并依据原因给出相应的建议,为收入遇到瓶颈的程序员找到出路。

要理解一个人能赚多少钱,先要理解钱的流转规律。对于程序员,总是认为若自己能力提升了,自己的收入就应该相应提升。不过,请先读一下任正非写给华为员工的邮件中的一段文字:
引用
因此,没有责任心,不善于合作,不能集体奋斗的人,等于丧失了在华为进步的机会。那样您会空耗了宝贵的光阴,还不如试用期中,重新决定您的选择。进入华为并不意味着高待遇,因为公司是以贡献定报酬的,凭责任定待遇。对新来员工,因为没有记录,晋升较慢,为此十分歉意。如果您是一个开放系统,善于吸取别人的经验,善于与人合作,借助别人提供的基础,可能进步就会很快。

从中可以看出,先要替公司赚到钱,承担责任,一个员工才能拿到钱。

分析

若一个程序员技术水平一个顶十个,在他替公司赚钱的道路上还有哪些障碍呢?典型障碍有很多,比如:

1. 这个程序员开发的功能中有50%客户不常使用

因此,客户要么没有选择这个产品,要么只愿意付出更低的价格。“这怪产品经理啊,为什么怪我?”错。若赚到了钱,论功行赏的分配方法有很多;但若赚不到钱,分配方法就一种:大家都没钱。也就是在一家产品方向失败的公司,即使最顶级的程序员,也赚不到钱;或者说,他赚到的钱,可能还不如一个产品方向正确的公司的一个普通程序员。

2. 这个程序员开发的底层库中,有50%不被调用

很多顶级的程序员都迷恋编写底层库,认为这才是施展技术实力的地方;他们多数不愿意参与业务级别的工作,认为工作过于简单还要和客户打交道。这时候编写出来的东西,经常会出现“需求镀金”,就是最终代码中充斥着大量的无用的功能。本人做过一段这种事情,所编写的一个库,可能几年后使用率也不超过一半。

如果这两个问题不解决,我们表面上看到的10倍的能力,真正能转化到生产力上的不足25%。公司的钱赚不来,个人收入低的问题也就很好理解了。

3. 顶尖高手在公司内部的位置已经不再重要

现在已经不是当年两个修自行车的能造飞机的英雄时代了。现在的软件很少像当年KV300、WPS一样可以由一个高手独立写成,多数都依托于一个十多人乃至近百人的大型团队。如果这个团队的整体实力很强,里边一个顶三、五个的程序员大有人在,那么单个的能顶十个的程序员贡献能有多大,就值得商讨了。

在10年前参与的一家公司中,有一位自己躲在自己办公室的“扫地僧”,功力超过我们团队的最顶级的程序员还要数倍。不过,他却在独立开发一个与公司方向不符的小产品,由于他是老板的朋友,老板也执拗不过,就随他去了。几年后公司上市,不过是因为我们所在的25人团队的产品占据市场份额60%以上。毕竟这种规模的团队,如果技术和管理又能跟得上(这个团队就是本人第一次遇到松结对编程、139团队的那个团队),生产力不是一个两个游击队员能够相比的。如果不能把自己的能力转化为企业的盈利,收入就无从谈起。

答案

有了这两个分析,就不难得到答案,整体上分两个方向,最后我们再总结两个截然不同的方向的共同点。

一个方向,是转向关注业务。具体说来,包括成为产品经理,或称为对产品需求负有责任的技术兼业务高手。

为何产品经理的收入很高?三星刚刚重奖了GalaxyIII的产品经理,而腾讯、阿里的产品经理也久负盛名,而他们的所谓“高级程序员”一般都默默无闻。原因就是产品经理是“掌舵”的,不是“划船”的,他对团队生产力的贡献,不是加法,而是乘法。国内征途以几十人团队每年几亿的收入,腾讯以9千人超过中国电信5万人的营业额,国外Apple及FB的崛起,靠的不是技术高手的加法,而是产品经理的乘法。

作为纯技术高手,可能直接转为产品经理很难,或者不愿意转,那么,至少要变成关心需求的技术兼业务高手。也就是不能只沉迷技术,而要关心是否正在开发客户关注的核心需求,业务实现是否有效、友好,与竞争对手定位于功能比较等内容。

作为掌舵的人,更容易帮助团队把技术能力转化为生产力,提升绩效,也更容易获得更高的收入。

第二个方向,是作为技术领导,将自己的技术与管理结合起来,提升整个团队的战斗力。

技术高手作为团队的领导具有得天独厚的优势,毕竟软件管理是个复杂的过程,需要结合技术、团队、过程的各方面才能做好。

比如设定这样一个目标:“促进团队的代码复用,以提升进度和质量。”个人参与过的几个项目都证明做好这件事情意义非比寻常,然而做好却很难。个别技术高手可以以1/4代码写出相同的功能,然而整个团队却很难做到,原因是缺少恰当的团队管理方法。而作为纯管理出身的项目经理,又不理解应该建立何种复用结构,如何分工。要让纯管理的人跨越技术壁垒是比登天,而让技术高手帮助进行管理则只是一念之间的事情(虽然也很难!)。

如果一个高手,能够帮助自己身边的三、五个程序员提升水平,那么很容易再获得相当于几个人的生产力,这是他个人提升所很难再获得的。本人在十年前遇到一位高手,跟他学了一年,感觉自己提升了三四倍的水平(从完成任务所需的功能量缩减而言,何况还有技术、质量方面的提升),而身边另外几个师兄弟,也都长进迅速,有一两个甚至都超过了师傅的水平。除了传授技术之外,这个团队后来在这位高手带领下,还改善了管理结构,演进成为一个松结对和1-3-9团队,在不到一年时间从5人扩展到25人,而产品质量没有明显的下降,后来市场占有率更是达到60%以上。

这两个方向有一个共同点,就是把自己卓越的技术能力对团队的贡献,从加法变成乘法。高手必须认识到自己对团队和企业的最大贡献,不是自己独立承担的那点任务,而是影响产品和影响团队的能力。

最后一个常见问题:“我传授了徒弟,最后却被一脚踢掉怎么办?”

这是很多技术高手所担心的事情。其实,老板都是很聪明的人,技术、管理、业务可能都一般,但识人、用人绝对超过我们,否则怎么会我们给他打工呢!一个高手如果被踢掉,更可能是因为沉迷技术逐渐变得钻牛角尖、封闭,最终变成无用之人。
来自: 陈勇的博客
26
13
评论 共 26 条 请登录后发表评论
26 楼 fypop 2014-08-21 13:26
老板都是绝对成本越低越好,除非机会很好,才能发展,也要跟对人
25 楼 fypop 2014-08-21 13:24
你把别人教会了,你就下岗了。
很多地方都是这样的
24 楼 308202251 2013-01-10 14:28
很有启发。
23 楼 dancewhyw 2013-01-10 12:22
没有电信5万人的团队服务,腾讯有个鸟用啊。没有基础网络供应商腾讯就是渣渣。某些东西被无情的放大了嘛。很多领域不是些小混混有用的。自闭的人在哪里都没有出路。把小众的缺点放大来说而已。
22 楼 jackra 2013-01-10 11:15
我是来看评论的。。。。。。
真是五花八门。。。。。。。
21 楼 ajax_xu 2013-01-10 08:58
kmkim 写道
要想赚钱,就不要打工

对,在天朝 想通过打工赚钱简直是笑话!
20 楼 chaos.wql 2013-01-09 22:58
说收入的同时先说说你能为公司带来啥?
说你的技术多么NB?能做成别人做不成的事情?
说你的代码多么优美?客户看不到。
你说你值2w,如果4个5K 的能替代你,对不起,我宁可要4个5K的。
因为他们遍地是(心态就傲不起来),而你难找,你要走了我还得愁去哪招人替代你
19 楼 robyjeffding 2013-01-09 20:07
综观全文就是高手不能再沉默了 必须积极主动肩负责任 而不是一人闷声闭关修炼
18 楼 BuN_Ny 2013-01-09 19:29
zhongli 写道
allloveend 写道
说得好,但这毫无意义!

很有意义啊。我很赞同。

赞同
17 楼 bluemusic 2013-01-09 18:12
lipeixin 写道
kmkim 写道
要想赚钱,就不要打工


自己当老板也是不容易的.

当员工承担做帮老板赚10块自己拿1块的压力 做老板承担当员工的N倍风险 如果你愿意投入还是做老板好 如果就混混日子还是当员工算了
16 楼 tianshaojie 2013-01-09 17:19
15 楼 gjj0725 2013-01-09 17:00
道理都懂,做起来要靠毅力和机遇
14 楼 zui4yi1 2013-01-09 15:41
程序员,其实跟当教师的差不多,能攒多少钱?
都是拿死工资的,除非,用自己的能力,另谋出路!
13 楼 michael.geng 2013-01-09 10:45
这篇文章是作者自己想的吧?Facebook 不是产品经理主导,而是工程师有很大的主动性
12 楼 w156445045 2013-01-09 10:34
这篇文章写的非常好!谢谢!
11 楼 dhdh02 2013-01-09 10:29
忽悠人的,,
10 楼 fanlei77 2013-01-09 10:28
天朝赚大钱要的是背景,程序员有的只是背影。
这篇文章应该改名叫《程序员如何获得老板认同》
9 楼 lipeixin 2013-01-09 09:34
kmkim 写道
要想赚钱,就不要打工


自己当老板也是不容易的.
8 楼 kmkim 2013-01-09 09:18
要想赚钱,就不要打工
7 楼 archy123 2013-01-09 09:14
发这帖子的是老板。。。。
在中国,这些都是扯淡的!!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • jbpm4.4 在线流程设计器,前端+java后台

    jpdl的web流程编辑器的前后端实现...前端:使用myflow.js实现,点击保存将把流程图转换成一个json格式的数据; 后台:使用java实现了,json转成jpdl要求的xml,根据xml生成png流程图片,将xml文件和png图片打包成zip;

  • JBPM4.4GPD设计器中文乱码问题的另一种解决方法

    在eclipse中使用JBPM4.4的设计器时,输入中文后直接查看Source发现xml里中文全都乱码了,这时候大约整个人都不好了!赶紧百度、谷歌,搜到的多数结果都是要你在eclipse.ini或myeclipse.ini文件末尾加一句-Dfile....

  • jbpm4.4 表结构说明

    本文从表结构、操作时表的变化以及jbpm4.4各个包的作用来介绍jbpm的。 第一部分:表结构说明 Jbpm4 共有18张表,如下,其中红色的表为经常使用的表   一:资源库与运行时表结构 1. JBPM4_...

  • jbpm4.4基础知识

    对jBPM4.4数据库的几张表简单介绍: A。资源库和运行时表结构 JBPM4_DEPLOYMENT 流程定义表  JBPM4_DEPLOYPROP 流程定义属性表  JBPM4_EXECUTION 流程实例表 (主要是存放JBPM4的执行...

  • jbpm4.4 mysql_jBPM4.4之开发环境搭建

    虽然基于jBPM4延续的Activiti5已经推出很长时间了,但是jBPM4在项目中还是有很广泛的使用。1、使用的相关开发工具软件。1)Eclipse IDE for Java EE Developers(Eclipse 4.2)2)jBPM4.43)MySQL5.52、配置在Eclipse中...

  • Jbpm4.4入门

    Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决) Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子)。 1. jbpm4.4...

  • jbpm4.4表结构

    (一)资源库和运行时表结构 JBPM4_DEPLOYMENT, ...JBPM4_EXECUTION主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制 (当一个流程split出两个并行步骤的时候,在jbpm4-execution表...

  • JBPM4.4应用开发

    JBPM简介 JBPM是基于JAVA的工作流引擎。工作流引擎,给我们提供流程逻辑的...所谓业务对象,从现实生活的角度理解,就是那些需要在不同的人之间流动的信息。比如一个请假单据、一个报销单据、上级下发的一份文件、

  • JBPM4.4(二)——初步运用

    这篇博客重点描述一下JBPM4.4的初步运用,利用eclipse进行工作流开发,首先需要进行eclipse插件的安装jbpm-gpd-site.zip。通过help->Install NewSoftware进行安装即可。当我们右击新建other出现如图所示时,表示...

  • JBPM4.4表关系

    (一)资源库和运行时表结构  JBPM4_DEPLOYMENT,  JBPM4_DEPLOYPROP,  JBPM4_LOB存储流程定义相关的部署信息  JBPM4_EXECUTION主要是存放JBPM4的执行信息,... JBPM4_TASK存放需要人来完成的Activities(...

  • JBPM4.4数据库表结构

     Jbpm4 ...1. JBPM4_DEPLOYMENT 流程定义表 2. JBPM4_DEPLOYPROP 流程定义属性表 3. JBPM4_EXECUTION  流程实例表 4. JBPM4_PROPERTY 流程引擎表 5. JBPM4_TASK 任务表

  • jBPM 4.4用户手册

    持久执行模式是指流程定义、 流程执行以及流程历史都保存在关系数据库中, 这是jBPM实际通常使用的方式。 这个用户指南介绍了jBPM中支持的使用方式。 开发指南介绍了更多的、高级的、定制的、 没有被支持的选项。

  • JBPM4.4入门学习一:JBPM安装配置及构建数据库环境

    好久不写博客了。。。 JBPM一直是一个令我头疼的东西,想去...该篇文章主要介绍了使用JBPM的前期准备、创建数据库环境及控制台设计器,一切都是通过ant脚本老构建的,至于ant的使用后续将详细整理。好了,开始吧。

  • JBPM4.4:入门

    工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者...

  • jbpm4.4部署过程详情

    参数deployment为DeployCmd的一个属性,在构造函数中初始化; 由于new DeployCmd(this)可知,deployment为DeploymentImpl的对象; public String deploy(NewDeployment deployment) { DeploymentImpl ...

  • jbpm4.4开发环境配置+请假实例

    环境搭建 -jbpm4 -eclipse -gpd

  • jbpm4.4开发环境搭建

    jbpm:jbpm4.4   二:环境搭建 2.1:下载jbpm4.4。下载地址: http://sourceforge.net/projects/jbpm/files/jBPM%204/ 保存到本地,并解压。 2.2:安装jbpm4.4的插件 打开myeclipse2013. 点击菜单Hel...

  • JBPM4.4 表结构和接口

    1、数据库设计:JBPM4.4的持久层是采用的Hibernate,大大提高了程序了移植性,和数据库进行了解耦。它通过18张表进行数据处理,我们可以通过PowerDesigner进行反向工程,导出数据物理设计图,进行查看这些表之间的...

  • Java-美妆神域_3rm1m18i_221-wx.zip

    Java-美妆神域_3rm1m18i_221-wx.zip

  • 51单片机的温度监测与控制(温控风扇)

    51单片机的温度监测与控制(温控风扇)

Global site tag (gtag.js) - Google Analytics