当前位置: 首页 > 科技观察

软件工程师应该如何争论?

时间:2023-03-21 12:53:41 科技观察

吵架的团队更有活力。判断一家软件公司是否靠谱很简单。在开放式办公室里,到处都有可以使用的白板。一个好的软件开发团队,往往看起来并不那么“和谐”。程序员与产品经理、程序员与程序员之间会不会“吵架”?没有不吵架的好软件公司。在一个不吵架的软件公司里,大家都在划水,或者大家为了维护“职业形象”而谨小慎微,不敢提建议。刚开始跟华为人合作可能有点不适应。他们说话的方式简单直接,常常让人觉得不知所措。这种直率的背后,是挽起袖子的企业文化,把“职场文化”变成了团队合作。软件公司的争吵不是因为管理不善,而是往往代表着一种开放包容的文化,以及团队成员的漫不经心的配合。回想一下,我们是否倾向于对陌生人友好,对我们信任的人无忧无虑?文拳和武拳,不过还是有些讲究吵架的。公司里的争吵,分文争和武争:吴争吵得比谁都大,谁说话谁的份量就大;文学争吵讲究逻辑、推理、归纳。武斗与文斗,各有千秋。吴奎需要的是一个敢于担当,关键时刻能出主意的人。在很多研讨会上,群众往往陷入只符合自己认知的细节,然后坚持自己的观点,这都是有道理的,没有错。这个时候,温峤的逻辑就很难派上用场了,因为现实世界中没有完美正确的解决方案,只有还算不错的。那么就需要打架的人发挥他的影响力,给团队出个主意,先结束这个讨论,得到一个基本可以用的方案,事情才能继续下去。文阔不一样。毕竟,软件开发是一门科学。在大多数情况下,需要逻辑来通过分析、归纳和总结得到解决方案。需要收集足够的信息,给出充分的理由,并对方案中的概念进行明确的定义,最后通过因果分析来证明自己的想法。在大多数情况下,我们需要更多的文献来通过分析和证明来解决遇到的问题。不管是文斗还是武斗,都需要逻辑。只有团队就这些基本逻辑规律达成共识,“吵架”才有效率,才能避免陷入谬论的陷阱。逻辑三大基本定律逻辑三大基本定律可以使争吵更加准确,避免无意义的争论,减少逻辑矛盾,使争吵富有成效。这三个重要的规律是:恒等律、矛盾率、排中律。同一律是指在同一话语(命题和推理)中使用的概念的意义保持不变,这种规律就是同一律。形式化的表达是A->A,“概念”在逻辑上的意义很重要。概念有两个逻辑定律:内涵和外延。内涵是指这个概念区别于其他概念的本质属性。例如,大熊猫在生物学上指的是某一物种。外延是指这个概念所能描述的事物的范围。例如,白马的概念比马的外延小,是两个不同的概念。所以白马是不是马的争论本质在于自然语言的不确定性:从概念上讲,白马的概念不是马的概念。所以白马不是马。从谓词(“是”谓词)的逻辑来看,白马概念所代表的事物集合属于马概念所代表的事物集合。所以白马是马(白马属于马,但是白马的概念不是马的概念)。同一律描述的是在一段话语中,必须保持概念的稳定性,否则就会导致谬误。我在大学辩论中利用了这种模式并赢得了一场辩论。当时的话题是“互联网会让人们的生活更美好吗?”两次争论的主要论点是:互联网使人们的生活更加方便。互联网让人沉迷于虚拟世界。我们选择的论文是《互联网让人们的生活更方便》。辩论前期,为了论证“网络让人沉迷于虚拟世界”,对方形容打电话、写信可以让人过上好日子而不上瘾。这恰恰落入了我们的逻辑陷阱。我们指出,邮电网络也是网络的一种,对方的逻辑是弄巧成拙的。这是典型的“交换概念”,我们偷偷交换了“计算机网络”和“网络”的概念。矛盾律矛盾律是比较常用的,几乎每个人都能认识矛盾律。这意味着,在话语中,相互否定的思想不可能同时为真。正式的描述是:“Acannotbenot-A”。矛盾律一词的来源是著名的“矛与盾”典故,出自《韩非子·难势》。相传有一个楚人,卖枪卖盾,自吹自擂,说天下枪不能刺他的盾,又说天下枪不能刺他的枪。不一致是众所周知的逻辑规律,但一开始不能马上看出,需要多推理几步才能看出。即便如此,在相同的上下文中,自相矛盾的逻辑陈述被认为是不可信的。有矛盾的陈述有时被称为悖论。尤其是宗教领域充满了悖论,比如是否存在一个万能的神,可以做他自己做不到的事情。矛盾律的用处可以用来反驳不合理的断言,也可以用在反证法上。在软件开发过程中,我们经常会遇到这种情况,需要在开发过程中发现矛盾。这很难避免,除非有足够经验的工程师。需要注意的是,逻辑上的矛盾规律与毛泽东思想中的矛盾论是不一样的。前者是逻辑规律,后者是辩证唯物主义的方法。排中律是逻辑中最难理解的定律。它的表述是:在同一个思维过程中,两个相互否定的思维,其中一个必为真。用正式的术语来说,A或非A。排中律的意义在于,在分析清楚一个问题的时候,不能含糊其辞,骑虎难下。比如有人讨论人是不是动物。如果不得出一个人既是动物又不是动物的结论,就没有意义讨论它。比如技术会议,需要选择使用的数据库,只能使用一个数据库。采用了MySQL,就不能说不采用MySQL。排中律看似毫无意义,但它的价值很大,能让讨论最终得出结论,而不是停留在似是而非的中间状态。如何诡辩在争吵中,人们会下意识地引入谬论,从而主动或被动地诡辩。诡辩的方法有很多种,下面说说一些有趣的诡辩方法,体会诡辩的存在,让吵架的输出更加可信。交换概念交换概念是一种利用同一律的诡辩方法。单词的多义性常被用来制造诡辩。这种例子很常见。日常对话中:“朋友:为了让我们的判断和认知更客观,我们应该同时学习多个学科的东西。我(故意抬高门槛):人不能同时研究多个学科朋友:怎么,学生不同时学数学、语文、英语吗?我:你现在在看你手里的书,你能同时看我手里的书吗?这本书怎么样。朋友:……(感觉很套路)”我偷偷换了个概念,调低了“同时”这个词的时间精度,让这次对话变味了。偷窃的概念在生活中无处不在。《武林外传》中的书生,利用“我”的概念偷偷改变,让姬无名莫名其妙的自杀了。相关性不等于因果关系这是不得不提的诡辩,我们从小就深受其害。最经典的例子就是很多家长信佛,然后孩子高考天天拜佛拜佛。如果孩子考上了大学,那就是拜佛的功劳,如果没有,那就是孩子没有努力。多么完美的逻辑闭环,完全无懈可击。同样的桥梁存在于各种电视和电影中。一群人闯入了一个村庄,然后这个村庄爆发了一场瘟疫。人们相信这些人带来了未知。程序员圈里也会有类似的讨论,因为大公司用的是Java而不是PHP,所以PHP是垃圾语言,我们要成为大公司,所以要把PHP换成java。所以,很多企业明明可以坚持一会,然后就折腾死了。我们需要永远记住,相关性不等于因果关系,以便识别一些微妙的逻辑关系。因果倒置“穷人必有可恨之处”。这是很多人说的一句话,也有很多拥护者。小时候这句话我记得很深。上小学的时候,我被年长的同学欺负。后来因为打架,被老师发现了,其他同学都表示我是个被欺负的穷鬼,但老师还是对我们都进行了同样的处罚。他说出了一句名言:“何必欺你,莫欺人”。为什么只欺负自己,不欺负别人,这样你就不对了,你也会受到惩罚。这是典型的黑帮逻辑,从结果推导出原因,但是这个原因是不成立的,因为我们知道原命题为真,但逆命题不一定为真。归纳的局限性在逻辑中,将个别知识推广到一般知识规律称为归纳推理。归纳推理是一种简单的认知方法。在逻辑中,归纳推理有它的意义,但需要注意的是,逻辑从来不把归纳得出的结论当作真理。归纳法的问题类似于类比谬误。古人明白一个规律,鸡叫三声天就亮了,但是旅行之后发现其他地方的鸡不是这样的。他们真是应了那句“东无光西有光,天黑南有北”的说法。中国那么大,连二十四节气的规定也不能到处适用。归纳法只能有限地反映某种规律,不能广泛、绝对地得出真理,也不能从个别推导出普遍。算命师希望从四柱八字、面相分析、掌纹、笔迹等方面总结出真相,如果认识到归纳法的局限性,就不会无缘无故交这些智商税了。责任转移证明神存不存在、保健品是否有效、壮阳药有没有作用是科学界的三大难题。从逻辑上证明有一个其实很容易。你只需要找到一个例子。比如要证明天鹅是白色的,只需要找到一只白色的天鹅即可。但是要证明黑天鹅不存在是非常困难的,除非把世界上所有的天鹅都穷尽,才能得出这个结论。在人的思维中,人天生就是懒惰的,所以才会有“宁可相信自己有的,也不相信自己没有的”的感觉。所以就有了一种诡辩,我称之为推卸责任,就是在辩论中把举证责任推给别人,然后找对方的错。这是一种很高级很微妙的诡辩。比如有神论要求无神论者举证证明上帝不存在,但是要证明不存在是非常困难的。对方只能举出一些例子,但这些例子很脆弱,如果再结合盗窃的概念,那就更无懈可击了。”师父:上帝保佑你。无神论者:上帝不存在。师父:你怎么证明上帝不存在。无神论者:我没见过上帝。师父:我没见过上帝,不代表上帝存在。不存在无神论者:我都看不见,怎么能说上帝存在呢?师父:上帝是一种信仰,它无处不在,我们慢慢体会吧。无神论者:……”推责法则就是不断地把举证责任推给对方,然后找茬,让对方不知所措。总结逻辑的内容很多,有很多有趣的规律,比如三段论、命题、演绎。但是对于生活来说,本文介绍的一些方法就够吵架的了。当然,不是为了学习如何制造诡辩,而是为了辨别诡辩。我们在工作交流的时候,当我们能够注意概念的统一,尊重恒等律、矛盾律、排中律等逻辑的基本要素时,交流就会变得更有效率,并且争吵会更有道理,我们会从中成长。【本文为专栏作者“ThoughtWorks”原创稿件,微信公众号:Thinkworker,转载请联系原作者】点此查看该作者更多好文