技术的成长曲线

小李毕业后在一家公司作软件工程师,转眼间,一年多的时间已通过去了。程序员

回想刚毕业那会,他是怀着无比忐忑的心情进入了这家公司的技术部门。各类新奇的开发工具,叫不上名字的众多软件框架,庞大的代码库,井井有理的工做流程,都是小李之前在学校里未曾遇到过的,这让他感到了史无前例的压力。因而,在开始的那半年,小李就像一株久旱的禾苗遇到了雨水,拼命地吸取着工做中遇到的每一点知识。他学习新的编程语言,学习新的开发工具,学习调试和解bug的技巧,也学习处理各类棘手的业务逻辑。虽然天天工做很累,但天天都是满满的收获。算法

而现现在,小李俨然是一名颇有经验的老手了。对于工做中通常的问题,他都能游刃有余地加以解决,无非是把现有的一些内部接口从新组合利用,或者按照原有的套路从新设计改进一番。应付工做既然比之前轻松了许多,工做的压力也就显得没有那么大了。因而小李日常也能抽出时间来上上网,看看美剧,或者打打游戏,有时候也带着女朋友去看场电影或者球赛。编程

然而时间长了,小李内心却隐隐多了一丝不安。他再也找不到开始那种日新月异的爽快了,并且当对工做愈来愈熟悉以后,工做自己开始变得枯燥、没意思。他决定花更多精力在本身的技术提升上,但却感受无从下手,很难突破。每次完成一个新的开发需求,也只是不断重复旧有的东西而已。安全

成长曲线和四大阶段

小李的状况其实很是典型。不少技术人员在工做一两年以后,对工做周围的事情都得心应手了,就可能会陷入第一个瓶颈期,再难突破。网络

为了能更清晰地分析技术成长过程当中出现的各类状况,咱们来对技术的成长曲线作一个总结。以下图:数据结构

技术的成长过程并不是匀速线性的,而是分阶段的。每一个高速增加的突破期后面,都跟着一个平缓的增加期,能够称为温馨期,也能够称为瓶颈期。温馨期是针对过去而言的,而瓶颈期的说法则更着眼于将来。架构

通常来讲,突破的过程,绝非垂手可得,并且有可能伴随着阵痛。它须要咱们付出十分的心力,甚至承担必定的风险,作成一些本来超出本身能力极限的事情。而一旦过了突破期,各类技能在这个层次上融会贯通,就会给咱们带来极大的自信和成就感。这个时候,处理同一层面的问题,逐渐变得轻车熟路,因而进入了温馨期。框架

温馨期对人有一种自然的吸引力,咱们只要待在这个阶段,就能得到最大的安全感,尽可能少地遭受不肯定性的折磨。不少人会选择待在这个区间,再也不走出一步。而另外一些人则会对这一阶段的缓慢增加产生焦虑,因而温馨期变成了瓶颈期,从而引起下一轮的突破。机器学习

以每一次大的突破为分界,咱们能够将技术人员的成长粗略划分为四大阶段:新手、熟手、专家、宗师(开创者)。数据结构和算法

新手通过半年到一年的工做经验,若是能成功适应这份工做,基本就能有所突破,变成一个熟手。熟手的特色是,能对现成的工具充分利用,胜任大部分平常工做。在技术水平的表现上,他了解大部分的技术概念,但不必定理解真正的含义;在他的眼中,技术还没法自成体系,能理解到的知识架构还有所残缺。他解决问题所依靠的,更可能是经验而非缜密的逻辑。前面提到的小李,就处于这个阶段。

熟手再向上突破一层,则成为技术专家。专家,在某个领域拥有足够全面、系统而深刻的知识储备,对于技术上的疑难杂症,有能力深刻到足够的层次,指出问题的症结所在;另外一方面,专家还应该可以完成对具体问题的抽象,拥有“造轮子”的能力。在专家的眼中,技术的黑盒子被打开,知识点也再也不是孤立存在的,而是相互枝连,构成一个完整的逻辑系统。

而真正达到宗师这一级别的,整个世上也寥寥无几。他们是真正的开创者,可以引领一个技术时代。什么样的人才配得上“宗师”这个称呼呢?好比Dennis M. Ritchie(C语言和Unix之父),再好比Linus(Linux内核的发明人)。

但就像前面的技术成长曲线图所描绘的,技术的成长阶段并无一个上限。不管你处在哪一个阶段,前面仍然存在无限的上升空间。

郭靖的进阶之路

近日细读金庸老爷子的《射雕英雄传》,突然意识到,郭靖乃是金庸武侠中天资最为鲁钝的一位主人公。然而,郭靖从一个普通少年,终成长为一代大侠,这一过程,正好暗合了前面讲到的技术成长曲线。

郭靖从六岁开始,在蒙古大漠接受江南六怪传授武功,花了整整十年。后又得全真教掌教马钰传授内功一年有余,武功初入门径,得到了武学上第一个突破(熟手期)。处于这个阶段的郭靖,在武功上与同龄的杨康不相上下。

