有关程序员的技能掌握与收入问题

程序员定律
服务器君一共花费了148.875 ms进行了4次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

在软件这个行业里有些规则是很有杀伤力的,比如很有名的摩尔定律。总结出这些规则的意义在于可以大致的照明方向,免得努力来努力去却走到了阴沟里。

现实中种种利益纷争、观点之争看似纷繁,但在大时间尺度下来看却都是规则的实现手段。这就好比下围棋,每一手都要为谋得利益而计算,但结局却只有三种:赢、输或和,这就是规则的力量。

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

 程序员第一定律可以表述为:程序员的收入是技能复杂度和技能实现可能性的函数。如果程序员的工资是S,社会平均水平的工资为A,程序员掌握的技能复杂度为C,实现可能性为P。那么S = A x C x P。

这里面的实现可能性P不太好理解,额外做点说明。好比说有人在东北种了很多白菜,并获得了大丰收。与此同时广州也确实需要大白菜,按批发价他的这批白菜可以买10万。

但关键是这个人找不到车皮,大白菜就只能在当地零售,这个时候这批大白菜就只能买1万块钱。这就是实现的可能性。大白菜内蕴了既定的价值,这种价值并不因为卖多少钱而改变,但这种价值能实现到什么程度则依赖于实现的可能性。

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

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

技能的复杂度C可以大致等价于掌握一门技术所需要的时间。各种集成的开发环境,各种容易学习的类库等使软件开发的门槛降得很低,这对整个产业是有利的,但对个体而言则是不利的。

你花5个月可以学会的技术,其他人花5个月也可以学会,而5个月可以学会的东西所蕴含的价值一定是低的。与之相对5年才可以学会的东西,其内蕴价值一定是高的。内蕴价值低,所对应的收入必然偏低。

为避免争议,我这里就不写技术的名字了,但大家可以从学习所需要的时间上来对各种技术做个分类。有时候很多人会有一种错觉,认为越热门的技术收益越好。这在大多时候是错的。

越热的技术,越成熟的技术越是大众的,而越是大众的技术内蕴价值越低,所以收益越不好。热度能够帮助提升实现可能性P,但对技能复杂度C没有影响。

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

各种技术的复杂度大概是呈指数增长的,越到后面前进一步越困难。好比说学会5门语言所需要的时间大多时候远比学精一门语言要短。

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

 推论3:实现可能性P越低,风险越大

有些技术领域很窄,上手也慢,实现可能性也低,比如显卡驱动,打印驱动等。做这类工作好比在钢丝上跳舞:只要能实现自己的价值,那么回报大体不错,但最怕技术更迭。技术一换代,可能多年积累十去六七。

小结

程序员要想获得不错的收入,第一要掌握稀缺的技术,即技术的内蕴价值要高;第二要能实现对这种技术的应用。《微软的秘密》一书中提到,微软里面优秀的程序员是可以拥有许多辆保时捷的。

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

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

这二者缺一不可。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1361,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1361

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《深入理解计算机系统(原书第2版)》 布莱恩特(Randal E.Bryant) (作者), 奥哈拉伦(David R.O'Hallaron) (作者), 龚奕利 (译者), 雷迎春 (译者)

《深入理解计算机系统》从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供子大量的例子和练习题,并给出部分答案,有助于读者加深对正文所述概念和知识的理解。

更多计算机宝库...