8小时前
|
|
|
111
作者高中时曾梦想成为一名现代舞者,但同时对编程也充满兴趣。受到皮克斯动画电影《玩具总动员》的启发,作者对 3D 图形产生了浓厚的兴趣,并自学了 C++ 和线性代数。
虽然最终未能成为一名专业的舞者,但作者在大学选择了计算机科学专业,专注于 3D 图形。毕业后,作者在一家小型公司从事飞行安全分析软件的开发工作,将飞行记录仪的数据转化为 3D 动画。
## 转型之路:Python 与 MongoDB
后来,作者放弃了 3D 图形,转而学习 Python,并在一家创业公司使用 MongoDB。MongoDB 的 NoSQL 数据库让作者觉得比 SQL 更有趣。2011 年,作者加入 MongoDB (当时名为 "10gen"),担任开发者布道师,负责向 Python 社区推广 MongoDB。
作者在 Python 社区逐渐崭露头角,多次在 PyCon 大会上发表演讲,并在博客上发表了许多受欢迎的 Python 内容。同时,作者也是一名工程师,参与了 PyMongo 和 Motor 等项目的开发,并领导了 C 和 C++ 驱动程序的开发工作。
在驱动程序团队工作七年后,作者遇到了职业瓶颈。为了寻求新的发展,作者加入了 MongoDB 的复制团队,该团队负责维护 MongoDB 的共识协议。
## 分布式系统:新的挑战与机遇
复制团队的工作让作者接触到了分布式系统领域的研究论文。作者开始学习共识、容错、因果关系、隔离和一致性等概念,并参加了分布式系统阅读小组。
作者还首次接触到了 TLA+,并与同事合作发表了第一篇研究论文,关于测试 TLA+ 规范和实现之间的一致性。为了提升自己的知识水平,作者制定了一个阅读计划,并最终晋升为高级 Staff Engineer。
## 加入研究团队
在休假一年后,作者考虑如何更好地为 MongoDB 做出贡献。当时 MongoDB 有一个小型研究团队,作者申请加入该团队,并获得了批准。
作者认为自己具备一些优势:之前的老板支持他的转岗决定;在 MongoDB 工作了 11 年,对公司非常了解;发表了一篇高质量的论文;通过阅读小组分享知识;并向 Michael 提出了有价值的想法,例如预测性自动缩放和提高 MongoDB 二级读取的一致性。
最终,作者成功转型为高级 Staff 研究工程师。
## 经验总结
作者的经历表明,即使没有博士学位,也可以通过持续学习、积极参与和勇于尝试,在技术领域取得成功。
你是否也有类似的职业转型经历?欢迎在评论区分享你的故事和经验!