我怎么解决一个“问题”

平时的日常工作学习事务太多,非常有必要拿出来整理记录,不然很容易忘记或者把生活过得毫无头绪。不仅仅如此,脑子思考的东西更有必要拿出来整理一下,不然很容易成一团浆糊,这里记录一下我如何处理一个问题的思路和方法论。

和很喜欢的一位前辈李苦李一样,我也认为只有记录下来才能把脑子里的东西真正拿出来。

估计是因为学习计算机科学的原因,我也越来越愿意把具体的问题抽象出来,来进行思考如何处理抽象的问题,只有这样才能在更高水平的层次提升自己。

只有独立思考形成自己的方法论和知识体系,自己才能真正的进步。

这里的“问题”指的是所有自己思考且有价值的问题,是指理性层面上的问题而不是感性的问题,例如,怎么系统提升自己的编程能力,怎么好好看完一本书,怎么学习数据库系统,怎么才能科学的健身,怎么才能锻炼好手臂胸部肌肉?

第一步要面对的是一个问题的提出。

一个问题的提出有时候甚至要比解决这个问题本身更重要,因为提出这个问题代表你开始思考这个问题并且在想如何去解决。

当一个问题提出来之后,我会首先去思考关于这个问题本身

  • 这个问题是什么,我如何清楚的精确的表达这个问题,我有没有漏掉某些关键的要素,我对问题的理解到位吗
  • 为什么会产生这个问题,是谁引起的,是由于自己的目标达不到?还是别人对自己提出的要求?
  • 解决这个问题能够给我带来什么,这个问题的优先级高吗,我为什么要解决这个问题,不解决或者忽略这个问题可以吗?

当可以清楚的表述出我们的问题的时候(说明问题为什么产生,问题的优先级,问题的完整的准确的表述,……),对于这个问题的本身的理解便会更进一步,才会让我们的思考进入下一个阶段。

第二步要面对的是针对这个问题的调研。

我认为我们遇到过的所有问题都不是孤立的也不是独一无二的,我们遇到过的99.999%的问题别人都已经遇到过了,所以第二个关键的步骤就是针对这个问题的调研。

可以通过各种搜索引擎查找,也可以通过查阅书籍,如果有认识的前辈遇到过类似的问题直接当面请教会更好,当然在向他人请教的时候,这里必须提一下 提问的智慧,先学会如何有效的提问。通过以上调研,了解一下别人是如何解决这个问题的,别人解决的效果如何,在解决这个问题的时候有没有遇到什么坑或者困难的地方。

这个地方可以要预留好充分的调研时间,同时要记下笔记。

当调研好,搜集好这方面的资料之后,就会在心里形成如何解决这个问题的大致的框架和方法了,也就不再畏惧这个问题了,就可以思考进行下一个步骤。

第三步是制定自己解决这个问题的方法,计划。

他人的建议虽然重要,但是也不能照搬别人的方法计划,小马过河的故事大家都知道,每个人就算遇到相同的问题,由于水平不同,外界环境不同,每个人对于问题的判断也会不同,所以此时就需要结合实际制定好自己的计划。

可以将他人解决这个问题的框架提取出共性,形成大致的初版计划,例如多久解决这个问题?计划分为连续的过程还是分成模块来解决?要看哪些书?要学习哪些课程?应该买点什么装备?什么是必要的,什么是不必要的?

第一版的计划没有必要详尽到某个程度,计划要有弹性,列出大致的路线即可。

第四步,执行自己的计划,并且在实践中修改自己的计划和路线。

计划不能百分百实现是非常正常的,能完成百分之七八十就很好了,同时由于各种各样的情况,也会出现意外情况,这个时候就需要实时修改自己的计划,毕竟人是活的,是运动的,不可能按照一个决定静止的计划就能完成。


当最终解决,才会发现

原来当时在我头上看起来那么大的问题,也没想象中那么难。