开发界流传着这样一句口头禅:talk is cheap,show me your code。每次在微信群中看到这样的话突然冒出来的时候,我都能想象出发送者那充满优越感的脸庞。不过,大部分人可能有意无意忽略了这句话隐含的前题:假设你已经有了足够的表达力。这种情况并不罕见,人们总是按照对其有利的方式来理解看到的和听到的文字,否则就不会有诸如“都采用敏捷了,还写什么文档!”这类的言论了。
不善表达是不少开发的通病,究其原因无外乎两种:不愿和不能。
不愿,也就是通常说的“懒得做”,越是初出茅庐的开发越有这样的倾向。没有动力改善表达能力可以用以下两个原因来解释:
- 同机器相比,与人打交道要麻烦得多。对于机器,一条指令下去,让它干啥就干啥,几乎没有什么说服成本。而要说服人认同自己的想法,确定性就没有那么强了。考虑的变量非常多,而且没有什么明显的规律,比如,同样一句话,不同的人可能反应不同,同一对象在不同的心情之下反应也不一样,诸如此类。归根结底一个词:麻烦!
- 不重视人与人之间的微妙关系,认为自己的工作就是解决技术问题,至于其他,则于己无关。
不能,则反映在思维局限性:
- 干开发这行的通常属于技术性思维,在他们的眼里,世界是理性的,各个问题也都是技术问题,都可以通过技术手段解决。越年轻这种倾向越严重,因为刚刚踏入社会,并没有经过太多的历练,手中唯一的工具就是学校灌输的技术型工具。其结果当然就是跟“金锤定律”说的一样:所有问题都是那根钉子。
“就算我表达力不行,但只要代码能力强那也没关系吧”,这应该是不少开发的心声,当年我也是这么认为的。但实际上这种思想只是反映了我的年幼无知,原因很简单:人是靠自身的表达力来影响他人。纵观古今中外,莫不如此。即使在开发这行,你能想到的大牛也都具有相当强的表达能力。
请不要把“影响他人”视为贬义,因为我们无时无刻都在无意识地做这件事:
- 当你期望你的代码被 Merge 时,你得让代码库的所有者接受。
- 当你期望你的设计被接受时,你需要得到同行或客户的认可。
- 当你期望被心怡的公司录用时,你得让面试官相信你的能力。
- 当你期望整个开发团队按照你的意图完成开发时,你得让每个开发团队成员都保持一致的理解。
- ……,很多,很多。
如果表达力不足,几乎无法完成上面列出的每一件事情。正如唐朝宰相虞世南所言:“不学易不足以为将相”,在我看来,“表达力不行不足以带团队”。说的严重一点,连胜任普通开发都有难度。因为如今的世界是一个讲究协作的世界,表达能力的缺失将是你的致命伤。
那么,该如何增强自己的表达能力呢,作为过来人,我建议:
- 开始写文章,不论你是开博客、写微博,或是投稿,先行动起来,看看是不是能够流畅地将想说的说出来。
- 参与社区,认识更多的朋友,从朋友身上学习。
- 尝试演讲,先从内部分享开始,再到外部社区,一步一步地锻炼自己的演讲能力,同时构建自己的影响力地图。
- 学习其他的思维表达方式,比如设计思维、系统思维、视觉化描述等等,形成自己的套路,不断丰富自己的表达力。
最后,请记住,代码能力本质上也是表达能力的一种。而且,这里强调的表达能力并非那种花里胡哨的 PPT 或图画,而是将你的心声传递给对方,从这个角度来讲,若你自己没有理解或认同,很难有这种感染力。