前言 · 心态

每一个问题都是命运的馈赠。此言可以很好的看出我对问题的态度。心态,是解决问题的关键。

心态贯穿于解决问题的全过程,会随之变化,会影响决策。

比如,你卡在HTTP的一个请求头的作用,譬如是认证作用。HTTP有几个请求头都有认证相关的作用,你尝试了几个请求头都失败了,心烦意乱从而不想解题了——心态坏了。

所以,解决问题的前置条件,就是平静的、冷静的心态

单一型问题 · 针对性

在入门阶段,不常遇见复杂型问题,所遇到的问题往往比较直接。可如果这个问题涉及之前所未学过的知识,哪怕再简单,也难以独自想出来。如何解决这样的问题?

首当其冲,便是寻找跟问题有关的信息。现在的应用、工具、编辑器等等,如果报错了往往会给出信息,找到这些关键的、珍贵的、一针见血的信息是必备的一步,也是自学能力的体现。

其次,把这些报错信息反馈到互联网上,总会有前辈遇到过这些问题并留下经验。只需照葫芦画瓢,总能解决问题。

比如下图的问题:

image-20240927213809843

红色的信息就是报错信息:

[Error] expected ';' before '}' token

放到互联网上寻找答案:

image-20240927213908723

再修正代码即可正常运行:

image-20240927213940784

上述例子虽然简单,但是方法可以应用到许多问题上。从已知信息(往往是报错信息)上寻找问题的突破口,往往事半功倍。

如果有些问题没有报错信息,那就需要自己创造信息,比较进阶,不作细述。

复杂型问题 · 框架性

何为复杂型问题,就是一个事件的多个方面都可能造成出错。

在我们搭建博客的时候,或者在我们写比较长的代码的时候——在这些注重各方面结合的项目上时,某个地方的一个小错误都会造成项目的失败。换言之,在这些很注重各组件配合的项目上,产生的问题是多样性、隐蔽性、连环性、严重性的。

草蛇灰线,伏脉千里。欲知所为,先知所以。譬如大家日后搭建hexo博客时,会先搭建前置的组件,再搭建hexo本身。如果不熟悉hexo由什么组成,不去验证hexo各个组件是否搭建成功,一味追求快速搭建出博客,会发现搭建的博客根本无法运行,甚至都无法搭建出博客。

  • 这就是框架性解法的第一点:逐步进行,逐步验证。先把基础的各个部分都搭建好没问题了,再进行下一步。

可是就算每个组件都搭建成功了,还是会出现问题。这些问题可能源于系统的不兼容,配置的错误等等。大家多半不熟悉hexo博客框架,面对这些问题也难以下手,甚至毫无头绪。可是别忘了,框架这种大型项目往往是有报错信息的,为何不去看看报错信息呢?

  • 这就是框架性解法的第二点:缩小范围,针对解决。其实就是单一型问题的解决方法。

再严重一点,有时候报错信息都不详细或者看不懂,此时是否就毫无头绪了呢?

其实不然,这到底还是有报错信息的。这要求我们先熟悉项目本身的架构,再通过前辈们的解法,自己进行分析,尝试。

  • 这就是框架性解法的第三点:理解机制,不断分析。

可是受限于知识有限,能力有限,有些问题就是现阶段在可接受时间成本下无法解决的,这时就需要请教前辈。

  • 这就是框架性解法的最后一点:谦虚发问,拒绝内耗。

小结

其实复杂型问题就是由许许多多的单一型问题组合起来的,宏观上分析框架,局部上针对解决,有时需要在联系上分析各个部分的关系,实在没办法时就请教别人。如此,问题就不再那么毫无头绪了。

这仅仅只是用于安全学习吗?大道殊途同归。