为什么我们总是「习惯性辩解」?

这里是Z哥的个人公众号

每周五11:45 按时送达

当然了,也会时不时加个餐~

我的第「162」篇原创敬上

大家好,我是Z哥。

今天我们来讨论一个日常工作中很常见的现象:面对质疑,我们的第一反应是不承认,甚至是辩解。

为什么我会对这个话题感兴趣呢,因为这个现象在程序员群体的身上尤其常见(后面会说尤其常见的原因)。想要对症下药,就得先弄清楚背后的根本原因。

我们先来看一个很常见的案例。

我方客服:序员,有用户反馈这里打开这个页面显示空白,我看了下,的确如此,你看看啥原因?

序员:我试了下,我这是正常的。

这个对话,从两边各自的角度来看都没啥问题,表达的都是客观事实。但是对序员来说,他忽略了对方所陈述的事实,因为「自己这里正常」与「其他人那里正常」并不能画等号。一但这么说,从心态上就已经不是就事论事了,目的变成了「证明这并没有问题」,而不是「寻求为什么会出现这个问题」。

有经验的程序员都知道,网络是极其不靠谱的一个东西,而对用户来说,使用一次功能可能途中要经历好几次网络通信。除此之外,在微服务大行其道的今天,很多程序都部署了多个节点以分散访问压力,用户访问的节点有很大概率与你自己测试的并不是同一个节点,这些更加说明了不应该如此判断。

但为什么还是容易将上面的话脱口而出呢?

因为我们的一个心理“缺陷”。心理学中有一个名词专门用来表达这个现象 —— 「认知失调」。

认知失调(英语:Cognitive dissonance)是一个心理学上的名词,描述在同一时间有着两种相矛盾的想法,因而产生了一种不甚舒适的紧张状态,后续为了改善紧张状态而改变自身行为或想法,使自己相信理念与行为间没有冲突。

如时薪过低劳累而相信自己热爱工作、被众人指责是因为自己的错误,内心感到愧疚不愿承认而故作轻松、对遭严酷考验而进入的团体更有归属感,都是认知失调的作用案例。

维基百科

简而言之就是现实与想法不一致。

/01  哪些人容易出现「认知失调」/

在心理学家的研究中,常见人群中有两类人最容易出现认知失调,一种是过度自信的人,一种是智商高的人。

对于过度自信的人来说,他们认为自己是完美的、全能的,是不应该犯错的。

而对智商高的人来说,他们很难发现自己的错误。一方面间接原因也是因为过度自信,另一方面是在过去习惯了自己总是正确的一方。(以逻辑见长的程序员们大多数都自诩是高智商)

/02  产生认知失调会有什么后果呢?/

主要有两种情况,「产生偏见」和「伪造事实」。

偏见会让你意识不到自己的问题,自然无法自省,去面对现实。更可怕的地方还在于,你此时还认为自己是客观的,并没意识到已经被自我蒙蔽了。因此你就会强化自己进行自我辩护的信念,不得不把重点集中在寻找别人错误的身上,以致于更加激活了你对他人的偏见,形成了恶性循环。

有时候产品经理和程序员之间的水火不容就是这么形成的,从「对事不对人」恶化到了「对人不对事」。

产生认知失调后的「伪造事实」有时候会身不由己的进行。

比如,某个版本的系统你只改了一行代码,调整了一下if判断的逻辑,但是发布到线上后程序挂了。产生认识失调的人第一反应是,是不是昨晚服务器做了什么操作还是中间件有什么调整,导致程序挂了,而不是先考虑是不是昨天修改的那一行代码的问题。

/03  如何应对认知失调/

每个人都会犯错,并且也只有通过犯错才能知道什么是正确的。所以,首先最重要的还是调整心态。如果不容易调整,那么就把这句加粗的话放到显眼的地方每天看几遍:D

然后,从他人的角度来看待这个问题,你对人包容一些,他人也会对你更包容。可能你会纠结于为什么是我先换位思考?但好好想想,在这件事中毕竟出错的是你,你先也是应该的吧。

最后,用行动弥补「认知失调」。基于美国商业伦理专家Lauren Bloom提出道歉三要素,我将行动步骤分为三步:

  1. 承认错误。

  2. 给出当前问题的解决方案。

  3. 道歉并表达感谢。

