英雄之旅-行走在开源领域的一个自叙故事
作者介绍
潘娟,京东数科高级DBA&Apache ShardingSphere PMC,主要负责京东数科分布式数据库开发、数据库运维自动化平台开发等工作。曾负责京东数科数据库自动化平台设计与开发,现专注于Apache ShardingSphere分布式数据库中间件平台的开发。主要在分布式数据库、开源、分布式架构等相关领域进行探索。多次受邀参加数据库&架构领域的相关会议并进行分享交流。
前序
《英雄之旅》是由美国神话学家约瑟夫·坎贝尔提出的。好莱坞很多经典IP巨作即是把《英雄之旅》的套路搬上了巨幕。
最近在读一些心理学书籍,随即发现我们每个人的一生都是一场英雄之旅。从被使命召唤、踏上艰辛的考验之旅、接收他人恩赐、发现自我、到达胜利顶点、回归自我。然而,很多人可能一生都行走在发现自我的路上,若是有幸,则能到达顶点,回归自我。
这篇分享以”英雄之旅“为开始,是希望把自上篇文章-程序媛成长纪:从DBA到研发工程师以来到现在的经历,提取出经验点,与所有行走在英雄之旅的朋友交流,碰撞火花。毕竟我们每个人面对工作、生活、家庭、自我都有着太多冲撞和思考,需要被他人理解和照亮。:-)
由点及面
上篇的自叙文谈到我从运维DBA转成了Java开发工程师。准确的说,应该是开源分布式数据库开发工程师。因为在过去一年半多的时间里,我更多地是在分布式数据库中间件平台、分布式事务框架、分布式治理等领域做相关的研发工作。主要从事的项目是Apache分布式数据库中间件平台Apache ShardingSphere, 和京东数科主导的分布式事务平台JDTX(未开源)。 之所以说”由点及面”,是因为工作的内容开始从最初新手关注的一个点,开始渗透到整个项目的各个领域。从最初做的metaData初始化加载模块到现在Apache ShardingSphere的11个一级模块中,有8个模块都是深耕接触过,此外还有公司内部的分布式事务平台JDTX。从这里可以看出一个新手开始逐渐变成了”老司机“。这让我突然想到之前很多人问过的一个问题— 类似像ShardingSphere这样的大型项目,参与的正确姿势是什么?有人选择通读文档,有人选择把模块间架构关系梳理清楚……不过在我看来,从一个点入手,由浅入深,由点及面是参与大型开源项目相对容易的方式。因为一上来就啃一本厚书,很容易厌倦和恐惧,停留在表面,最后兴趣被各种事情冲淡,最后不了了之。而从社区一个很小的任务入手,不仅可以渐渐熟悉项目、获得成就感,更能够积累社区的信赖感,树立自我品牌,最终一览众山小。而在这个过程中,你也会发现自己的知识、技能、人际关系都在崎岖的路上不断上升!
由深入广
这个小节用来讨论大家争执已久的一个问题:究竟是先进行深度学习,还是先进行广度学习。标准答案似乎是:同时进行。但是从实践的角度讲,我们的精力、学习阶段、难易程度等因素都会让这个做法变得不太容易进展、很耗时、短期内没有产出。每个人从事的工作阶段、内容都有所不同,自然看法各异。从我个人角度来看,我更倾向于先深度后广度,同时尽可能兼顾彼此。
先深度,是为了帮助我们打下坚实的基础。试想一座空中楼阁,每次风吹雨打都会引发你的惊慌,又如何风轻云淡地向四周望去?正是由于有了扎实的地基,才让你觉得能够更容易理解别的高楼的建筑风格和特色,即在同一个交流层次能帮助我们快速了解他人的核心要点和提出自己的见解。在我刚入行的时候,我很不理解为什么要去听其他人的分享?我自己的一亩三分地还没有耕作完,日日新增的工作还不够我操心,我真的有时间再关注他人吗?当时,我的思想和视野都是狭窄的,我的更多精力是聚焦在了基石的打造,从GitHub提交记录可以看到我疯狂地学习和贡献,此时我没有多余的精力,也没有欲望去关注别人,于是我的视野也很有限。而当我不断熟悉了这个项目的架构与细节,这个领域的知识体系之后,突然发现我可以抽出一部分时间和精力去了解整个行业,而不仅仅是整个项目。而且此刻,我特别有欲望想看看别的楼阁是怎么搭建的、别人的项目是什么情况,我们和别人的异同在哪里。这增大我的视野,也意味着我开始转向对广度的寻求。
其实最好的做法,还是在深耕的同时,关注广度,了解别人在做什么。这样可以有效帮助我们在世界的大地图里,知道自己在哪个位置、自己的水准如何。不过,建议是建议,实践是实践。最好的方式还是问问自己,想不想,要做不做。因为,我选择,我自由,我存在。
由内向外
作为开源分布式数据库开发工程师,开源是赋予这个工作岗位的神奇力量。因为在开源的世界里,有开放、自由、平等、自我提升、品牌打造,也有竞争和资本的力量。这让我发现,我不是固步自封,我能感受到来自其他城市、不同国家的新鲜气息。在与同行朋友交流的过程中,你会发现这个行业的立体面,每个人不同的想法都非常有意思。当然,冲撞必不可少,成长的代价和痛苦也一定会非常给力地到位。迷茫和挣扎也一定会伴其左右,因为这就是一场典型的英雄之旅。但我在这个领域除了收获技能和知识,还收获了良师新友和分享的机会和能力。我并不想带来太多负面情绪给大家,我希望阅读文章的朋友能获得新的想法和力量。
过去一年半走过了深圳、上海、北京、南京,参加过中国系统架构师大会、COSCON中国开源年会、OSCHINA中国开源峰会、PstgreSQL中国技术大会、全国互联网架构峰会、ITPUB在线分享等各种会议。在机场写代码,在会场交流,在深夜写PPT。而这一系列的锻炼也磨练出了我的耐心、清晰的逻辑能力、良好的口语表达、自我的认识。我记得最开始,我编写PPT和准备分享都要提前2~3周准备,每天都抽空看看,现在已经变成提前1周准备,随后临场发挥。最近几期的音频和视频分享可以在公众号ALC Beijing 和B站收听和收看,欢迎关注。 ^_^
后序
篇幅所限,未能展开叙述。在文章最后,还是有些”鸡汤”想和大家分享。例如:与其病态地熬时间地做事情,不如多费心在身体锻炼和思考如何高效集中工作。作为过来人,觉得非常重要。此外,在你的英雄之旅中,找寻本我,释放压抑的情绪,活出自己。每一字一句,是我斟酌良久,给出的建议。因为在高节奏的生活和工作中,我逐渐发现自己人云亦云,被快餐手机消费,压抑自己的情绪,活着像个机器人,追寻所谓的“你好,我好,大家好”。
而现在,愿我,与你都能拥有力量,在不伤害他人的前提下,释放自己的能量,成为我自己,勇敢而执着地踏上英雄之旅!