社区讨论LinuxDo 最新
关于做leetcode过程中的一些个人感悟
我最近做 LeetCode Hard 时发现了一个很有意思的现象。 人的思考似乎天然倾向于短周期。 大多数时候,我们看到一个问题,大概 20~30 秒就会开始: 理解 → 判断 → 给出答案 → 行动。 这在现实中非常有效。 回复消息、处理工作、解决局部问题、做决策,大多数都不需要很长的连续思考。 但我发现,一旦问题复杂到需要 5 分钟以上的连续推理,事情就完全不同了。 你很容易: 忘记前面的推理; 在多个变量之间丢失上下文; 得到新结论后不知道如何整合; 在错误的方向上继续推理; 或者干脆过早结束思考。 做 L…
内容摘要
作者:#ysjs
板块:#搞七捻三
我最近做 LeetCode Hard 时发现了一个很有意思的现象。
人的思考似乎天然倾向于短周期。
大多数时候,我们看到一个问题,大概 20~30 秒就会开始:
理解 → 判断 → 给出答案 → 行动。
这在现实中非常有效。
回复消息、处理工作、解决局部问题、做决策,大多数都不需要很长的连续思考。
但我发现,一旦问题复杂到需要 5 分钟以上的连续推理,事情就完全不同了。
你很容易:
忘记前面的推理;
在多个变量之间丢失上下文;
得到新结论后不知道如何整合;
在错误的方向上继续推理;
或者干脆过早结束思考。
做 LeetCode Hard 时,我后来换了一种方式:
不是强迫自己连续想 10 分钟。
而是:
整体思考
→ 找到当前最关键的问题
→ 集中进行一段局部推理
→ 得到明确结论
→ 记录下来
→ 回到整体
→ 继续寻找下一个关键点。
也就是:
局部深度思考 → 外化结论 → 回到整体模型。
这样做之后,我发现效果明显更好。
后来我意识到,这可能不仅仅适用于算法题。
现实世界其实非常容易把我们训练成“短思考模式”。
看到问题 → 解决问题。
看到消息 → 回复消息。
看到错误 → 修复错误。
但系统性思维需要的是另一种能力:
不是立刻回答:
我现在应该做什么?
而是先持续思考:
我到底在解决什么问题?
这个问题由哪些部分组成?
哪些是原因,哪些只是结果?
变量之间如何相互影响?
有没有反馈循环?
真正的关键点在哪里?
如果长期发展会怎样?
我越来越觉得:
短思考适合解决局部问题。
长思考适合建立整体模型。
短思考让你快速行动。
长思考让你知道:
什么才值得行动。
现代环境其实非常偏向短思考。
高压力、竞争、即时反馈、短视频、消息、KPI……
它们都在训练:
刺激 → 判断 → 回应。
但复杂问题需要的是:
观察 → 停留 → 建模 → 推演 → 发现关系 → 修正模型。
而且我发现,长思考往往只能发生在一种比较平静的状态下。
高压力状态会让人不断想着:
快一点。
结果呢?
会不会失败?
别人做到哪里了?
要不要换方向?
这些东西本身就在不断占用思考空间。
所以深度思考需要的可能不只是智力,而是一种能力:
允许自己暂时没有答案。
允许前几分钟什么成果都没有。
允许推翻刚才的想法。
允许长时间停留在同一个问题上。
我现在越来越觉得,复杂问题的思考方式应该是:
长思考建立地图。
↓
短思考解决关键节点。
↓
回到长思考确认方向。
↓
再用短思考继续行动。
短思考让你成为一个好的执行者。
长思考让你有机会成为一个好的系统构造者。
而真正重要的训练,也许就是:
不要总是在 30 秒的时候自动结束思考。
主动给自己 5 分钟。
不要查答案。
不要急着行动。
只是尝试理解:
这个问题的整体结构到底是什么?
我觉得,这可能是从“解决问题”走向“理解和构造系统”的一个关键能力。
资讯来源
LinuxDo