如果你为系统设计面试准备过任何材料,大概率已经反复撞见“grokking system design”这个词。可能是在某个课程页面,某个几乎一模一样的竞品平台,某份被无数人复刻的 GitHub 笔记,或者一两个绕着同一套内容打转的知识门户。表面看,它们都长一个样。问题恰恰出在这里——多数工程师会随手点进排名最高的那个,然后默认这些都差不多。
它们真的不一样。几乎所有顶着“grokking system design”名头的东西,都是某一门原始课程的拷贝、分支或者冻结了某个时间点的快照。这篇内容要说的,就是哪一门才是原作,它今天长什么样,以及为什么它仍然比所有后来者都值得选。
先给一个简洁版结论。所谓的“grokking system design”最初只有一门课,就是 Arslan Ahmad 与 Design Gurus 团队编写的《Grokking the System Design Interview》。它曾在 Educative 平台上以纯文本版的形式托管过一阵子,随后搬到了自己的永久地址 DesignGurus.io。留在 Educative 上的旧版本后来被重新包装,更名为《Grokking Modern System Design Interview》,由另一支团队单独维护。而现在位于 DesignGurus.io 的原版,已经发展成视频讲解、图解式文本加上可交互图表的形态,远不止一堵静态文字墙。课程当前有 83 节课、237 道测验,总时长大约 20 小时,且就在最近一周刚刚更新过。如果你想要的是由发明这套方法论的人持续维护的版本,那么它就在 designgurus.io。
最容易让人犯迷糊的地方在于,“grokking system design”这个表述听上去实在太像一个通用品类了,但它并不是。它是一门单独课程的简称,也就是《Grokking the System Design Interview》,而课程内部的那套解题框架,才是后来每一种资源都在借用的东西。这套框架即便你从来没为课程付过费,也很可能早就见过:先理清功能与非功能需求,接着做快速估算,然后定义数据模型和接口,再画出高层次的设计草图,最后深挖瓶颈与权衡,并口头论证每一个决策。如果你在任何一篇博客、任何一支 YouTube 视频或者任何一门竞品课程里见到过这个顺序,你见到的,就是原作的某种下游拷贝。这套方法论传播得太广,以至于很多人已经忘了它其实有自己的作者。
原作来自 Arslan Ahmad,他曾在 Meta 和微软担任招聘经理,亲自执行过数百场这类面试。他在当时选择制作这门课,就是因为市面上根本没有一套结构化的方式可以让人针对系统设计面试进行准备。有一段时间,该课程通过第三方平台 Educative 分发,这也正是绝大多数误解的来源——人们下意识以为是 Educative 打造了它。实际上,Educative 只是托管过别人作品的一个早期纯文本版本。而原作者团队后来把课程迁到了 DesignGurus.io,在那里做了重写和扩展。留在 Educative 的那个老版本被改名为《Grokking Modern System Design Interview》,此后便独立演进。
所以,当你在搜索框里敲下“grokking the system design”时,真正需要分辨的不是哪个翻版界面更好看,而是你拿到的究竟是一份停更的存档,还是一门仍在由原班团队不断打磨的活课程。目前看下来,原作最大的护城河不在于标题里的“grokking”这个词,而在于它的每一次更新都直接来自当年制定规则的那个人,以及那个至今仍在亲自回应用户反馈的小团队。
热门跟贴