博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序员第一定律:关于技能与收入
阅读量:6912 次
发布时间:2019-06-27

本文共 1470 字,大约阅读时间需要 4 分钟。

在软件这个行业里有些规则是很有杀伤力的,比如很有名的摩尔定律。

总结出这些规则的意义在于可以大致的照明方向,免得努力来努力去却走到了阴沟里。

现实中种种利益纷争、观点之争看似纷繁,但在大时间尺度下来看却都是规则的实现手段。

这就好比下围棋,每一手都要为谋得利益而计算,但结局却只有三种:赢、输或和,这就是规则的力量。

 

民以食为天,所以第一定律从收入开始。

 

程序员第一定律可以表述为:程序员的收入是技能复杂度和技能实现可能程度的函数。

如果程序员的工资是S,社会平均水平的工资为A,程序员掌握的技能复杂度为C,实现程度为P

那么S = A x C x P

 

这里面的实现程度P不太好理解,额外做点说明。

好比说有人在东北种了很多白菜,并获得了大丰收。与此同时广州也确实需要大白菜,按批发价他的这批白菜可以买10万。

但关键是这个人找不到车皮,大白菜就只能在当地零售,这个时候这批大白菜就只能买1万块钱。

这就是实现程度。

大白菜内蕴了既定的价值,这种价值并不因为卖多少钱而改变,但这种价值能实现到什么程度则依赖于现实的可能性。

 

这视乎很简单,但其实不是,很多人的一生就笼罩在这条定律下面,我们来基于这第一定律继续做些推导。

 

  • 推论1:越容易上手的技术,其内蕴价值越低。

 

技能的复杂度C可以大致等价于掌握一门技术所需要的时间。

 

各种集成的开发环境,各种容易学习的类库等使软件开发的门槛降得很低,这对整个产业是有利的,但对个体而言则是不利的。

你花5个月可以学会的技术,其他人花5个月也可以学会,而5个月可以学会的东西所蕴含的价值一定是低的。

与之相对5年才可以学会的东西,其内蕴价值一定是高的。

内蕴价值低,所对应的收入必然偏低。

 

为避免争议,我这里就不写技术的名字了,但大家可以从学习所需要的时间上来对各种技术做个分类。

 

有时候很多人会有一种错觉,认为越热门的技术收益越好。

这在大多时候是错的。

越热的技术,越成熟的技术越是大众的,而越是大众的技术内蕴价值越低,所以收益越不好。

热度能够帮助找到工作,但对技能复杂度C没有影响。

 

  • 推论2:单纯的涉猎广泛,没有专精,对收入的影响是负面的。

各种技术的复杂度大概是呈指数增长的,越到后面前进一步越困难。

好比说学会5门语言所需要的时间大多时候远比学精一门语言要短。

在特定年纪尚,每样技术都会一点,对提高实现程度P略有帮助,但自身可替代性很强,对技能复杂度C的影响为负面。

长期来看得不偿失。

 

  • 推论3:实现程度P越高,风险越大。

有些技术领域很窄,上手也慢,实现程度却高,比如显卡驱动,打印驱动等。

但这类工作好比在钢丝上跳舞:只要能实现自己的价值,那么回报大体不错,但最怕技术更迭。

技术一换代,可能多年积累十去六七。

 

总结来看,程序员要想获得不错的收入,第一要掌握稀缺的技术,即技术的内蕴价值要高;第二要找到实现稀缺技术的场景。

《微软的秘密》一书中提到,微软里面优秀的程序员是可以拥有许多辆保时捷的。

用上面两条做分解,就会发现原因很简单:

一是这样的人是NT的核心开发人员,这类人员内蕴价值极高,处于稀缺状态;二是微软提供了实现这种技能内蕴价值的机会。

这二者缺一不可。

#根据大家的回复做了点修改把"实现可能性"替换成了"实现程度"。

--------------------------------------------------------------

 

理想流 + 软件 = 

理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和逻辑推演本质,追求真理。

转载地址:http://kvncl.baihongyu.com/

你可能感兴趣的文章
Java基础/阿里巴巴Java开发手册
查看>>
python学习笔记十一:操作mysql
查看>>
war 配置文件路径
查看>>
linux 打包与解包
查看>>
scrapy-redis使用以及剖析
查看>>
(转载)Javascript 严格模式详解
查看>>
[C++] Const Summary (mind map)
查看>>
day08 文件操作
查看>>
WSL quick overview
查看>>
[解题报告]The Lazy Lumberjacks
查看>>
有用的,可学习的地址
查看>>
Java中对文件的处理01-递归删除
查看>>
checkbox属性checked="checked"通过js已设置,但是不勾选
查看>>
设计一个无限级分类的数据表
查看>>
linux常用命令备忘
查看>>
利用mathematica识别答题卡(3)
查看>>
Container,Injection
查看>>
vue.js中$emit的理解
查看>>
前端实现连连看小游戏(1)
查看>>
JS运动 - 无缝滚动和缓动动画
查看>>