程序猿的能力拓展模型

    听人说了一个词儿,叫作“Comfortable Zone”,中文是“舒适区”。

    这个词儿让我瞬间联系到程序猿的能力边界问题,我画了能力拓展模型图。例如以下:



    我认为这个能力拓展模型,适用于一个人的方方面面。但这次我打算仅仅拿程序猿来扯一下。

能力拓展模型

    图中左側是我们的现状,最内层的原型是我们感到舒适的区域。我称之为“舒适区”。

    以程序猿为例,当程序猿的技术能力和解决这个问题的能力达到一定水平之后,就能够轻松胜任某些开发任务。解决特定实际问题,给用户带来某方面的便利。

他的能力与他接触到的问题匹配。此时程序猿处于舒适区。这个舒适区的大小是由他解决这个问题能力的大小定义和界定的。

    当问题超出程序猿先有技能和经验说明,他能看到并了解,但还不能解决。那这些问题就是这个程序猿随时可能面对的挑战区,也就是图中的黄色圆型。

    图中的大片的红色区域,对程序猿来讲,就是未知区域。未知即迷茫,未知即痛苦。这个区域往往是程序猿看不清或看不到的,是百慕大三角的一片未知而神奇的区域。贸然跳入。可能折戟沉沙铩羽而归。

    假如一个程序猿愿意跳出舒适区。踏入挑战区。接受一定的不适,那他就能够有机会拓展他的能力。将自己的舒适区扩展得更大,他的能力模型就变成上图右側部分。舒适区变大,挑战区变大,痛苦区变大。这也是符合人类认知规律的:知道的越多,不知道的也越多。

    假设一个程序猿连轻微不适都不愿意接受,那他就会渐渐固步自封。落后于别人,落后于时代。渐渐被这个日新月异的时代所抛弃,成为一个别人眼中没什么用的老家伙。

在开发过程中扩展舒适区

    一个程序猿的能力。是能够通过锻炼不断变强的。

就像人的肌肉,一段时间让锻炼强度超负荷一点。适应了,习惯了,肌肉变得比原来强了。就再超负荷一点,通过这样的螺旋式递进,肌肉就会越来越强。程序猿也是一样的,你的学习能力、代码能力、设计能力、沟通能力、管理能力等等,都是能够通过锻炼来加强的(我们得考虑一个人适合做什么,假设他没有某方面的才干,尽管通过锻炼也能够加强。但违背天性的事儿通常为事倍功半)。

    在软件开发过程中,一个程序猿,他会什么语言懂什么框架水平怎样,自己心里有数,项目经理通过他的表现也认为自己心里有数。那么在有新的项目要做时,通常的做法是,哪个程序猿熟悉实现Tx任务相关的技术,就让这个程序猿做Tx任务,这通常又是出于交付期、生产率、成本等各方面的考虑。

    在这样的情况下。每一个人都做自己驾轻就熟的事情。对整个项目来讲。自然是最经济的。

可是对程序猿自己来讲,却是不经济的。由于你无法接受新的挑战,你的能力边界的拓展就会非常慢。

所以。合理的情况是。项目经理在划分任务时。要对程序猿负责,既给一个程序猿能轻松完毕的任务,也要给他须要费点儿劲儿才干完毕的任务,通过具有挑战性的任务来锻炼这个程序猿,让他更好更快的成长。

可是这样做的管理成本太高,所以,现实其中,非常少公司的项目经理会主动这么做(没合适人手take某个任务时会被动这么做)。

    鉴于这样的现实,作为程序猿自己,假设你想更快地成长。就要表现得勇敢一些,主动走到挑战区域。去抢具有挑战性的任务。(假设不好意思主动。也能够在有挑战性的任务落在自己头上时屁颠屁颠地接受。

)一旦你拿到了对你来讲具有挑战性的任务。那你就赚到了。没错,我是有益这么说的,你赚到了。尽管你会为此殚精竭虑。尽管你可能为此加班。尽管你可能为此在别人看不见的地方付出,可是你拥有了机会和很多其它可能性,假设你顺利完毕了。那你的舒适区会扩大,你接触新挑战的机会也会变大,你就进入了良性循环,你会越来越强大。你终将走上七龙珠中悟空的变身之路,成为赛亚人,超级赛亚人。超级赛亚人2。超级赛亚人3,……直到成为超级赛亚人之神。

    想想看,这是多么美好的事!

    So,某个技术没搞过?不是问题。某个语言没学过?不是问题。软件结构太复杂,一时掌控不了?不是问题。

业务不熟悉?不是问题。

假设你认为这些是问题,OK,请坐看云起,等待时光带走一切然后把你丢在原地。

    在渴望成就自我的程序猿眼里,问题即机会。仅仅有抓住机会。我们解决这个问题的能力才会在痛苦的历练中像雪球一样越滚越大。


    很多其它精彩文章,请參考我的“漫谈程序猿专栏”。

    本文曾在我的微信订阅号“程序视界”上公布。关注就可以第一时间看到我的原创文章以及我推荐的精彩文章:


原文地址:https://www.cnblogs.com/clnchanpin/p/6785834.html