职业随想·三画了饼,这一篇谈谈如何实现它。目前想到的是两个计划。
TiDB计划
这本质上是一个挖掘“深度”的计划。
TiDB是PingCAP公司开源的一个NewSQL数据库,它的出现是为了解决过往的RDMS、NoSQL所固有的一些问题。其背后是一套复杂的工程系统,包含但不限于,
- MySQL协议支持
- SQL Layer
- 分布式事务
- 数据库MVCC
- Raft协议
- RocksDB(从Google的LevelDB演变而来)
- Spanner、F1、Raft等学术论文作为理论支持
- 对时下潮流的云原生技术的良好支持
- 支持动态scale以及自动容灾
- ……
这个神秘的黑盒子到底是怎么造成的?对此,我非常感兴趣,这算是我工作至今最感兴趣的一项技术了。拆解此黑盒子定能让我在以下几方面的技术能力上升到一个高度,
- Go和Rust语言
- 分布式系统
- 数据库系统
- 大型系统架构
- 专业英语(技术论文)阅读能力
- ……
而且能让我有更多技术外的收获,
- 结识更多牛人
- 遇到更多工作所遇不到的问题场景
- 收获成就感
- 可能会打造出有自主品牌的博客
- 成为自己非常重要的一项履历
- ……
对于如何拆解它,我的初步想法是,
- 结合它的创始人的几篇布道的博客制定一个技术roadmap,map中的每个项是它的feature或者说解决的问题
- 深入研究上面的roadmap中的每个feature,包括但不限于:读源码、解决issue、解决Stack Overflow的相关问题、针对此写一系列的技术博客
能做到以上描述的工程师,便是我心目中的一流的五级工程师了,这也绝对是各大一流公司所非常需要的人。
ARTS计划
不同于上面的“深度”计划,这其实是一个“广度”计划。ARTS这个词来自于耗子叔,它包括以下四方面的内容:
- Algorithm。主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell(一个小时);
- Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是 Medium(需要梯子,其他的可以社区的官方文档以及论文学习)以及各个公司的技术blog,如Netflix的(30min);
- Tip:主要是为了总结和归纳你在日常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识(也可以学习【极客时间】上的实用课程);
- Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章,也可以是技术总结的文章。
对此,我的理解是,
- A是训练自己的算法能力,这是进顶尖科技公司的敲门砖,需要长久的刻意练习。
- R是训练自己的英文专业资料阅读能力,无障碍阅读英文博客和论文亦是一项基本能力,需要点滴积累。
- T是从过往的工作中总结知识点,或是将摄入的知识总结为知识点。这个知识点的呈现方式为一遍技术文章,也就说耗子叔说的S了。
然而,这仍不够,既然是“深度”计划,那你得有目的的去review、tip和share。我建议你最好用XMind之类的工具给自己建立一个待“征服”的技术版图,然后用ARTS中的RTS去徐徐图之。如何建立自己的版图,耗子叔在极客时间App的专栏会给你一个不错的指引。
上一篇:职业随想·四
网友评论