如何思考解决问题

怎样学习,也就是让自己增长见闻、提高识见?

  1. 培养问题意识
  2. 知道自己需要什么信息、也知道如何获取这些信息
  3. 学会拆解问题
  4. 形成自己解决问题的方法论

拆解问题时可供思考的问题:

  1. 我遇到了什么问题?
  2. 问题出现的原因是什么?问题出现后应该怎么办?
  3. 如何分析问题?初步的解决方案是什么?
  4. 遇到阻碍的时候,去查找哪些资料可以获得答案?
  5. 别人有没有遇到类似的问题?他们是如何定位思考的?
  6. 文档是否都了解清楚了?
  7. 我尝试了哪些方法?
  8. 问题解决了,我学会了什么?
  9. 如果下次遇到同样的问题,我该怎么办?

一个人关于某技术问题的思考:为什么用 Go 访问某网站始终会 503 Service Unavailable ? | 无辄的栈

引用自参考资料:

答案毫无用处,因为它并不能让你举一反三。

形成自己解决问题的方法论,它是一个通用的解决问题的手段。

多思考,勤动手也要勤总结。解决问题就是去分析问题、拆解问题,把未知变已知,用已经掌握的去推导陌生的。

动手没有错,错的是光动手其实没有意义。因为动手是机械性动作,代码是你逻辑的具象化。

你需要做的是把代码抽象为自身可以理解的事物,而不是记代码、记以前解决问题的答案,毫无意义(一些固定流程,可以笔记作为参考,快速查阅)。你需要记住的是你如何拆解问题,如何解决问题的流程,然后去强化它。这样任何时候,你都能套用自己的这一套解决问题的模板。

坚持比努力更重要;正确的坚持比坚持更重要,不然就是南辕北辙。

在思考问题时,可以使用「小黄鸭调试法」,跟一个玩偶讲自己遇到的问题,在讲述的过程中,就能把问题重新梳理一遍。


参考资料

  1. https://github.com/lencx/z/discussions/79
  2. https://lencx.github.io/book/thinking/what_is_the_tech.html

Layout of comment panels