在米兰的WordCamp会议上,我发表了一篇题为《为什么每个开发人员都应该阅读柏拉图》的演讲。对这个问题的简单回答是:学习苏格拉底式思维。在这篇文章中,我将分享我作为软件开发哲学家的一些个人经历。在此过程中,我还将介绍一些哲学概念,它们可能有助于提高您作为开发人员的技能。
为什么选择哲学
我从不认为自己是一个技术人员。高中一毕业,我就开始学习荷兰语言和文学。一年后,我转向了哲学。我想把事情搞清楚。任何关于某事的“工作”理论对我来说都不够好。我对实际得出结论并加以应用不太感兴趣。相反,我想把我的时间花在发现更多的基本原则和真理背后,他们扔给我们在大学的这一大堆“知识”。
理性主义
当我说我想花时间去发现更多的基本原理时,我已经采取了一种柏拉图式的立场。让我们从注意发现如何意味着已经有一些东西在适当的地方被发现开始。它意味着存在着一些客观的或普遍的真理,独立于我们而存在。因此,任何关于它的知识都应该在我们意识或感知它之前就存在于我们体内。我们称之为先验知识。
我们可以用数学例子来证明这一点。给定一定的数学公理,我们知道1 + 6的结果是7。在野外寻找这个等式的另一个结果可能有点无意义。根据我们已知的数字和加法的性质,我们知道1 + 6 = 7。我们可能会调查为什么会出现这种情况。我们可以用数学证明来支持这一知识。但是,寻找可能不利于这一结果的伪造证据几乎没有意义。
柏拉图
柏拉图(连同苏格拉底和亚里士多德)被认为是西方哲学之父。他最著名的作品是关于苏格拉底和他的形式理论。在他的形式理论中,柏拉图假设存在一个抽象形式的王国,其中包含我们在我们周围的世界所看到的一切的基本真理。这是我们通过抽象理解周围世界的另一种方式。
对柏拉图来说,抽象比事物本身更真实。这是真的,因为事物本身随着时间而变化,而它们的抽象形式却是永恒的。椅子作为一种被设计用来坐下的物体的抽象形式,在一把真正的椅子在火灾中被烧毁时,它并没有失去它的意义。这里要记住的重要一点是,在探究我们周围世界的任何事物时,我们应该关注抽象,而不是具体。
苏格拉底
苏格拉底是柏拉图作品中的主要人物,也是有史以来最伟大的哲学家之一。他是一个探究的大师,通过不断地扮演助产士的角色,通过对话和提问帮助他的对手产生想法。你可以说苏格拉底的品质是他掌握了提问的艺术。是什么让他如此优秀?
苏格拉底式反讽
苏格拉底的成功来自于他的讽刺。他以一个非常直接和优雅的假设开始;我知道我什么都不知道。根据这种假设,他自动地占据了学生的位置,而让他的对手扮演老师的角色。他既不能接受也不能拒绝老师传授给他的任何真理,因为苏格拉底什么都不知道!因此,苏格拉底唯一能做的就是进一步探究他的对手的思想。
既往症
真理的发现被称为回忆。如果什么都不可能知道,它怎么工作呢?根据柏拉图的理论,我们可以通过我们的思维来获得抽象的形式。然而,我们不能拥有它们。这就是苏格拉底的切入点。我们自己对真理的理解永远不可能是完全正确的。我们总是可以用“更真实”的版本来代替我们对真理的有意识理解,但我们不能用真理本身来代替它。
我们意识到之前的理解是错误的那一刻就是真正的发现。根据真理,通过苏格拉底式的思考过程,我们发现我们的信念是错误的。我们称之为回忆症。我们现在可以用一种更好、更精细的理解来取代我们的旧理解,否则我们将失去这种理解。
软件开发
在软件开发中,特别是在软件架构和调试中,苏格拉底式询问是一种非常有用的实践。我第一次亲身体验到这一点是在2012年,当时我加入了创新工厂,在那里实习web开发。我之前没有软件开发方面的知识,但是从一开始我就能够通过简单地向我的上级提问来增加价值。
刚开始的时候,我觉得问同事很多问题有点不好意思。对我来说,我似乎占用了上司宝贵的时间