从宏观上来讲,我对技术的认知,以及自身技术体系的建设,从19年到21年,应该是经历了三次迭代。

19年的时候,我刚开始找实习,那时候想的是如何才能增加面试的成功率,所以不断的找面试题,当时就面试和学习的角度,把技术分为了:编程语言(Java基础,集合,多线程,虚拟机),数据库,计算机网络,操作系统,数据结构和算法,设计模式,场景设计等几个方面,我不断的往这几个方面去填充内容,也获得不小的提升,面试也拿到了不少的offer。

20年实习结束后,有了一点点工作经验,我开始重新思考自身技术体系的建设。因为在工作过程中,遇到的一些问题都是应用层面的,这时候就没办法按照原有的逻辑来归类思考;另一方面,我觉得原来的分类太教科书化,需要再抽象一层,才能更好的归类我在工作中总结的一些文章。所以,我把技术维度按照:场景实践,基础夯实,架构思考,源码剖析,踩坑记录等五个方面。这样的话,不管是宏观的架构,还是基础的技术,抑或是编程技巧,都会囊括其中。

到了21年我毕业之后到杭州工作,接触的业务项目越来越多,对技术的认知也变得更偏向业务层面。而且,原来的体系更偏向于文章归类的维度,而我更想建立一个技术统一的方法论。所以,更进一步,从开发的角度出发,我开始把技术分为两个核心,业务开发的一个核心是实践,而实践中还包括两种,一种是微观的编程实践,一种是宏观的架构实践。另一个核心,则是思想,这种思想模式包括:可扩展,高性能,高可用,以及在这三者中可能出现的一致性问题。

目前技术体系还是不太成熟,不知道22年结束后,又能演变成什么样子….

附:第三代技术体系大图(建设中)