创业者常说 "Develop a company as a product",把公司当做一个产品来经营。我觉得对技术人来说,可以Develop yourself as a platform,把自己当做一个平台来进行设计和开发,用这种思路来更好地规划自身的成长路线,建立起知识体系。

为什么是平台? 因为平台有其特性和优势:1. 通用化:平台一定是有通用的底层能力支撑的;2. 差异化:这是平台的竞争力; 3.生态化:平台是开放的,价值来源于外部的调用。这三点也正是技术人员,甚至各行各业人员都需要的特性。

一、平台的分层设计 -- 规划成长路线

我们在做平台或系统时会先做好架构设计再投入开发,但在个人成长方面往往忽略了这一点,缺乏整体的规划很容易迷失方向,最直接的感受就是觉得自己什么都会,又觉得什么都不会,学了很多但又说不出来。

所以规划技术路线就是为了想清楚未来你想成为什么样的人,需要学习哪些方面的能力,每个方面的权重各是多少,从而达到有的放矢。

在做平台架构时常用的一个手段就是进行分层设计,以获得一个清晰的全局视角。比如对一个支付领域的后端工程师来说,分层架构图可能是这样:

分层设计

底层是通用化的技术能力,这是支撑长远发展、对抗变化的基础;中间是业务领域知识,这是可以深耕和沉淀、形成自己核心竞争力的部分;最上层是生态化,这是把自己的能力对外输出、扩大影响力的出口。

当然,不同角色有不同的成长路线,对偏底层的工程师来说,可能就没有业务领域层,比如数据库工程师,会更专注于计算机底层的技术,差异化这一层就来自于数据库内核方面的相关知识。

二、模块的设计和开发 -- 点亮技能树

有了整体的分层架构,下一步就是对平台每一层的具体模块进行"设计和开发",每个模块可以由多个知识点或能力项组成,形成一个树形的结构。如果说第一步选择技术路线就像游戏中选择角色的职业,那我们的知识和能力项就像职业的技能树一样,成长的过程其实和修炼的过程相似,在选择好方向后通过不断学习和实践尽可能的去点亮技能树。

技能树听起来很抽象,如果只存在脑子里的话并不清晰可见,可以尝试将其可视化出来,比如还是以支付后端工程师为例,根据第一步的分层,展开后的技能树可能是这样:

技能树

个人可以根据自己的规划搭建出不同的技能树,且可以设计的更立体。比如知识点可以设置权重,表示学习这个知识的目标程度,是了解、熟悉还是精通,再辅以时间计划,可以作为一个目标管理工具;再比如可以给知识点关联上学习资料、以及自己的作品 (文章、项目等)作为支撑,成为个人能力门户;同时知识点之间可以互相关联和引用,形成一个真正的知识网络。

这个技能树正是对个人知识体系的表现,是对自身能力的具象化,可以让我们更清晰的了解目前对各个知识的掌握程度,未来想要学习哪些知识。

三、平台的调用和维护 -- 实践中内化

平台的设计和开发完成后,就到了上线使用的时候,也正是被调用才带来了它的价值。平台的各个模块组合成服务对外提供,并且在使用中不断迭代和优化。同样的,在我们工作实践中,各个知识点/技能点也组合成能力来帮助我们完成项目,同时过程中也会产生新的知识,给我们的知识大厦添砖加瓦,这是一个相辅相成、不断迭代的过程。

知识的学习过程可以分为阅读、理解、内化三步,其中内化是至关重要的一步,因为只有经过内化的知识才是属于自己的,而实践正是最好的内化方法,可以是在工作中应用某个知识点、踩过某个坑,可以是把知识教给他人,可以是输出了一篇完整的文章,这些都能真正把知识吸收到自己的知识体系中。

而当我们在学习一些没有使用场景的知识时,效率和收益都很低,很容易忘记且很难坚持,这正是因为少了内化这一环,没有实践作为反馈。所以在选择学习什么的时候,做好评估很重要,要想清楚学习这个知识对我的帮助和收益是什么,需要学到什么程度。在成长初期,可以优先学习工作中能应用的、有收益的知识和技能,而不是为了学习去学习,这样的选择并非功利,只是为了更高效地把知识内化到自己的体系中。

总结

上文以开发一个平台作为类比,讨论了如何构建个人的知识体系,包括规划成长路线、建立知识网络、通过实践内化三步,其实搭建和管理自己知识体系的形式有很多种,核心是要有全局的把握和清晰的规划,并且做定期Review来不断完善。总之,根据自己擅长什么和热爱什么来确定目标,并不断坚持,一定会有所收获。

添加新评论