公开构建:我对 DSA 的思考(以及我为何分享它)
Source: Dev.to

我想要公开构建,写下我的思考方式,并分享我在实际使用 DSA 时学到的东西——而不是仅仅为了准备而学习。

我的 DSA 观念是如何改变的
在某个时刻,DSA 不再只是关于题目本身。
你会开始注意到:
- 同样的思路不断重复
- 大多数“难”题并不是全新,它们是组合而成的
- 真正的难点在于识别哪些思路适用,而不是写代码
这种转变并不是因为我解了上百道题。
而是当我退后一步,问自己为什么相同的模式会不断出现时产生的。
一旦你看到这一点,DSA 就不再像苦工,而更像是一套思维模型。
我现在的看法
以下是我目前非常主观的观点:
- 你不需要无尽的刷题
- 你需要对模式的独立掌握
- 简单题通常只用到一种模式
- 中等题会结合一两种模式
- 困难题很少超出这个范围
只要你能解释不变量,你就已经走在正确的路上。
当我说“理解”时,我并不是指记住模板。
而是指能够解释为什么某种做法有效,为什么其他做法不行。
我将在这里写些什么
这不会涉及
- LeetCode 题库的搬运
- 快速刷题清单
- “在 X 天内破解 Y”之类的内容
相反,我会写
- 我如何从约束条件中识别 DSA 模式
- 为什么某些模式有效(以及何时失效)
- 面试难度常被误解的原因
- 这些相同的思路在真实系统中是如何出现的
- 我在构建过程中的思考与反思
把它当作工程笔记,口头写出来的。
公开构建
与此同时,我正在构建 indexedcode,一种以模式为先的 DSA 学习方式。
- 不是课程。
- 不是排行榜。
- 也不是苦逼刷题。
更像是我早该拥有的参考资料,专注于模式、不变量和决策过程。
我会分享我构建的东西、我改动的地方以及我犯的错误。
如果它能帮助别人思考得更清晰,那就是一次成功。
适合谁阅读
如果你符合以下情况,这篇文章可能适合你:
- 觉得 DSA 比实际应该的更难
- 正在准备面试,却厌倦了盲目刷题
- 更在乎理解而不是死记硬背
- 喜欢放慢脚步,仔细推敲
如果不符合,也没关系。
接下来会写什么
我会先从以下主题入手:
- 为什么大多数 DSA 题目是重复的
- 我如何提前识别正确的模式
- 为什么难度标签往往具有误导性
- 仅掌握数组模式就能让你走得意外地远
我没有固定的写作计划。只要有值得分享的内容,我就会写。
如果以上内容与你产生共鸣,欢迎留下来。我要公开构建,并希望能和你们中的几位一起学习。
后端工程师。对 DSA、系统以及工程师真实的思考方式有很多思考。
indexedcode 公开进行。