查看原文
其他

如何进入一个新领域

老曹 喔家ArchiSelf 2021-08-09

周末下午,阴雨连绵,北大燕园。



自己也没想到,项目进展的如此迅猛,事情来的措手不及,伙伴们还在加班鏖战。但是,承诺的,还是要做到。更何况,这是好友海峰提前半月就约定的,最终还是参加了4.21 这次沙龙的分享,尽管心中对伙伴们很是歉然。


这一次分享的主题是——如何进入一个新的领域,按规矩从自我简介开始。


作为一个半吊子全栈工匠,一枚二十多年的老码农,有过三次世界500强的从业经历,参与过四家创业公司,几篇铅字短文,几次会议分享,在一个生态环境中投入过7年时间,杂乱的学了8种编程语言,署名九项国内外专利,《深入分布式缓存》一书的作者之一,右图就是本公众号。


主要按照 what->why->How->Do 的次序分享本次的内容。


按照我们思考的习惯,先要定义,也就是明确问题的边界。

为了简化起见,可以从业务和技术两个维度结合“新”来粗略地界定新领域。在这里,只有原技术实施于原业务没有定义为新领域。进入一个新领域包含换工作岗位,却远不局限于此。


为什么要进入新领域呢?

个人认为,主要有两个原因,第一个是“人在江湖,身不由己”。从业务上看,是组织的需要,不论业务转型还是多元化经营,都可能安排我们进入新的领域。从技术层面看,可能原有的技术满足不了技术的需求,或者对历史遗留技术债务的偿还,也可能是我们进入一个新领域。关于技术债务,可以参见一下老码农看到的技术债务


如果说组织需要我们进入一个新领域是被动的,那么由于个人追求进入一个新领域就是主动的。主动进入一个新领域可能有三个原因:

  1. 出于乐趣和热情,对自身技术的追求和完善

  2. 出于对财富的追逐,“君子爱财,取之有道”,这也没什么不妥

  3. 出于对技术或产业趋势的自我洞见

前面,秦金卫就提到了自己对趋势的见解。自己在5年前,也将互联网的技术趋势不知深浅的分为3个: 可信的网络,安全的网络和无所不在的网络。这也是自己目前从事IoT领域研发的原因之一。


如何在一个新领域中地位自己呢?


个人觉得,大概是“知人者智,知己者明,知己知彼,百战不殆”。

对于一个新的领域或者行当,从业务上看,要了解其功能特点和业务场景,简单的说,就是认知这一领域解决了我们生产和生活中的哪些问题,这些问题的边界在哪里,这很像我们了解的《领域驱动设计》。从技术上看,要考察具体实现中的核心组件与核心技术, 进而了解实现过程中的关键路径。



认识自己不是一件容易的事情。每个人都可能高估或者低估自己,而且是高估的时候比较多。对个人而言,尺有所短,寸有所长,认识自己技术栈中的优势和劣势。更重要的是,明确自己的志趣所在,明确自己的目标和期望。



在初步了解了新领域的特点和自己的特点后, 可以分别为领域知识和个人的能力建一个知识体系树,然后做对比映射,这一会有助于在新领域中定位自己。


回归到主题,如何进入一个新领域呢?


个人觉得,以系统思维考虑问题,进而建立自己的知识体系,然后以终为始的方式去行动,可能更容易适应一个新的领域。


系统思维,精彩会被大家提及,那什么是系统呢?


这是维基百科对系统的一个描述,大意是:


一个系统是一个经常相互作用相互依存的组成一个整体的项目。


每一个系统都被它的时空界限所划定,被它的环境所包围和影响,由它的结构和目的所描述,并在其运作中表达。


系统科学是一门学科,不是一介码农能搞清楚的。但是从相互作用和相互依存来看,是否可以理解成“面向接口的设计”呢?不论是系统的内部,还是系统与外部环境,交互表面都应该是优先思考的问题。


对系统中的一个重要描述,就是时空限定, 我把它理解为时空观。

从下向上,子系统->系统-> 超系统, 相当于空间结构,大致可以理解为组件,产品/服务,平台。 


从左到右,过去-> 现在->未来,相当于时间维度,大致可以理解为系统的历史演变。


以架构的一种演变说法为例,单体->垂直->SOA-> 微服务,(前面秦金卫中的讲述), 从时间上来看, what is the next? 是 service mash 吗?还是 FaaS 的Serverless 架构呢, 这都是指的思考的问题。


举一个 用系统思维理解 AI 的例子。


详见老码农眼中的简明AI 。


构建所谓的知识体系之前,先弄清一下什么是知识体系?

这又是一个复杂的概念, 但我们可以粗浅的理解为,让每个我们所掌握的知识点联系起来,让这些知识点可以相互作用和相互依存,并用时空的方式给予表达。知识不再是孤立的点,而是线,面,体。


这是我过去对全栈技术栈的一点设想,尽管全栈泛滥,且充满争议。

左侧是从空间构成上的理解,右面是时间和效率方面的理解。具体可以参见我的两篇旧文全栈的技术栈设想 和 再谈<全栈架构师> 一文 。


另一个例子是缓存。

缓存是拿空间换时间的艺术。传闻,互联网有两大神器,一个是缓存,另一个就是消息队列。关于缓存知识体系的构建,我负责任地推荐我们合著的一本书——《深入分布式缓存:从原理到实践》。



最后,举一个嵌入式领域的例子, 对于便携式设备而言,大家经常会讨论的一个问题——功耗。

金字塔是一种很有用的建模方式,或者说系统思维的方法,对于非技术领域也是如此,比如,马斯洛需求层次理论中的金字塔。关于功耗的详细描述,我准备单独立文描述,这里不再赘述。


最后,谈谈以终为始。


架构的原则有很多,个人觉得,以终为始是非常重要的一条。要知道系统的目标是什么,要理解理想状态是什么,并按照目标去预测和实践。


图中的九个方面来自于《创新算法》一书, 在10年前读此书时被深深震撼。关于这九个方面的详细描述,可以参见面向全栈的技术管理 一文,那是过去的一次分享的内容。



在问答过程中,出现了一些有趣的环节,例如,答非所问,还有人再次问到我在初入职场时的经历, 我又讲了那个故事,即三本书影响一个人


附:这是饿了么与北大开源协会(组织者是邬老师的学生)举办的技术沙龙,有视频回放:http://www.itdks.com/eventlist/detail/2072

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存