技术人员如何学得动
编程是一门知识更新很快的技术。通常来说越接近终端客户的技术,升级换代得越频繁。各种开源新技术推陈出新的速度已经在以指数级上升,技术人员如果避免进入“学不动”的困窘之境,这就要求我们掌握一些科学的学习方法。半衰期原来是指在物理学中是放射性原子衰变至原来数量的一半所需的时间,后来在医学被引入使用,指药物在生物体内浓度下降一半所需要的时间。
开发技能按半衰期从长到短可以分为:内功 -> 技能树 -> 技能点
内功包括:计算机组成原理、操作系统原理、数据结构与算法、数据库原理、linux内核原理、设计模式、网络原理、编译原理、软件工程理论等。在这方面,计算机专业毕业的同学要有先发优势 但是内功之所以称为内功除了经典之外,一是要靠实战的检验,二是要指导实践,三是从足够的实践中找到本质。
技能树,技能树是指某个技术小领域内的技能点的有机组合。比如你会写sql并不是技能树,你会建索引也还是技能点。但是当你把数据库的运行原理、索引结构基本融汇贯通后,你就形成了数据库开发方面的技能树。你会Dubbo、会Spring Cloud都算不上是技能树,但是当你对整个微服务拆分、设计,并且对在限制业务条件下的某些取舍都了然于胸,而且对微服务拆分后引起的分布式事务也有相关解决方案的时候,你就形成了微服务开发方面的技能树。
技能点,特定的某些技术点。如git的使用、Netty的使用、RocketMQ的使用等等。对程序员而言,技能点的掌握相对容易,只要有心,每天都能掌握新技能点。而程序员的第一个混沌状态的出现就是很容易迷失在各种眼花缭乱的技能点上。2011年笔者当时还在负责电信类项目的开发,那时的我,沉迷于项目内外的技能点,当时的状态可以说是只要是上级交代的任务,都能按时按质完成。当时我天真的以为所谓所谓编程不外如是,即使当时某个技术不会用,学学也会。现在回想起来,觉得真是自大有余,自知不足啊。
从技能点到技能树,是一次视野的拓展。笔者在2012年后有一段短暂的技术创业的经历,虽然这次创业最终并不成功,但这段时间的经历对我的视野拓展真是大受裨益。虽然我的重点工作仍旧是开发,但需要考虑诸如:管理、需求、开发、测试、运维甚至一部分运营的事情了。笔者认为互联网上,微信公众号上分散的技术文章更适合用于某个技能点的学习,并不适合用来构建技能树。构建技能树最好的方法是系统性的阅读书籍,阅读书籍最佳时机是在用过某个技能树上的某些知识点后,此时最适合将这些技能点连接起来,形成技能树。当掌握的技能树到达一定数量后,当对技能树的运用积累到一定程度后,自然而然地,逐渐回归技术本质,从经典教科书上再回炉,从而达到无招胜有招之境。
技能树有高低,技能树有多寡。那如果让自己的技能树又多又高呢?
对于工作不久的童鞋,我更建议他进入知名的互联网企业,在那里开发刚需的技能树会成长得很快,而这,是你安身立命的基础,你的核心竞争力。而且这个高度很可能是你光看书无论如何也达不到的,纸上得来终觉浅,绝知此事要躬行指的就是这种状态。
从工程的角度看,任何一颗技能树都是有上限的。同样的,技能树也有生命周期,也会消亡。技能树多的人能更好的对抗某项技能树的衰亡。那如何拥有更多的技能树呢?首先,你需要发现它,怎么发现它呢?简单点说就是知道自己不知道的。
如何知道自己不知道的呢?这就要求我们站在更高的格局看问题,在小公司任职更高的职位可能会得到更全方位锻炼,碎片阅读热门IT技术资讯也能让你的知识横向扩展得更快。坚持一段时间后,你发现你的空白技能树越来越多,有选择的用前面介绍过的方法逐个击破拿下整个技能树。
本职工作外如何选择第二技能树呢?功利主义角度出发,技能树的选择越新越好。比如曾经的工作流、ERP、大数据现在的区块链,每一项新技术刚推出时,由于市场稀缺,资本推波助澜等原因都会带来一定的溢价。此时你将这些技术变现,除了价值最大化外,还让你具有先发优势站在新技能树的上端。当你占据了某个朝阳技能树上端的时候怎么精进呢?第一向顶端学习; 第二分享你的知识;第三与传统技能树结合,形成内功。
内功不如招式般见效快,但它让你走得更远。没有内功光有招式,就像岳不群练了辟邪剑法后,对付一般高手绰绰有余,对付真正的高手还是力不从心。内功不是凭空产生的,你需要多思考、多实践 、善于观察生活 。学而不思则罔,思而不学则殆。你需要阅读消化经典的计算机著作->实践->形成技能树->经典教材再回炉->指导实践。
总结:按半衰期从短到长,分别为技能点,技能树,内功。“学得动”的诀窍在于积累半衰期更长的内功。 在日常工作中注意相关技能点的积累,量变引起质变后将孤立的技能点有机结合,通过阅读、分享知识等手段形成技能树。技能树建议先纵向拓展,站稳脚跟,达到一定的高度后再横向拓展。在选择新技能树时,热门技术可以给你带来一定的溢价,且让你具有先发优势 。有意识的去经典教材中回炉,学习,思考,实践,进而积累半衰期较长的内功。