你好,我是陈皓,网名左耳朵耗子。
Talk is cheap,show me the code,是我们技术人常说的一句话,也是技术社区中经常用的一句话。这句话的意思是,那些光说不练的人说一句是很简单的,而写代码的人则会为一句话付出很多很多的精力,其表明,一个看上去再简单的东西,用一行一行的代码实现起来,并能让其运转起来也是一件很复杂很辛苦的事。说得容易,做起来难!
这句话是Linus说的,也是我引入到中文社区的,然而,逐渐地,大众对这句话的解读开始有点变味了,走向了另外一个极端——他们觉得代码才是最重要的,甚至其中有些人开始觉得真正的技术人员是只用代码说话的!
似乎,这个世界上总是会有一些人,当他们看到一个观点的时候,在他们的脑袋里只有两个答案,一个是true,如果不是true,那就是false。就好像只要一个人犯了个错误,这个人就是一个不折不扣的大坏蛋,如果一个人是个好人,那他要在所有的地方都是优秀完美的。
对于技术人员来说,其实,Talk和Code是同样重要的, Talk是人对人说的话,而Code也不仅仅只是人对机器说的话,也更是另外一种人对人说的话(因为Code需要易读和易维护,就需要让人读懂)。可见,无论是Code还是Talk其实都是要和人交流的,Code是间接交流,Talk则是直接交流。在公司中工作,需要了解公司的意图,与团队一起做项目,调研客户的需求,设计出用户易操作的界面……你会慢慢地发现,其实,Talk并不cheap,而Code才是其中比较cheap的(注:这是站在了另外一个角度)。
一个好的程序员,需要有好的学习能力,这样你才能成为技术专家,但是,你还要有好的沟通能力,不然,你的技术能力完全发挥不出来。就像一棵大树一样,学习能力能让你的根越扎越深,无论遇到什么狂风暴雨,你都可以屹立不倒,而沟通能力则是树杆和枝叶,它们能让你伸展到更高更远的天空。
所以,与人沟通是一项非常重要的软技能,我们应该刻意训练和培养自己这方面的能力。今天我们就来聊聊“技术人如何高效沟通”这一话题。我会分享很多我的工作经验,以及我这么多年来积累和总结的一些沟通技巧。它们在我的工作和生活中都起到了至关重要的作用,希望同样能给你一些启发。
我特别想对技术人员强调一下我的观点:有效的沟通是事业成功的必要条件。不管你的目标是成为一名卓越的管理者,还是成为某个领域的技术牛人,你都应该提高自己的沟通能力。
沟通的原理和问题
想要获得高效的沟通,我们首先需要知道,什么是沟通以及其背后的原理。简单来说,沟通是指运用语言、文字或一些特定的非语言行为(面部表情、肢体动作等),把自己的想法、要求、信息等内容传递给对方。而沟通的原理跟计算机之间的通信有些类似。我在大脑里面将要表达的内容根据通信协议(比如中文)进行编码,发送出来,你接收到中文信息,但它表达的是什么意思呢?这时就需要去解码。
然而,我们日常生活中经常出现的一种情况是,我这句话是这个意思,但却被对方理解为其他意思,即“说者无心,听者有意”。究其原因,其实是因为我们每个人的编码器和解码器完全不匹配造成的,这也是沟通中经常出现的问题。