对于第三点可能你会有疑问,道歉就完了,为什么要感谢呢?感谢什么?

这里的理由是,当你道歉时,可能对方会认为你来道歉仅仅是为了消除你的罪恶感,而如果你在道歉的同时对对方表达感谢,对方会认为你来道歉并不只是为了让自己好受,而是因为你看重Ta,看重和Ta的关系。比如文章开头的对话中,当你修复完这个线上问题后,感谢一下客服替你安抚用户,给他们的工作添麻烦了。

如果你想深入了解这个问题,可以去看下《谁会认错》这本书,还是很有启发的。

作者:卡罗尔·塔夫里斯 / 艾略特·阿伦森

原作名: Mistakes Were Made (But Not by Me): Why We Justify Foolish Beliefs, Bad Decisions, and Hurtful Acts

出版年: 2008-11

豆瓣评分:8.1

好了,总结一下。

这篇呢Z哥和你分享了日常很常见的一个问题——「不愿承认错误」背后的原因。

  • 它主要是由「认知失调」导致的。越是自信的人、智商高的人越容易出现这个现象。

  • 一旦产生认知失调,会表现为「产生偏见」和「伪造事实」。

  • 应对它的办法是:

  1. 摆正心态,不要排斥错误。

  2. 换位思考。

  3. 用三个步骤的行动来弥补。分别是,承认错误、给出当前问题的解决方案、道歉并表达感谢。

希望对你有所启发。

优秀的人勇于认错,极其优秀的人不仅能认错,还会想办法弥补,你是极其优秀的人吗?

推荐阅读:

  • 致后浪:6句肺腑之言,望你少走弯路

  • 我私藏的记忆方法

原创不易,如果你觉得这篇文章还不错,就「在看」或者「分享」一下吧。鼓励我的创作 :)

如果你有关于软件架构、分布式系统、产品、运营的困惑

可以试试点击「阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode1047. 删除字符串中的所有相邻重复项

