程序员的核心竞争力

程序员所在的软件行业,信息、知识、技术、产品等更迭非常快,常常是你刚学会一门技术,还没吃两年,风头过去了,又得学新的了,马不停蹄地追赶,马不停蹄地忧伤:我的核心竞争力,到底在哪里呢?

有人说年轻能拼能加班是竞争力,有人说某一技术精深了有竞争优势,有人说跨领域博学多才是王道……那么,到底什么才是真正的核心竞争力呢?

让我们先来看看人的能力模型。

能力模型

人的能力分为三类,如下图所示:

程序员的核心竞争力_第1张图片

所谓资源,包括知识、技能、时间、金钱、人脉、天赋等。

所谓应用流程,指的是解决问题的方法、思维的框架、分配资源的方式、自我管理的模式等。

所谓价值观,指的是,你觉得什么是重要的、你要什么、你不要什么、你如何做决策。

资源往往是显性的、外在的,非常容易被自己和别人感知。而应用流程则是内在的,容易被人忽略,但它却是解决问题的真正能力,当你具备了应用流程,才能很好的利用资源来解决问题,创造价值。

最根本的,是一个人的行为价值观。价值观决定了你在哪个方向做、以什么原则去做。没有价值观,你就会像浮萍一样,东飘西荡,很难做出有长远意义的选择,就很难形成有效的应用流程,也很难积累能被社会感知的资源。

程序员的核心竞争力

对于程序员来说,Java、C++、PHP、Spark、Scala、Qt、Node.js、Hadoop等等,都是资源层面的能力。

而自主学习、逻辑思维、数据分析、价值判断、优先级排序、框架设计等能力,则是应用流程方面的能力,也是可迁移的能力,是核心竞争力。有这些,你才能快速的学习新知识新技能,你才能更好的整合你的知识、技能来解决实际的问题。

你喜欢做技术还是喜欢做管理,抑或崇尚创业,则是由你的价值观决定的。

热衷技术的程序员,可能会希望自己在某个方面具有顶端优势,他会一直做一直做,不断复盘,不断精进,直到成为专家。希望做全面管理者的程序员,可能在做上三五年后就会转移重点,放弃在技术上的深入积累。这就是不同的价值观决定的。所以,在决定将来的方向时,一定要先想想:我想要什么,我想成为什么样的人。这是根本性的问题,他们的答案,指明了你的职业发展方向。

当你的价值观指向了技术,当你的应用流程的能力淬炼到家,你就具备了真正的核心竞争力,到这个时候,如果你在一个技术领域内有了深入积累,再接触新的语言、框架、技术,在应用流程的加持之下,很容易就可以一通百通。

所以,当你学习使用某一技术时,着眼点应该放在如何运用它来解决问题,如何在解决问题中淬炼自己的应用流程。这才是打造核心竞争力的正确姿势。

软件开发是吃青春饭的吗

那现在,我们来讨论一个很多人都关心的问题:软件开发到底是不是吃青春饭的。

所谓青春饭,着眼点在青春。你年轻,有体力,有时间,能拼,能加班,你依赖时间和体力的复制来进行工作,当你年龄增长时,时间和体力的复制不可继续,这样的工作,就是吃青春饭的。

但软件开发不是。软件开发有两个层次:体力化的代码打写(编码)与思考层面的创造。我把程序员的工作过程绘制成图,可以简单明了的说明这一点。

程序员的核心竞争力_第2张图片

抱持“软件开发是吃青春饭”这一观念的人,只看到了软件开发这一工作中“体力化的代码打写(编码)”这一初级层面,误以为程序员只能靠拼时间和体力来建立竞争优势,但实际上,体力化的优势,在偏重信息处理的工作中,永远都不是解决问题的关键,都不能带来竞争优势。

决定程序员是否具有优势的,是思维能力,是解决问题的框架,是快速学习,是自我管理,是创新与创造,是这些应用流程方面的能力。而这些,都需要时间的沉淀和项目的历练。这正是大龄程序员的优势:他们的阅历、思维、解决问题的框架往往都得到了充分的历练和实践的检验,遇到问题时能够更快找到更合适的解决方案,先人一步在头脑里创造出最终的形象(第一次创造),然后在充分思考后用代码实现出来(第二次创造)。

所以,大龄程序员应该在实践中发现并淬炼自己的“应用流程”,建立相应的优势,这样,他就可以超越体力层面的局限,让自己的能力与价值随着年龄和阅历的增长而增长,就可以多多通过思考层面的创造来进行工作:谋定而后动,做得更少,但更关键,也更好。这才是更高效,更经济,更有价值的工作方式。


推荐阅读

  • 大龄程序员的未来在何方
  • 让自己更值钱的要诀
  • 转行不必从0开始,7成积累能迁移
  • 做事的常识

程序员的精进系列Live的最后一次——方向选择与转型,2月10日晚8点开始,感谢支持,戳这里。

你可能感兴趣的:(随笔,漫谈程序员)