前言
大多数人在听到程序员这个职业时,总是认为其是一个写代码的--代码的搬运工,同时也被贴上了一系列的标签:不善言谈
、无趣
、和机器打交道的人
,当然,不可否认的是这种现象是存在的,大多数程序员在沟通方面确实欠缺;这篇文章我们可以深入的体会人际交往在程序员日常工作中的重要性。
沟通的重要性
打怪升级阶段
在软件开发领域,可以将程序员粗略划分为这几个阶段:
- 菜鸟阶段:在导师的带领下,分配任务开发,和测试人员联调,沟通需求细节
- 导师阶段:与各方人员沟通需求,并理清需求点和分配任务给低级别同学
- TL(Team Leader)阶段:这一阶段,往往和代码已经
Say Goodbye
,日常工作基本就是和各方人员沟通
从上面我们可以得出,无论在什么阶段,沟通能力都是一个基本的软技能,假设沟通不佳的话,很有可能造成产品延期、合作不愉快等现象。
日常工作中
在没成为TL之前,我们大多数时间都是在和计算机打交道,通过写代码的方式让计算机执行,达到我们想要的效果。但不可否认的,我们所写的代码其首要目的都是供人使用的,如果不需要供人使用维护的话,那我们大可以直接将代码写成0/1这样的机器语言,计算机理解执行的还更快。所以要想更出色的写好代码,首先要能将代码写的更容易让人理解,这样沟通的时候能高效。
再一个,我们在日常工作中,对于沟通及交往的能力也是很重要的
- 早上来上班,我们往往做的第一件事情就是看下邮箱或群消息,看下是否有人找你互动
- 开会时,会和同事商讨你正在处理的问题,探讨解决方案
- 当一个项目需要外部推广时,你还需要和同部门或跨部门的同事进行沟通,讲述你的项目,为他们答疑
所以说,在日常工作中,沟通占据了我们许多的时间,故要成为一个出色的程序员,沟通及交往能力是必不可少的一项技能
晋升时
基本上现在所有的IT公司,都有自己的一套职级体系,而相应的职级也对应了程序员不同的能力水平(ps:当然有的公司职级评定的时候有点水,但是大多数情况都是能真实的反映一个程序员的能力的)。
晋升时,最考验的就是我们的沟通表达能力,有的人即使做的事情很有挑战性,也很能体现自己的技术能力,但是在答辩时,却无法清楚的表达出来,这就好似你仿佛造了一艘火箭,但是你讲出来的却是你造出了火箭模型,这是天与地的差别。
所以说,沟通表达能力能够让我们更好的体现自己的价值,意识到这点,那么你的升职加薪之路往往会更顺一点。
如何沟通
沟通(communication)是人们分享信息、思想和情感的任何过程。这种过程不仅包含口头语言和书面语言,也包含形体语言、个人的习气和方式、物质环境——赋予信息含义的任何东西。
俗话说“美言一句三冬暖,恶语伤人六月寒”。沟通是一项艺术,在心理学中也是一门很重要的课程,这方面的书籍有很多,本文的最后我列出了一些书单,大家可以一起学习学习。在这里我会选择几个比较重要的点进行探讨。
不要轻易否定他人的想法
人类最深邃、最致命的欲望之一,就是每个人都希望以自己为核心,感觉自己很重要
。
每当与他人交流时,一定要及时的给对方反馈,并毫不吝啬的对他们的观点给予肯定,假设你不认同对方的观点,也别急着否认对方,一旦你一味的否定他,削弱他们的成就感,在某种程序上就如同切断了他们的氧气补给,获得的反馈将完全是争吵、绝望等。
我们在进行技术讨论时,需要对他人的方案进行评审,不同的做法可能会导致不同的结局。
让我们看下面这段对话:
A:我所设计的架构是这样的,其中数据库采用Mysql,队列使用RabbitMQ。。。
B:你这个方案不好,这里不能用RabbitMQ,换一个吧
A:为什么不能用RabbitMQ啊,我觉得能满足需求
随后两人展开了激烈的讨论。。。
这个场景中B的做法显然是不尊重他人的成果的,一上来直接就否定了A的成果,很容易造成争吵
假如我们像下面这般:
A:我所设计的架构是这样的,其中数据库采用Mysql,队列使用RabbitMQ。。。
C:你这个架构很棒,很好的解决了一些问题;不过对于RabbitMQ的选型上是否有更好的方案替代呢?RabbitMQ的吞吐量相较于其他会低一些
C的回答明显A听起来就会舒服些,后面的讨论也会更轻松一些。
所以说,肯定他人,多赞美他人,会更容易得到他人的尊重,并能更好的解决问题。
换位思考
在人际交往方面获得成功的关键在于:停止用”我“和”我想要什么“来思考。而是应该思考什么对他人而言是最重要的,什么才是他们最需要的。这样你可以很好的避免让他人觉得自己不受重视,你也能少做一些否定他人的行为,同样的,他人被你这样对待,也更可能用讨人喜欢的方式与你打交道。也更能认可你的想法。
要做到换位思考的前提,我们需要首先要做到学会倾听,更好的倾听他人的想法,不要打断别人;在倾听的同时,试着将注意力转移到他们身上,从他们的角度来思考问题,什么是他们感到至关重要的,当轮到你发言时,再娓娓道来,一语中的。
在和领导汇报工作时,不要直接地说结论,要和领导说清楚你为什么选择这样的做法,用你的想法有什么好处。我相信这样的话领导很愿意和你交流他的想法。
避免争吵
对于程序员理工男来说,逻辑思考是我们必备的思考问题的方式,所以往往更倾向于认为所有人都是从逻辑角度来思考问题,但这时候却恰恰忽略了人是有情感的生物,是由理性和感性构成的。我们就像那些穿着西装、打着领带、四处游荡的小孩,假装自己已经长大了,其实任何轻微的伤害都能让我们嚎啕大哭、或者大发雷霆,我们只是学会了如何隐藏自己的情绪。
据我所知,普天之下解决争吵的灵丹妙药只有一个,那就是避免争吵,像躲避响尾蛇和地震一样地远离争吵。 --- Dale Carnegie , 《人性的弱点》
如果你在和他人进行技术方案探讨时,意见产生分歧;最好能先确定分歧点是否值得你拼命维护,在小事情上,任何放弃立场和承认错误的机会对你而言可能都没什么大不了的,但对他人而言,可能是举足轻重的,这么做不仅能为你赢得不可估量的尊重,也能为你的未来积累财富。
很多时候,争吵只会让事情变得更糟,还影响自己和他人的工作体验。
苛性碱
有时候你会发现,有的人不管怎么样就是无法相处,有的人就是抓住一切机会贬低别人,对生活中的一切抱有消极态度。这种人被称为”苛性碱“
当你意识到某个人就是”苛性碱“时,千万不要试图去改变他们,你应该做的就是远离他们,减少和他们的互动。
书籍推荐
- 《人性的弱点》 - Dale Carnegie
- 《沟通的艺术》 = Ronald B. Adler , Russell F. Proctor
- 《非暴力沟通》 - Marshall B.Rosenberg