Watcher

来自潜意识的“欺骗”

2021-08-12

最近开始学习 Jest JavaScript,计划把学习过程中的所思所想做个记录,不是直接翻译,而是写出我自己的感受,所以大家在看看就好,正式学习推荐阅读原文。

你是否信任你的潜意识?这个问题似乎是没必要的,因为潜意识应该就是没经过深入思考就获取到的结果,既然是没有思考的,那也就没有信任问题

jjs_001

潜意识的“欺骗”感往往是后知后觉,比如你走路的时候在玩手机,潜意识你觉得下个路口应该右拐,但当你发现自己错过了一个路口后才右转的时候,你会想:天天都这么走的,今天居然走错了,好奇怪。

两个脑子

计算机设计里的内存和硬盘真得很有意思,一个存放临时数据,一个存放永久数据,一个运行速度快,但容量小,一个运行速度慢,但容量大。发现没有,我们人脑也是这样的,我们的脑袋里也分内存(海马体)和硬盘(大脑皮层),当然这只是一个比喻,大脑的复杂程度远高于我这里的解释,我这里想表达的是,我们的大脑分为两个脑子,一个快脑子(类似内存),一个慢脑子(类似硬盘),快脑子使用起来很方便,相应速度也很快,而且消耗很低(不会很累),但慢脑子就正好相反,他需要思考才能使用,而且响应速度比较慢,用多了还会很累,需要睡觉和休息才能恢复。

我们天生喜欢使用快脑子,因为它能很快的给出反馈,然后是他使用起来很轻松,不会让你有很累的感觉,但也是因为它给出的反馈是在短时间内“计算”出来的,所以它可能不是准确或者正确的。

想一想上面说到的路口问题,转向的选择是你潜意识里决定的,你没有深思熟虑,当你发现错误的时候才认真思考了一下错在什么地方。

潜意识

我们来看一段代码,大家不用可以的去思考,就是用平时你看别人代码的状态去看:

let a = 10
b = a
a = 0

// b

这里应该每个人都可以快速的得出 b 的值,回想一下你刚刚思考这个问题的过程,你觉得你是使用的是快脑子还是慢脑子。

我们再看一段代码,同样我们还是用最自然的状态去阅读它:

function updateUserAddress(user, newAddress) {
  const newUser = {
    name: user.name,
    age: user.age,
    info: user.info,
  }
  newUser.info.address = newAddress
  newUser.info.status = `update`
  return newUser
}

我们看到这是一个修改用户地址信息的方法,然后修改完信息后它还记录了一个状态,看起来很简单也很好理解,好了现在我们用几分钟来认真思考一下这段代码。

这时候我们发现这里一个严重的错误,原始数据被修改了,这是 js 中常见的一个错误,很多人都有遇到过。

如果你在第一次看这个代码的时候已经发现了,那你很优秀哟

错误的潜意识在编码过程中会给我们带来很多头痛的问题,虽然不是致命问题,但会让我们浪费很多时间在排查这些问题上,但是使用潜意识思考问题得出结论是我们的本性,那如何才能在使用潜意识的时候避免出现错误的结果呢?

看不到的模型

我们需要回忆一下当你在思考上面这两个代码片段的时候你的大脑在想什么,可能每个人的结论都不一样,有得人可能会把这些方法、值想象为一个一个的虚拟碎片,然后在大脑中组合,最后得出结论,可能有人会在大脑里模拟一个 IDE,每一行代码都是有结果的。

错误的结果是因为我们这个思维过程出现了问题,我们需要重建一个正确的模型应对这样的思考,只有这样我们才能避免“潜意识的欺骗”。

在后续的文章中,我再来说一下如何建立一个正确的虚拟模型。


Yang

Yang的个人博客
我在这里记录我的生活