当我们站在技术之路的原点,未来可能充满了迷茫,也存在着很多不同的可能。在这个知识爆炸与终身学习/碎片化学习为主的时代,我们面临的问题之一就是如何进行有效学习,不仅能有效平衡广度与深度,并且能真正的积淀下来,提升自己的研发效能。于笔者而言,常常郁结于胸的就是以下三个问题:
应该学习什么?这是怎样的一个技术世界?存在着怎样的高峰与路径?
如何克服遗忘带来的无效学习?
如何不再碎片化地学习?
究其根本,也就是需要拓展自己的知识广度,精进自己的知识深度,锤炼自己的编程能力。所谓知识广度,即是为实际问题选择合适的解决方案的能力,广义来说也是眼界与格局的表现。它并不拘泥于某个技术方向或者行业领域,而需要对传统/流行的各类语言、工具、框架、库、服务等有一定的认识;能够明晰各个方案的优劣,并在较高的层次(High Level)描述相关原理。知识广度的拓展与保持需要建立在庞大的阅读量与知识沉淀能力上。在能力模型一节中,我们从业务、团队、技术这三个维度,对技术人员的五个层次进行了梳理:
知识广度的拓展并非一蹴而就之事,需得循序渐进,从初窥门径,到登堂入室,最后融会贯通,当我们感觉乱花渐欲迷人眼,太多的碎片化知识反而使自己迷失方向之际,就可以去深入地阅读学习各个领域的精选书籍、课程等系统化的内容。
俗话说,好记性不如烂笔头,当我们阅读的多了,自然也要开始记录;而笔者认为记录的开始就要有自己的知识体系。在自己的知识体系下随看随记、定期整理。唯有建立符合自己认知方式的知识图谱,才能有效地沉淀知识,明晰知识边界并进行不断地探索。上车伊始,笔者即致力于构建自己的架构师领域的知识图谱、学习成长路线与面试必备内容,并在数年来不断维护与刷新。
这些笔记即是笔者自身技术视野与认知的外化,也类比于外设之于内存,在需要的时候分页加载到脑海中使用,以应对这知识爆炸的时代。我的技术之路是对于笔者多年学习与认知变迁的总结。
既然说到这里了,就向大家分享一下我记录的架构师知识图谱,以及面试必备的文档
(由于图片太大,方便阅读起见,以专题形式分开)
1.分布式架构
2.源码分析
3.性能优化
4.微服务架构
5.团队协作开发
6.高并发
以上是我根据自己的经验总结,从一名基础码农成长为一名优秀的技术大牛所应该掌握的专业知识点
前文重在讨论如何拓宽技术视野、追寻技术的广度,但是需要铭记的是,技术深度才是技术广度的基石,正如中国自古以来常用道术之辩,知其然,也要知其所以然;亦如 Richard Feynman 所述:”What I cannot create, I do not understand.”。所谓知识深度,即是能够对某个方面做到深入了解,并且达到融会贯通,洞若观火,可以随心所欲地加以扩展、优化、创新等改造或变换。这方面则更加的见仁见智,不同的领域与方向对于深度的定义与挖掘方向也是千差万别。
我们需要自己去从零开始造些轮子,才能深刻理解使用的框架/库/平台的内部原理,才能在碰到故障时快速地修复。