郭靖在武学上的第二个突破,原由于两个事件:一个是“北丐”洪七公传授他降龙十八掌,另外一个是老顽童骗他背诵《九阴真经》。通过一番历练,在华山顶上,他已经拥有了分别与“东邪”和“北丐”过手三百招而保持不败的战绩。此时的郭靖,已是高手中的高手了(专家)。这第二次突破,他只用了两年有余。

而郭靖的第三个突破,已是在《射雕》以后了,终于成长为一代武学宗师。

为何天资并不出众的郭靖,却可以接连取得突破呢?至少两个缘由不容忽视。一个是勤奋,“人家练一朝,我就练十天”,因此根基打得好;另外一个缘由是他刚好学对了东西,降龙十八掌和《九阴真经》都是正宗武学,有幸学到天然是日新月异。

突破的要领

技术成长的关键在于突破。

然而,在技术成长的路上,越到后面,突破的难度就越大。大部分新手,只要保持足够的勤奋,总能达到熟手的程度。但不少人却止步于此,他们或流连于温馨期的诱惑不愿走出来,或长期卡在瓶颈期却找不到突破的出口。可以突破达到专家这一阶段的技术人员,已经足够成为各大公司技术部门的翘楚了。而要达到宗师的级别,则不光靠我的的努力,还须要时代的机遇才有可能。

那么,为了达到真正的突破,有哪些因素是咱们须要重视的呢?

第一,根基。

在接触一门新技术或者一个新的技术领域时,良好的基础有利于咱们快速突破,抵达下一个阶段。不一样技术之间,基础倒是相通的。好比,对于计算机软件学科的基础知识——数据结构和算法,处于熟手期的程序员可能多半会认为它们在工做中根本没有用。这是由于这个阶段的技术人员主要靠孤立的经验解决问题,一些基础的知识天然就用不上。但对于技术专家层次的人来讲,数据结构和算法倒是在系统设计的不少方面潜移默化地发挥做用。对于其它计算机基础学科,这个道理也一样适用。

再好比,如今人工智能和机器学习技术比较火,彷佛全民都在学习。但要想学好这些技术,至少应该对于微积分、线性代数、几率论、统计学等数学知识有比较扎实的基础,才能走得更远。

第二,外因,一个不疾不徐的环境。

过于宽松的环境天然不利于人的进步,而盲目的紧张也不利于人的成长。

突破的过程须要付出巨大的精力,因此须要投入足够的时间去从容地完成。咱们大概都经历过这样一种场景:新产品上线在即,但还有不少问题须要解决。若是距离预约上线时间还有数天,那么咱们能够相对从容地用比较优雅的方式来解决这些问题,并作一些长远的打算;但若是咱们碰到的状况是,两个小时之后就要上线了,那么咱们多半会想一些歪点子来规避这些问题。

产品开发和技术优化,有时相辅相成,有时又互相矛盾。若是你所处的工做岗位,只是要求你不停地修改业务流程,盲目地试错,那么,可能公司根本没有给你留出技术突破的空间。试想,一个主旨不清,功能点作了新的就扔了旧的,而没有长远的目标,也不去持续优化体验,这样的一个产品,又怎能有持续的生命力呢?

第三,正确(正宗)的学习资料。

新手刚开始工做的时候,一般只要看一些入门教程(Tutorial),跑几个Demo,扫除了表面上的技术疑问点,再针对业务代码向老员工请教一番,基本就能开始工做了。而后一边编码,一边查阅所须要的API Reference,时间长了,经验和技巧足够多了,就天然变成熟手了。

而从熟手向专家的突破,则须要系统地去补习知识架构。技巧应该创建在对于广泛规则的理解之上。这里不得不说起Spec,它是涉及某项技术的完备的、系统的描述,包含该项技术涉及到的方方面面(具体参见个人另外一篇文章《技术的正宗与野路子》)。在奔向技术专家的路上,阅读Spec,是不可逾越的一道功课。《射雕》中郭靖的武功突破,很大程度上就是由于他阅读了《九阴真经》这份大大的Spec。固然,除此以外,你可能还须要通读重要部分的API Reference以及Source Code。

技术专家必然将原始文献(官网Spec、论文等)做为知识的第一来源。相反,跟着某人的博客去系统地学习某方面的技术,是要冒有很大风险的,还需慎重选择。

最后,要想成为技术上的一代宗师,则须要更高的抽象,作出彻底创造性的工做。这份工做不只仅是阅读Spec,解决具体的问题了,而是创做Spec,开创全新的天地。

第四,独立思考,不要自我设限。

如今,不少人喜欢把技术好的人喊做“大神”。这天然是表明一种尊重,不少听的人也很受用。

可是,“神”的称呼暗含了一层意思:神是没法超越的,是普通人学不来的。这是人们在潜意识里划出的一道鸿沟。因此,我就不太喜欢相似这种称呼。

不少人碰到问题就喜欢找身边“大神”去问,但却不知问再多问题,你仍然没法真正地有所提升。普通人和“大神”之间真正的鸿沟在于,可否独立思考和解决问题。


在追求技术成长的路上,不可能老是一路顺风。咱们难免有时沮丧,有时欣喜。

人生苦短,有人穷其一辈子,就是想要达到理想中的那个状态。但无论结果如何,当咱们青春再也不的时候,只求心安理得。

(完)

其它精选文章

相关文章
相关标签/搜索