分类思维

18-12-25 banq
              

这篇文章的灵感来自斯坦福大学教授罗伯特·萨波尔斯基(Robert Sapolsky)的讲座,该讲座略过了一些分类思维的观点。我发现了解软件开发的某些方面很有帮助。

什么是类别?

分类思维是我们的大脑用来处理大量信息的技巧之一。而不是处理指定对象的每个细微差别,大脑在类别(桶)中分离并处理较少数量的对象(类别)。作为软件开发人员,我可以假设这种“压缩”提高了处理和存储的速度(最好参考生物学的科学论文以获得更权威的意见)。

当我们必须处理连续信息时,这个技巧特别“有用”。例如,有完整的色彩范围,但我们倾向于只区分其中的7种颜色。

类别是一些任意选择的桶。它不一定由某些“逻辑”决定。类别的选择可以由文化和语言决定,也可以随着时间的推移而变化。回到彩虹示例 - 并非所有语言都有相同的基本颜色词组。例如,俄罗斯和希腊都认为浅蓝色和深蓝色是单独的颜色。专业颜色的人,如画家,可以区分更多颜色(请记住“艺术家与普通人”?)。

重要的是要明白我们有相同的愿景(不考虑任何类型的障碍),但我们有一个问题要区分(它需要我们更多的时间,或者我们更有可能做错误或更难回忆)取决于如何丰富了我们的色彩词汇。

相关理念:抽象思维,象征思维,刻板印象,模式识别。

怎么会出问题?

当类别的选择是任意的而不是由某些普遍逻辑(如数学中的通用逻辑)所决定的那样,那么分类思维就会导致问题。

1. 即使它们属于一个类别,它们也可以被视为相似:

当我们看相当远的物体a并且b时,且它们确实属于同一类别,因此它们可以被视为同一类型。

在编程中,这个原则表现为“重复比错误的抽象便宜得多”

2. 即使它们属于不同的类别,它们也可以被视为不同:

当我们看相当近的物体a并且b时,但它们属于不同的类别,因此它们可以被视为不同类型。

例如,关于CSS与CSS-in-JS的无限争论。从这些类别的角度来看,CSS模块属于CSS-in-JS,但它更接近CSS的BEM方法。

3.在类别中思考存在陷阱,很难看到全局

关注类别我们有时会忘记暂停并重新评估我们正在处理的内容。

在编程中,这个原则表现为“乐器的法则”,例如,如果你拥有的唯一工具是锤子,那么将一切都视为钉子是很诱人的。

例如,关于不同范式的争论,如OOP和函数风格。可以在两种样式中编写相同的应用程序,因此它背后有一些共同点,但程序员争论的是哪个类别更好。

对类别的理解不同

类别是任意选择的。当这些选择没有正式的基础时,不同的人可以选择不同的方式,最近这会引起混乱。

在编程中,这表现为粗略的术语,对于代码没有精确的含义或“品味”。

例如强类型和弱类型,有些人会因为内存不安全而认为C ++很弱,有些人会因为隐式强制而认为JS很弱,有些人会认为Go因为缺乏多态而变弱。在实践中,这个粗略的术语是无用的,必须用更精确的术语替换。

结论

请注意您使用的类别,并确保您没有被困在一组存储桶中。