那我们该怎样解决这个问题呢?我们来想象一下,在计算机世界中,遇到这个问题都是怎样解决呢?也就是出现编码器和解码器不一样的情况,怎么办?我们通常可以通过一些约定来解决这个问题。对应到沟通这个场景下,“约定”仍然是个好办法。我在一些国外公司工作过,基本上入职之后的第一件事都是,被告知公司里面有很多术语,在描述对应的事物时要用统一的术语。就好像江湖中的黑话一样,这就是我们的通讯协议的标准化,这样可以简化很多沟通的成本。
此外,反馈也是个很好的方式,你把你理解的东西说给我听。如果有偏差,我再给你解释一下,直到双方达成共识。这就好像TCP协议一样,为了保证对方收到了,就需要接收方发出确认包。因为发送方和接收方的解码器不一样,所以,接收方把其解码的信息再编码后传回来,发送方这边再解码看看是不是同样的数据,于是就可以保证编码器和解码器中的信息是一致的了。这又叫“双工通信”(你看,我开始用到术语了,文科生听不懂了,嘿嘿),不要小看“双工”这事儿,它是有效沟通的前提。反之,则会有鸡同鸭讲、对牛弹琴的意味了。
当然,就算是我们统一术语并且有反馈机制,人与人的沟通依然还是有很多的问题。最大的一个问题就是,我们的成长背景不一样,经历不一样,知识储备不一样,所以对相同事物的理解难免会存在一定的偏差。
日常沟通可能还好一点,但涉及到一些专业领域中术语的表达,沟通不畅的问题会变得更为严重。比如,我在讲一些计算机术语,而那些没有计算机方面知识储备的人,是完全听不懂的。即便他能听懂我说的每一个字,但还是理解不了我在说什么。所以,这个世界上有一些“教6岁孩子学习XXX”的文章,这种方式其实就是想把一些高级的知识通过低级知识来表达出来,以便可以让小孩子都能听懂,也就是所谓的科普。相信我,如果你能做到这点,你一定是这个行业的专家级人物了。
就像那本相当经典的图书《从一到无穷大》,其实它在讲的是高阶物理知识,其中有非常难以理解的爱因斯坦相对论,然而这本书却被作者写成了中学生都可以读懂的科普书。能把深奥的物理知识写得这么通俗易懂,只有真正的专家才可以做到。这本书的作者是:乔治·伽莫夫(George Gamow)美籍俄裔物理学家、宇宙学家、科普作家,热大爆炸宇宙学模型的创立者,也是最早提出遗传密码模型的人。
信息在传递中的损失也不容忽视。相信很多人都玩过一个类似“传话”的游戏:一个人将一句话偷偷说给站在队首的人听,然后他把自己听到的内容传给第二个人,依次传下去,直到队尾。最后由队尾的人大声说出听到的内容。很多时候这个最终的结果都会令人哭笑不得,因为在传递的过程中,最初的信息已经完全变了样子。
因为,每一次信息的传递都是由不同的编码器和解码器完成的,而传递信息所使用的协议(人类的语言)是很难准确地携带所有的信息的,所以每一次编码和解码都会有信息的丢失和失真。还有一些人会在其中有意无意地“加油添醋”,甚至加入“谣言”,导致整个信息传递过程被黑!
与之对应的,如果一个公司层级越深,那么执行力一定越差。为什么呢?因为老大的“旨意”一层一层往下传递,传到最下面其实信息早就变了样儿。基本的模式都是,我听我的领导讲了,自己理解了一下,然后对下面的人讲。经常会出现这样的情况,最高层老板讲,我要的是这个,但最终员工交付的却是另外一个东西。信息传递的渠道越多,损失也会越大。所以,会有下面这张经典的图。

