写代码水平的几个发展阶段

背景

这篇文章非我原创,是我在公司内部平台拜读了咱们公司的架构师——杜欢最近写的一篇文章,也很感同身受,以为很是值得分享。git

杜欢在个人眼中是一名很是出色的全栈工程师,他拥有 10 年以上的开发经验,不管从技术深度和广度上都有很不错的造诣,即便已经作到了部门技术总监的位置,还能始终保持着对技术的热爱和追求,令我很是佩服。他根据多年的经验,总结出程序员写代码的水平分为如下几个发展阶段:程序员

懵懂

刚开始学习编程或学习一种新技术的时候,会有种雾里看花的感受,似懂非懂,就算记住了也不会用。要突破这个阶段的方法就是“练习”,经过各类项目让本身熟练起来,作到任何一个不太难的业务需求能够快速想到解决方案而且开始动手实现。github

会用

经过 google、stackoverflow、各类专业社区、各类文章等渠道,本身慢慢会发现更大的世界并对这个世界中各类技术产生了兴趣,理解一个简单的新技术再也不成为本身的瓶颈,本身慢慢能够驾驭很是多的工具、组件、库、设计模式、算法、语言等,主动不断扩大本身的视野,尝试在项目中使用各类新东西,对引入一个新技术开始变得很是兴奋,最终能够作到快速的吸取并理解一个新技术的用法,也知道何时该用什么技术。算法

会看

出于某些机缘,好比遇到了一个比较难以解决的 bug,开始深刻阅读某种平常用到的技术的内部原理,从而开始发现更多本身所不知道的东西,并开始对各类技术的背后实现产生兴趣,慢慢创建起一个相对完备的知识体系,对某个领域的全部的相关技术都可以如数家珍通常的讲出来,第一次开始有一种“时间不够用”的无力感,面对浩如繁星的开源/闭源代码量深深感受到本身的眇小,愈来愈不肯意去轻易重造一个轮子,真正懂得怎么去评估一个开源技术的好坏。编程

会写

忽然有一天,在钻研某种技术的时候发现一种突破性的思路,而且经过谨慎调研后发现确实有实现出来的必要,因而就将大量的时间投入在实现理想的过程当中去,而且主动的用各类技术来提高本身的工做效率,最终拿出来的成果确实如预计通常站在了业界的最前沿。设计模式

会想

当本身已经站在了业界这个领域的最前沿,除了继续动手实现最核心的代码,还找到了将来三年的发展方向,而且第一次勇敢的自我否认抛弃了本身原先的想法。架构

总结

若是长期不写代码必定会让本身的水平降低,若是长期只作当前级别如下的事情也可能会退化。绝对不是说“会想”了就能够天天冥想、指点江山,本身不动手就很容易被后来者超越而且开始固步自封,从“会想”变成自觉得是,退化到以前的阶段。工具

杜欢认为他目前一直停留在“会写”的阶段,甚至有可能已经退化到了“会看”阶段,距离“会想”还很是的远。我看完后感受本身在“会看”和“会写”中徘徊,也远没达到“会想”的阶段。学习

很是多的程序员停留在“会用”的阶段,知足于可以解决问题,还没能看的更深更远。在“会用”的阶段很容易产生一种无所不能的错觉,以为已经没什么功能实现不了,开始重复造一些并不怎么好的轮子,造轮子以前甚至都没有去仔细研究过业界最早进的技术实现细节,若是一直处在这种错觉之中,基本上就很难再成长了。其实这种现象在大公司中也常出现,不少程序员仅止步于写代码的初级阶段,仍是很是惋惜的。google

在进入“会看”以后会有一段很是长的痛苦期,这段时间里会很是感受一我的的眇小,既没有时间去穷尽全部技术细节,也没有能力去找到前人没有尝试过的突破性创新,简直是一种煎熬。有很多业界大牛就停留在这个阶段,迷失在各类细节之中,成为一个知识丰富但缺少创造力的人。

我最近认识了一些新朋友,是一些热爱折腾的年轻人@doodlewind、@工业聚,我关注了他们的一些动态,并在和他们交流技术的时候明显感受到技术视野和思路被打开,很是看好他们。虽然我如今在公司也作了一些技术管理的工做,时间精力被分配了一些,但也但愿本身也能一直保持着持续的技术学习,在技术这条路上继续深耕。

但愿全部程序员都能笔耕不辍,向着下一个阶段进发。

相关文章
相关标签/搜索