Liam W
封面

如何训练解决问题的能力?

作者
王亮·发表于 3 年前

作为程序员,技术能力固然很重要,但平时除了提升技术能力也别忽略了其它方面的能力。你可以写一辈子代码,但你不能一辈子只写代码。当你的技术能力足以使你在公司站稳脚跟时,你可以停下来锻炼自己的管理能力,比如职场中很重要的:解决问题的能力。而结构化思维是解决问题的万能公式,而且结构化思维是可以训练的。

掌握了结构化思维,将使你能够快速完成方案,能够有条不紊地处理各种复杂问题,能够有效地安排好学习与工作,能够快速掌握新岗位所需的知识。从而获得老板的赏识,获得客户的青睐,获得更多的发展机会,终将先人一步走向人生巅峰。

好了,上面都是吹牛的话,下面我们步入正题。

结构化思维可以简单定义为:

“结构化思维”就是通过提出若干小问题来构建一个大问题的答案。

一个国家每年有多少卫生纸在销售?有多少公里的火车轨道?每天早上九点四十五分站着、坐着和躺着的人比例是多少?

在求职面试中,你可能会被问到上面这样的类似脑筋急转弯的问题。你可能会想,问这种通过百度或谷歌五秒钟就能找到答案的问题有什么意义?这就是为了考验你的结构化思维能力,考验解决问题的能力。

假设在一场面试中,有两个面试者,问他们所在的楼有多高。一个人凭自己的感觉猜了一个答案,猜的答案非常接近。另一个人走到外面用脚步大概量了一下大楼影子,然后和自己的影子进行比较得到大楼的一个大概高度,但得到的数字不如前一个准确。如果你是面试官,你会选谁?我想你会选第二个面试者,因为他知道如何运用思维去解决问题。

通过练习推理,把大问题拆解成若干小问题,再从小问题的答案构建大问题的答案,就会形成结构化思维习惯。有了结构化思维,你就会有条不紊地将问题逐个击破,逐个解决,而不至于出现忧虑、慌张、无头绪。

任何人都可以通过练习提高自己的结构化思维。最好的途径就是问自己一些“没有意义”的问题,那些你不容易在网上找到答案的问题。

比如你在某市的某个区中心看见一家餐馆,你就可以花几分钟来思考每年会多少顾客去这家餐馆。以此为例,具体怎么做呢?可以这样进行。

一、首先,假设餐馆所在的城市有 300 万人口,再假设有三分之一的人口住市区,也就是 100 万。数字准不准确不重要,重要的是做一个假设可以让你进一步分解这个问题,然后找到突破口开始迭代。

二、然后,假设全市区有 10 个区,每个区是 10 万人。如果一个人每天午餐和晚餐都在外面吃,那就是每周出去吃 14 顿饭。在大城市,对于大多数未婚青年来说,一周 10 次并不夸张。对有有家庭的人或许就没有那么多,还有一些人根本不在外面吃饭。所以,保守的平均数是每周 3 次。那就是在这个区,每周有 30 万人次在餐馆里吃饭。

三、接着,一个区假设有大概有 100 家餐馆。如果平均分配的话,每家餐馆就有 3000 份饭菜。

四、我们再来校对一下。这家餐馆能不能每周接待 3000 人?这家餐馆每天营业 12 小时,一周 7 天。那就是 84 个小时。这个餐馆能容纳 25 人,而且上菜很快,平均 5 分钟内就能上菜。在 100% 的容量下,他们每小时可以提供 125 份饭菜,也就是每周 10500 份饭菜。即使这个地方只有 30%的时间是满员,每周服务 3000 名顾客也是可以做到的。

五、最后,假设餐馆每年有两个星期因假期或节假日而关闭。以 50 周计算,每年就有 15 万名顾客。

这里从大的数字开始,然后转到小的数字,但你也可以反着来,也可以从两端开始。建议是,你知道哪个数字就从哪个数字开始。比如上面的例子中,如果你不知道餐馆所在区有多少人口,你就可以继续往更大的范围——城市找突破口。你不知道具体的数字不要紧,你可以先假设一个数字。

最后得到的答案是 100% 准确的吗?肯定不是准确的。是在差不多的数量级上吗?可能是吧。这都不重要,重要的是,你可以仅仅根据自己有限的经验,可以从推断中学习,去解决实际生活中的问题。比如对于这家餐馆来说,通过这种结构化的思维去分析,我们就可以找到餐馆经营潜在的问题,最后找到可能解决这些问题的办法。

结构化思维看似是在套用固定的模式,但其实也是一种创造性思维。它是在规则模式的范围内,让你的思维可以自由地在看起来没有关联的对象上漫游,并在此基础上把各对象逐个联系起来。

经常做类似上述的练习,你就可以提高解决问题的能力,这会让你受益终生。记住,我们需要时常思考,但我们要知道如何思考。

不是生活变得越来越容易了,而是我们变得越来越强大了。生活的本质就是不断解决新的问题,当你知道如何思考时,它赋予你的能力,会让你的生活变得容易些。