另一方面,在职场里,出于各种各样的原因,有些领导不想直接把自己上级的话对自己下属去讲。一方面,要把其变成下属能理解的语言去讲,他们觉得这样会更有效率,下属不用管公司或是别人要什么,只管好自己要干什么就好。
而另一方面也有政治上的原因,他们把一些信息阻断了,甚至修改了,以此来达到控制别人的目的。通常来说,只要有等级存在,职场中的管理层就会对上粉过饰非,对下盘剥利诱,这就是职场的生存法则,尤其是大公司更是这样。所以,公司大了后,如果管理跟不上,听之任之,上层和下层脱节基本上来说是必然的。
对我而言,不管以前做公司管理层,还是现在经营自己的公司,我一直都秉承的原则是,将信息源头的信息原模原样分享出去,而不是我“嚼过的”。因为,我认为后者的信息损失会非常大,而且产生的不良后果也会很大。真正的团队管理,不应该屏蔽信息,信息应该是公开透明的,因为我相信团队成熟到可以面对各种信息,并且是可以一起找解一起找出路的。
小结
总结一下今天的内容。在文章伊始我先强调了我的观点,Talk和code同样重要,有效的沟通是你事业成功的必要条件。随后介绍了何为沟通及其背后的原理。我认为,沟通原理跟计算机世界中的通信原理有些类似。由于编码器和解码器的不同,会造成理解的偏差。这个问题可以通过约定和反馈来解决,也就是要先达成共识,然后基于共识来进行沟通。最后我阐述了一些沟通问题,以及应对这些问题的方法。
下篇文章中,我将分析一下形成各种沟通问题的主要阻碍。敬请期待。
下面是《高效沟通》系列文章的目录。
精选留言
2018-09-16 09:21:04
2018-09-13 16:11:57
2020-02-03 17:06:45
2018-10-24 11:40:40
大点的公司 里面的规则多一点,一旦涉及到业务,先口头商议 然后用邮件通知,只要出活,绩效还可以 就能过得不错,所以不太需要沟通。
小公司比较灵活点,微信、口头协议都可以,一旦有扯皮,决策权在 老板手里,所以平时不主动让老板知道你的工作进度,后果很悲催,后来发现 在小公司 做得好 不如说得好,如果既能说 又能出活,每过一段时间抛个小惊喜给老板,一段时间后 你可能就是骨干人员了,绑定核心业务,地位就稳固了。
总结下 会code是程序员的安身立命之本,会沟通 既是行走的第二条腿 也是 催化剂让我们走的更稳,更快。
2020-03-24 08:17:27
2018-09-13 08:26:27
2020-06-19 14:49:58
2018-09-13 08:24:01
1沟通对象和语境: 沟通对象不同,使用的语言也不相同,关注点也不相同。自我认知的局限往往成为瓶颈。
2 沟通模型: 正如耗子哥说的,沟通反馈是重要的一环,沟通的典型症状: 我想当然以为你理解了我的意思,而对方亦如此。平常沟通过程中,我们团队非常重视反馈,这样也有利于形成工作流程的闭环
3 沟通方式: 具体技术问题通常面对面白板沟通,工作汇报多PPT沟通。敏捷实践中,特别强调和鼓励面对面沟通,但也会维护几份重要技术文档。
2018-09-13 17:45:46
2021-01-15 19:46:14
不是为了事后撕逼,是为了达成一致,把事情做好。如果一个公司经常内部甩锅互相撕逼,这样的公司还不快些离开等着它倒闭么……
2020-06-07 08:30:21
我现在就存在这样的问题,一直在尝试做出改变,尽可能做正确的事,出认可的活
2018-09-14 09:45:55
2023-02-03 08:58:27
2021-11-15 18:07:15
事实上,沟通没那么简单(信息在传输过程中的失真),而一旦不能有效的沟通后果也非常严重(小到人际关系、团队氛围不和谐;中到客户想要的、产品经理想要的、开发者最终做出来的根本就不是一个东西;大到企业上层和下层脱节,下层的诉求在传达到上层之前就被阻断,上层的任务传到下层的时候早已被曲解)
2018-09-16 17:18:50
2018-09-13 13:33:19
2018-09-13 11:28:44
2023-04-11 09:23:47
2023-04-10 17:20:36
之前记错了,以为是:Don’t talk, show code.
其实我觉的,无论是 code 还是 talk,哪个沟通效率高,就用哪个。
专栏里面说“Code 是间接交流,Talk 则是直接交流”,其实 talk 也是间接的,是把你的想法转换成语言然后传递给对方。其实还有一种沟通方式是 Doc,也就是写出来。
语言、文字、代码……其实都是沟通的方式。
无论是谁,也无论从事什么样的工作,其实都需要好的沟通能力,特别是在对方沟通能力没那么好的情况下。
得到似乎就有专门的《沟通训练营》。
统一术语、反馈机制(双工通信)、知识储备、传递损失……
因为公司层级过多而导致的信息传递损失,包括有意和无意的,有可能是大公司无法阻止公司外小团队创新的原因。
曾经遇到过无论什么工作都要先拉一个微信群,然后还要在群里面 @ 领导,然后才能推进工作的情况;然后也看到过微信聊天截图满天飞,用于甩锅的情况,其实这些应该都不属于真正的沟通。
2023-01-10 14:24:03