热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员生存定律-打造属于自己的稀缺性

假设说你想在江湖里谋求一定的地位,那么你可以练习独孤九剑成为超一流高手

假设说你想在江湖里谋求一定的地位,那么你可以练习独孤九剑成为超一流高手,也可以练习医术,成为绝世神医。这两者在江湖里都是有地位的,也都是稀缺的,一者是因为杀伤力,二者是因为人都有山高水长。

  程序员也一样,增值也好,改善表达力也好,最终都要在某种环境下达成一定的稀缺性,这样一个人才有价值。稀缺性同时受两个维度上的力量影响:一个是自身的努力,比如前文所提到的增值和表达力;一个是大环境的变化以及对这种变化的适应。在这一章里主要关注的是后者。

  稀缺性可带给你什么

  既然稀缺性对个人有如此大的影响,那稀缺性到底可以带给一个人什么样的影响,我们来看一个简单的例子:

  在日本曾经有这样一个故事。一个人在某电信公司负责一个大型系统的维护,收入虽然不菲,但时间一长,这个人就对薪资发展不太满意,因此最终选择了离开。结果他一离开,这大型系统立时跑的磕磕绊绊,无奈之下,这家电信公司只得以高职厚薪把这个人请了回来。可以想见为了达到这一目的,这家电信公司,无论在收入还是职位上必然都开出了让这个人无法拒绝的条件。

  这是稀缺性起作用的一个典型例子。大型系统因为关联到庞大的用户群体而必须要用,同时这一系统的维护没有这个人又不行,这就使这个人的稀缺性变得非常突出。

  这事其实很有意思,因为在这里事实上是不好的软件成就了一个人的价值和稀缺性。这虽然不是很好,但其实这类情形并不罕见。从市场的角度来看,它并不关注一个程序的内部逻辑是否清晰,是否有足够的注释,它只关注这东西能不能运作好。所以使用中的垃圾代码一样有巨大的价值,也就是说商业上的考量对稀缺性的影响更大。

  为防止上述文字被曲解,这里补充一点说明。上述道路并非是一条非常值得模仿的道路。因为对上述那个人而言,事实上他的价值绑定于特定的一套系统,这会导致可流动性几乎没有,这就会限制住一个人的成就,并使未来存在很大风险。

  改善稀缺性的途径

  为了改善自己的稀缺性,通常需要同时做两个方面的工作:一是提升自己;一是顺应时势。提升自己可以让自己稀缺这点很好理解,但如果没有顺应时势相配合,就很容易让这种稀缺性无法很好的实现。在 2013 年精通 DOS 编程的人无疑是稀缺的,可这不一定能产生价值。下面我们将从上述两个方面对稀缺性做一点说明。

  1、奔向程序世界里的价值高地

  投资大师巴菲特先生说过一句流传很广的话:有的企业有高耸的护城河,河里头还有凶猛的鳄鱼、海盗与鲨鱼守护着,这才是你应该投资的企业。这句话非常传神的描述了价值高地的外在形象。

  对于企业而言,护城河可以是很多东西:高难的技术(波音飞机)、难以攻破的用户粘度(QQ)、独占的资源(中石油)、独特的企业文化(苹果)等等。

  护城河使企业拥有一种无可取代的价值,从供给上看这就是营造企业自身价值的稀缺性:缺了它不行,你又没有更多选择。这就是价值高地,当企业在这上面时,他相对安全。也正因此,大公司最终都会试图主导一种秩序与生态系统,只有如此大公司才能掌控稀缺性。

  这道理同样适用于个人。稀缺本身可以有很多来源,可以来源于时机,也可以来源于高度。来源于时机的稀缺性更像一种偶然,很容易被打破,往往并不具备长久的价值,相对于人的一生而言,这并非是一种有力支撑。比如:Erlang 可能比较稀少,但单纯的语言壁垒并没有想的那么高,如果真的有巨大需求,这个世界上可以在一个月间多出几百万 Erlang 程序员。

  当一个人经营自己的稀缺性时,确实要找到一个有鳄鱼、海盗和鲨鱼守护的地方,这才是价值高地。当然鳄鱼之类很难是你放的,这与企业不同。在这点上管理方向上和技术方向上的程序员所面临的选择和所需要采取的措施不同。

  对于技术方向上的程序员而言,走向上述这类价值高地本身可以有两种方法:

  一是达到一定高度横向展开。比如:编程语言,(金融)业务逻辑,外语,网络知识等组合在一起就可以成为一个高地,这里面编程语言上一个人可能不如天才程序员,业务逻辑上可能不如银行员工,外语可能不如专职翻译,但每多一重过滤,就会导致高地的海拔拔高一分,最终转换为稀缺性。

  一是彻底的专家型道路。有的岗位可能不需要把面扩的很宽,比如做 TTS,OCR 的算法,有些人甚至编程语言都可能不是了解的很熟,但确实可以是某一方面的专家。这同样是一种价值高地。在这个方向上,一旦真的达到一定高度,那就不是单纯的累积数量可以超越的。比如:认为 100 个或多少个平庸的科学家等价于一个爱因斯坦无疑的是愚蠢的。

  不管是那种方向,最终都要达成这样一种效果:你可以完整的搞定一件很有商业价值的事情,而这件事情大多数人搞不定。比如说:

  • 我可以主导开发一款手机,因为我即懂软件又懂硬件,也还知道如果开发一款良好的产品。现在来看,如果真牛,可以去搞定锤子的问题。
  • 我可以把 OCR 的识别率提高1%。
  • 我可以主导架起百万级并发的网站。
  • 我可以带领队伍搞定这个银行的整个系统。
  • ... ...

  这个时候最好不要用单纯的技术观点来衡量自己,比如我擅长 Java,我会用 PHP,我知道 TCP/IP 协议等等。不是说这没有价值,而是说这种视角有点低端。只有能完整搞定一件事情才会与商业利益直接挂钩,才可能有真正的稀缺性。

  对于管理方向上的程序员,走向上述这类价值高地似乎只有一种途径:

  要努力做出让人记得住的成绩,这个成绩可以是一个产品,也可以是某种业绩。今时今日,提到微信相信大家都会想到张小龙。这是因为微信本身在不到两年的时间里吸引了 2 亿用户,并且口碑很好,实在是个奇迹。

  关于价值高地,有一个典型的陷阱:不含复杂度的,特属于某个公司的经验,往往让人误以为是价值高地,但其实不是,因为只要环境相对的公开,这类东西往往可以在短时间内被攻破。比如:一个公司可能定义了自己的流程,其中很多东西较为模糊,新人一做就处处碰壁。这很容易让然误解为掌握流程本身有较高的价值,但其实这是由于流程不完善所造成的,是特定场景下的一种偶然。这确实导致稀缺性,但基本不具备可流动性,大多时候未必是好的选择。

  需求开发算价值高地么?

  在偏敏捷的组织里程序员往往离需求很近,但在比较传统的开发方法中,做需求的和程序员往往是有段距离的。做需求开发的可能不太会写程序,写程序的不太会写需求。

  那需求开发算价值高地么?

  很多纯粹的程序员可能觉得单纯的文档工作没什么技术含量,似乎谁都能写,因此可能认为这算不上什么价值高地。但从商业价值来看,当一个人摸透某个行业的业务(懂技术更好),那么这还真是价值高地。

  这可以来做个类比,天猫只做平台,各个商家卖东西,那么天猫有价值么?当然有价值,天猫 11/11 的销售额 100 多亿比美国的黑色星期五还高,怎么可能没有价值。

  那为什么天猫有价值?因为终端客户的眼里是先有天猫,再有各个商家,天猫垄断了入口,所以天猫更有价值。

  需求与开发的关系与此类似。当一个人做某个产品的需求时,在外人的眼里,这个人做的需求才表征着这个产品,透过产品才能看到程序员的贡献。外部人员思考的思路是先需求开发人员再程序员。

  其中比较极端的一种实践是需求开发人员主导整个项目,所有其他人员在需求开发人员的领导下工作。

  这个时候钻牛角尖是没意义的,比如:有的人可能认为没程序员那有产品,这就和争论没店家那来天猫一样,毫无意义。在现实中当然两者都有存在价值,这里讨论的只是说这是否算是一块价值高地。

  2、走在技术大潮的前面或里面

  IT 世界里,城头变幻大王旗来的特别的快,而每一次变幻时事实上都将导致某种技术的兴起或者某种技术的衰落。

  当年 WPS97 的开发时间非常长,对此百度百科上对此的描述是:Windows 有很多新东西,我们还没有熟悉过来,微软又升级了。很多技术资料,也很难找到。微软掌握着 Windows,而我们什么都要靠自己从头做起,这导致了 WPS97 难产。如果 WPS97 能在 1995 年推出,直接和 Word6.0 竞争,Word6.0 肯定没戏。

  这很生动的记述了一门新技术兴起时所造成的稀缺性,从侧面也可看出来,在 95 年的时候企业对高端 Windows 开发人员是何等的渴望。这种稀缺性是行业周期背后的技术更迭所造成的。而在今天,借助搜索引擎,初入行的程序员也可以解决大部分 Windows 编程的问题。

  面对这种技术潮流,比较合适的办法是基于现实勇敢拥抱新技术。

  基于现实是指考虑技能的可流动性,考虑实践和学习的不可以分离特质,选择自己认为前景好的新技术,并投入时间。但这里面有个陷阱,一提到新技术很多人可能会联想到新编程语言,但编程语言太基础了,壁垒太低,并不是一个足够大的考量区域。视角如果限在这个尺度上,看到的东西就会太多,而不容易聚焦,这时候需要把自己考量的单位适当放大一点,英文中常用 Tech Stack 这个词来描述这一组技术。

  比如说:LAMP (Linux+Apache+MySQL+Perl/PHP/Python)可以是一种考量单位,Windows 编程 +ASP.NET 也可以是一种考量单位,大数据处理相关种种也可以是一种考量单位。

  如果回望十年,我们就会发现,先有 PC 客户端程序的鼎盛,接下来是互联网的兴起,再接下来则是移动客户端的兴旺。以当下而论,无疑的移动客户端和互联网要比传统的 PC 客户端来的更有吸引力。而在云的时代里,壁垒比较分明的两套 Tech Stack 则是基于闭源的一系列技术(主要是由微软提供)和基于开源的一系列技术。在这里面如果那个 Tech Stack 的技术逐渐取得优势,那么无疑的在相应的 Tech Stack 中有积累的人会有比较好的稀缺性。

  虽然眼下看来,两者似乎没有明显差别,但在这点上,我个人认为未来开源 Tech Stack 会逐渐取得优势。在 Quora (quora.com)和 High Scalability (highscalability.com)上,我们可以查找到国外大部分新兴的、市值超过 10 亿美元 Web2.0 网站的技术架构,如:Flickr,Pinterest,Instagram 等。如果用心来读这些技术架构,就会发现他们一个根本的共同点:他们都是基于开源技术构建的。

  这种不约而同的选择背后有一定的必然性。当希望一定的定制性并且不愿意支付高额成本时开源 Tech Stack 几乎是一种唯一的选择,尤其是当开源的技术有越来越多成功实例的时候,这种优势就越来越明显。

  如果非要在客户端(iOS,Android,WinRT)和互联网中选择,我个人认为互联网比客户端更有优势。

  技术落潮所伴随的风险

  很多人会讲微软在 2002 到 2012 这 10 年里几乎无所作为,也会谈论从股票上来看如果 10 年前买入的是微软股票那么现在只能赚 30~40%,而如果是买的苹果股票那就要赚 3 倍多。我个人偶尔思维发散,想到的却不只是这个,而是如果微软再失去 10 年,那挂掉的不只是微软,还有同微软绑在一起的各种公司和个人,包括很多资深的 Windows 程序员。

  在 PC 的世界里微软是无疑的霸主,但如果 PC 的时代过去了,那么这个霸主如果无法转型成功,那么无疑也要随之殉葬。而那个时候无数在微软平台上花了半生心血的人却还都在,他们又该何去何从?

  技术大潮的兴起会使潮头的很多人称为耀眼的明星,而某波潮水的退去,同样会带走与之相伴的一些人的光环。所不同的是前者轰轰烈烈,而后者寂寂无声。

  在这种情境下,还真就只能与时俱进。

  检查自己的稀缺性

  从社会需要的角度检查自己的稀缺性非常困难,因为相关的各种数据总是非常缺乏。但有个简单的方法可以很快的让一个人认清自己的稀缺性:假设一个毕业生很努力的学,那么多久他可以取代你的工作?比如一个毕业生只要努力,那么可以在一两年取代你,而你的年纪已经接近 30 岁,那么稀缺性必然非常不好。

  而与这个相反,如果一个毕业生即使很努力,也要五年才有你的技术水平,同时如果没有特定的机缘,怎么也无法取代你,那么即使你已经 30 岁,你的稀缺性也会非常好。这里的机缘可以是指某些特别的实践机会。

  如果想比较系统的评估自己的稀缺性,那么需要依次考虑如下问题:

  自己所掌握的技术是即将过时的技术么?

  技术大潮总是会定时的淘汰各种技术,不同的时间点淘汰的对象也不太相同。有的虽然不是完全淘汰,但至少他们不再像当年那么辉煌了,如果以 2013 为界限而回看 10 年,那这样的技术有:Flash,MFC,Delphi 等。

  为保持对技术动向的敏感度,定期阅读别人的架构非常关键。

  当然可能过时的技术不单指通用的技术,还指老旧的可能会为新解决方案所替代的系统。比如说:曾经很多公司使用 Lotus Notes 来做知识管理的,但很少人使用这样的系统了。

  自己所掌握的技能究竟有多少人会?

  考察这点时要像前文所描述的,更多的从公司的视角去考虑,而不是个人的视角。单纯的会使用某个语言或者框架这种程度,稀缺性一定没有。比如:单纯的会用 ASP.net 开发网页几乎没有较高的技术壁垒,但对数据库的设计有相当程度的掌握、能够较好的通过负载均衡、缓存等手段保证系统的性能就可以使自己的稀缺性上个台阶。


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
author-avatar
如果不曾相识_不曾相知_不曾相恋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有