一:题目 二:上码 class Solution { public:string removeDuplicates(string s) {stack<char>st;string str;st.push(s[0]);for (int i 1; i < s.size(); i) {if (!st.empty() && s[i] st.top()) {//此时s[i]也没有入栈st.pop();} else {st.push(s[i]);}}whi…

如何理解Eating这个词?云原生与微服务专场介绍

点击上方“开源社”关注我们| 作者&#xff1a;开源社| 编辑&#xff1a;李明康| 责编&#xff1a;袁睿斌有一幅曾经传播很广的漫画&#xff0c;大意是&#xff1a;软件吞噬世界&#xff0c;开源吞噬软件。后来这个漫画又被人加了两条鱼&#xff1a;云计算吞噬开源&#xff0c;…

leetcode239. 滑动窗口最大值(java详解)

一:题目 二:思路 1:lc通过版 class Solution {/*思路:1.这里是要求出每一个窗口中的最大值,那么我们自然的想到如何用一个队列 可以使其每次队首出现最大值&#xff0c;那么我自然回想到大顶堆,但是用了之后&#xff0c;我们窗口中的元素位置就发生了变化那么当我们移动窗口的…

程序员修神之路--它可能是分布式系统中最重要的枢纽

“灵魂拷问分布式系统为什么需要注册中心呢&#xff1f;分布式系统注册中心有哪些坑&#xff1f;分布式系统注册中心怎么来实现呢&#xff1f;注册中心利用现成的组件很好实现吗&#xff1f;看到标题你可能会鄙视一下&#xff0c;注册中心有是什么讲的。注册中心作为现在架构中…

用Java刷算法题的常用数据结构(C++转Java)

文章目录一:前言1:为何刷题从C转java2:如何上手呢&#xff1f;二:输入1:常规的输入2:关于其他输入符在nextLine()之前用吃掉回车符的问题解决3:常见输入之我们输入一串数到容器中三:常用的数据结构1:数组2.List3:Map4:Set5.栈6:队列一:前言 1:为何刷题从C转java 平时除了写项…

Magicodes.IE 2.4发布

今天我们发布了2.4版本&#xff0c;这离不开大家对Magicodes.IE的支持&#xff0c;我们也对大家的意见以及需求不断的进行更新迭代&#xff0c;目前我们的发布频率平均在一周一个beta版本&#xff0c;一个月一个正式版本的更新&#xff0c;我们欢迎更多的开发者加入进来&#x…

7-1 简单词法分析

一:题目 二:思路 思路: 1.记得看书;不要一上来就莽;不然莽不过去的 2.这里我从书中了解到 f(0,b) 0; f(0,a) 1;f(1,c)1;f(1,b)3… 那么的话我们只要最终推导出f(1,b)3;那么的话就是一个满足要求的字符串; 注意我们入口部分一定是从 0 开始; 3.接下来就是要判断一些细枝末节 …

Java 生态碎片化 和 .NET生态的一致性

.NET Core是以MIT协议开源&#xff0c; Java是GPL协议开源。Java 8 SDK升级Oracle要收费这件事对于很多小公司是有着重大的影响的&#xff0c;Java生态越发碎片化&#xff0c;有众多的OpenJDK发行版&#xff0c;腾讯云和阿里都有OpenJDK发行版&#xff0c;龙芯也有MIPS版本的Op…

Power Automate Desktop概览

点击蓝字关注我们Microsoft Power Automate使得通过自动化重复性、耗时的任务来提高您的业务效率成为可能。Power Automate提供了一种更好的方法&#xff0c;通过数字和机器人过程自动化(RPA)在整个组织中完成任务。Microsoft Ignite 在线活动小伙伴们都有参加么&#xff1f;重…

超600人!近5小时直播!录屏+彩蛋+PPT…你要的都在这!

2020年9月26日下午&#xff0c;《NCF框架揭秘》直播交流会圆满落幕&#xff01;由盛派首席架构师苏震巍老师主持、分享&#xff0c;更有各路大咖&#xff0c;在线助力&#xff0c;干货满满&#xff01;点击视频 ☝ 回顾直播现场友情提示&#xff1a;如果公众号内视频无法显示高…

leetcode226. 翻转二叉树(Java)

一&#xff1a;题目 二:上码(前序解法) /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left,…

Chrome正在启用HTTP/3,支持IETF QUIC

Chromium 官方宣布 Chrome 正在部署到 HTTP/3 与 IETF QUIC。QUIC&#xff08;Quick UDP Internet Connections&#xff09;是 Google 推出的一个项目&#xff0c;旨在降低基于 TCP 通讯的 Web 延迟。QUIC 非常类似 TCPTLSSPDY &#xff0c;但是基于 UDP 实现的。它是 HTTP/3 的…

leetcode101. 对称二叉树

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

诊断日志知多少 | DiagnosticSource 在.NET上的应用

1. 引言最近为了解决ABP集成CAP时无法通过拦截器启用工作单元的问题&#xff0c;从小伙伴那里学了一招。借助DiagnossticSource&#xff0c;可以最小改动完成需求。关于DiagnosticSource晓东大佬18年在文章 在 .NET Core 中使用 Diagnostics (Diagnostic Source) 记录跟踪信息就…

leetcode110. 平衡二叉树(java详解)

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

IdentityServer4系列 | 常见术语说明

一、前言在上一篇中&#xff0c;我们IdentityServer4的说明&#xff0c;认识到是一个基于OpenID Connect协议标准的身份认证和授权程序&#xff0c;并简单的对基础知识的认识以及区别说明&#xff0c;从OAuth、OpenID、OpenID Connect以及JWT等进行对比区别说明。而在这一篇中&…

网易年薪40W架构师面试题,欢迎自测!

一个月前被拉进了一个微信群&#xff0c;名字叫《明日都是大佬》&#xff0c;群里有20多个人&#xff0c;都是正在跳槽的&#xff0c;目标是年薪30w&#xff01;投简历、笔试、面试后都相互分享&#xff0c;互通有无你懂的。拉我进群是帮忙解答一些难题&#xff0c;很多题目还是…

leetcode257. 二叉树的所有路径(java递归详解)

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

leetcode617. 合并二叉树

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

跟我一起学.NetCore之熟悉的接口权限验证不能少(Jwt)

前言权限管控对于一个系统来说是非常重要的&#xff0c;最熟悉不过的是菜单权限和数据权限&#xff0c;上一节通过Jwt实现了认证&#xff0c;接下来用它实现接口权限的验证&#xff0c;为什么不是菜单权限呢&#xff1f;对于前后端分离而言&#xff0c;称其为接口权限感觉比较符…