成为顶尖的软件工程师
转眼已经工作 10 多年,对自己的职业生涯并不满意。换了多家公司,但都不是有名的大公司,在公司内部多数也是做着一个螺丝钉的工作, 没有很亮眼的产出。非公司层面,个人目前为止也没有什么有影响力的作品,如开源项目,个人软件产品,高播放量的文章视频等, 不得不承认过去的这些年比较失败。自己也总结过,可能的原因如下:
- 自己有点随遇而安,没有规划,没有具体的较高的长期目标,导致达到较小的短期目标后,停滞不前。
- 不够坚持,不够自我驱动,有一定想法和行动后,实施了一段时间就偃旗息鼓了。
- 见识和圈子太小,很长时间对软件职业都缺乏深刻的理解和认识,如我可以做啥,可以达到多大的成就。
- 对过去没有较好较系统的总结,整理。一些有价值的思考和产出没有得到沉淀,出现错误和不足没有及时纠正补充。
我就像典型的猴子掰玉米,在过去的 10 多年中,掰了这个丢了那个,空忙活这么久也没有什么收获。我想要改变,我想要做的更好飞的更高。
如果以大学毕业为起点算,我的起点并不低,虽不是国内最顶尖学府,但也是985, 211大学的正规科班出生。不过因为贪玩打游戏等原因,很多课没上好,只能说有印象但理解的不深刻,这也导致了我的基础不太牢固。工作后长期做业务开发,自己也没有下意识去研究补足,这块一直就落下了。
工作多年后,我也发现我对业务和管理兴趣较低,对技术兴趣更浓厚。我更喜欢 1 + 1 = 2 这种肯定的类似定理的扎实感,而前两者似乎虚的多有不一样的规律。然而技术是有生命周期的,这一是要求我选择有潜力有需求的技术,二是要求我持续学习,特别是时间越來越紧张的中年人。
我的目标是通过一到两年的持续学习,成为一个优秀的分布式数据库开发工程师,并取得心仪的 offer, 确切的说希望是 PingCAP. 因为认可它的开源文化,且数据库的天花板高,生命周期长,可以成为一个奋斗终身的舞台。这并不是没有先例,如这个故事 Why I studied full-time for 8 months for a Google interview。大学本科无非也是几年,现在网上的资源很多,通过自学完全可以再上一个甚至几个等级。
在过去的大半年,这一直是我朦胧的想法并已经实施,我学了 golang 和 rust,看了一些分布式和数据库方面的书籍和博客,给 TiDB 贡献了一些代码。今天我让这个想法更加明确,所以建了这个仓库,督促自己学习, 记录一些笔记心得.
学习计划如下:
清华大学数据结构, 总计约 35 课时,每天一课时约一个月学完, 即20220420。
mit 分布式系统(todo)
设计数据密集型应用(todo)
期间有时间 leetcode 刷题,巩固基础和锻炼思维。