标签:情况 迷茫 语言 编程 方法 i++ 职业 小结 lua
这篇文章的核心观点是:软件开发者只有打造顶端优势,才能获得更好的发展。
这样的感触,来自:
那么什么是顶端优势?什么是程序员的顶端优势呢?
植物在生长发育过程中,顶芽和侧芽之间有着密切的关系。顶芽旺盛生长时,会抑制侧芽生长。如果由于某种原因顶芽停止生长,一些侧芽就会迅速生长。这种顶芽优先生长,抑制侧芽发育的现象叫做顶端优势。
顶端优势强的植物,几乎不生分枝,如向日葵的许多品种。番茄等植物顶端优势弱,能长出许多分枝。灌木顶端优势极弱,几乎没有主茎与分枝的区别。多数植物属中间类型,如稻、麦、泡桐等。
我家在农村,小时候经常见我爸爸修理泡桐树,在树苗还很小时就把杂七杂八的斜枝掰断或者削掉,这样树苗就可以往高里长,往直里长。
去除侧枝侧芽,力保顶枝顶芽优先生长,这就是在利用顶端优势。经过这样处理的树苗最终可能长成这样:
而放任侧枝侧芽肆意生长,树苗则可能长成这样:
砍掉树干的斜枝让树长得高大,是利用顶端优势的一种方式。还有一种方式是剪掉顶芽,让侧芽生长。究竟运用哪种方式,和背后的目的有关。
现在我们可以回到最开始,解释一下那位工作十来年的朋友找工作时遇到的问题,他的问题,反映了如下有两点:
这样的问题,我在分答、知乎以及IT职业咨询群里回答过很多:
如果结合顶端优势原理,这些问题,就很容易回答了:
对于想沿着技术路线发展的开发者,要尽早聚焦在某个技术方向上,打造出个人技能树的顶端优势,这样对将来的发展更为有利。
以我个人为例,我用过C、C++、Java、Lua、JavaScript、Python、Scala、OC等各种语言,但C++是我最熟悉的,明显比其它语言有优势。而在C++里面,我又用过ffmpeg、Qt、VLC、DirectX、OpenGL、CEF、WebRTC等框架,但Qt是我最熟悉的,写过《Qt Quick核心编程》和《Qt on Android核心编程》。这就是我个人技能树的两个顶端优势。
当你的能力树存在明显的顶端优势时,你就更容易被标签化,更容易被“使用”。
有人可能会说,君子不器,我们不必搞得自己只能干某件事。对,《论语》说得没错,但那是成为君子之后的事儿。在成为君子之前,先打造顶端优势,先被标签化,这样才有更好的机会去发展。当你具备了顶端优势之后,再以顶端为基础,树冠搞得大些,让自己成一专多能的T型人才。类似这样:
问题:如何让一个女人变得更美?
答:让她和一个比较丑的同伴一起出现。
这就是比较优势带来的顶端优势。对开发者也一样,从自身角度看,修剪个人的能力树可以打造技能上的顶端优势。但是很多时候,你要和别人放在一起比较时,也能显示出优势。这就是群体中的顶端优势。当你能够通过某方面的能力让自己凸显出来,你就会更重要。
那么,对开发者来讲,要塑造自己在群体中的顶端优势,最重要的一点就是选择环境。
举个例子,有很多大公司的开发者,干了几年后得不到晋升,但是跑到初创公司或者小公司,就很容易成为核心或者技术管理者。
这就是“宁做鸡头不做凤尾”,是利用比较优势塑造顶端优势的典型案例。
那相应的,还可以通过地域的差异来凸显你的优势。比如你在北京做开发,泯然众人,但回到西安,可能就能显出不一样来。如果你再回到三线、四线城市,可能优势会更突出。
另外一种凸显优势的,就是到一个匮乏你所拥有的技能的环境,比如前两年移动端开发火热时,你转战到传统软件公司或者传统行业的软件公司,帮他们的产品向移动端迁移。那你就具备顶端优势了。
归纳一下,这篇文章讲了三点:
推荐阅读:
标签:情况 迷茫 语言 编程 方法 i++ 职业 小结 lua
原文地址:http://blog.csdn.net/foruok/article/details/60862462