????????当我们写代码时,思考着如何把逻辑理清,好让计算机正确地运行一段代码。如果代码逻辑正确,计算机执行后的结果一定会符合我们的预期,即我们每个人所看到的结果都会相同。
using UnityEngine;
public class ThinkingForProgrammingDemo : MonoBehaviour
{
void Start()
{
int result = Sum(3, 5);
Debug.Log(result);
}
int Sum(int a,int b)
{
return a + b;
}
}
假如一个人的大脑像一台计算机,将以上的代码放入不同的大脑中执行,有一定编程经验的大脑会立马得出结果为8;刚学编程的大脑,想了很久,有的得出结果为8,有的可能因为知识没理解,蒙了一个错误的结果为2;没学编程的大脑,完全看不懂,得出的结果是"I don't know"。为何有此差异?
? ? ? ? 一名开发者和一名牙医聊起上面这段代码,假设开发者和牙医都不了解各自行业的相关知识:
开发者:来看看我刚写的代码。
牙医:这些英文什么鬼,我怎么看不明白?
开发者:这是用Unity写的代码。
牙医:Unity是什么?
开发者:Unity是用来写游戏的引擎。
牙医:写游戏的引擎是什么?
开发者:写游戏的引擎就是用来写游戏的啊。
牙医:…………
开发者:它可以写代码,然后运行。
牙医:…………
开发者:这里定义了一个求和的方法,然后……
牙医:哦,我知道啦,我是不会告诉你人身上一共有32颗牙的。
开发者:…………
这样的对话并不顺畅,顺畅要如何,假设两名开发者在对话:
开发者A:来看看我刚写的代码。
开发者B:结果是8。
开发者A:嗯……
????????不顺畅源自我们的大脑各自有着不同的经历,即一个人未经历过的事情,他只能在自己的认知层面进行回应。人的经历是交叉的,就好比两个圆圈交叉在一起,中间重叠的红色部分就是共同的经历,重叠的越多,共同语言越多,反之越少。剩下的是各自自己的经历,需要注意的是,两个圆圈的大小很可能不同。经历的重叠与不重叠从侧面说明我们每个人都感受着不同的世界,每一个大脑都在代码之上多了一层执行逻辑——由人的经历构成的逻辑。每个大脑执行结果的差异就此产生。
? ? ? ??