作为一个程序员,今年是我工作的第十一个年头了。这么多年过去,自己依然还奋战在互联网的一线,只是个人职责发生了一些转变,以前更多的是自己来干,现在更多的是指导团队其它人来干。
如果要我总结这么多年,自己看到职场上面最重要的能力,我会说是“沟通”能力。
记得十年前我初入职场时,在华为的文化墙上,看到某个领域的专家写的感悟:“没有什么问题,是沟通解决不了的;如果有,那就是还没有沟通到位”。这么多年过去,在现有的公司,我依然经常听到公司的技术高层会说起:“沟通是一个程序员职业的天花板”。
不管这是不是事情的真相,至少能说明有一部分人,从程序员成长起来最重要的能力是“沟通”。
为什么沟通这么重要?
- 从表层来看,沟通是让别人快速理解和信任自己最高效的方式。你能够把自己的才华和能力,通过言语的表达,让其他人快速得到理解。在工作上的体现就是:对公司你的产出,对过去你的总结,对未来你的规划,这些都直接体现在你的沟通上。
- 从深层来看,沟通只是你能力或者才华的一种体现方式。除了表达的方式,对于具备工匠精神的匠人,也可以通过作品来表达自己。比如:画家的画作、作家的书籍、音乐家的音乐作品、程序员的开源代码等等,这些可以代替你的语言表达。但是在职场上,这种表达的方式效率还是太低,除非你已经有一定的名气,不然也很少会有人耐心地把你的作品看完。
既然沟通这么重要,为啥程序员又不够重视?
- 程序员的大部分时间都是面对的电脑,并不直接面对人。虽然沟通对他们很重要,但是让他们能够实践锻炼的机会并不多。大部分工作到了程序员这里,更多是怎么落地和实现,从而导致程序员的主要工作都在思考怎么用代码来实现功能,更多的时间都在考虑技术实现的问题,从而缺少对事情本质的思考。
- 对程序员评判的标准跟沟通不强相关。虽然沟通能力对程序员很重要,而且领导经常也会抱怨团队成员半天说不清楚事情,沟通效率很低;但是到了考核的时候领导并不会由于员工沟通不行,就判定其能力不行,沟通只是作为锦上添花的支撑项。
- 过于偏信技术的执念,从而出现价值观的误导。程序员群里会流行一句话:“你行你上,不然少BB”。这句话显得挺傲慢,好像会写代码就最牛逼似的,不过随着现在AI编程的兴起,编写代码门槛的降低,这样的价值观也慢慢弱化。
重视了,要成为高手也很难
在程序员的视角里,沟通并不是解决关系问题,更多的是以解决事情为导向。所以在沟通时,双方必须具备一定的专业背景,能够快速的把问题说清楚,让项目快速得到推进,问题能够及时被解决。
沟通其实只是你能力的体现,如果你都不具备相应的能力,就很难有好的沟通。这里可以分为几个层面:
- 新手: 可以干事情,但是说不清楚干的逻辑或者为什么要干。
- 老手: 可以干事情,也理解为什么要干,但是只有团队内部的人,能够理解其表达的含义。
- 高手: 可以干好事情,同时可以让专业领域内的人,能够理解其表达的含义。
- 大师: 可以干好事情,同时可以让专业外的人,也能够理解。
在职场上,大部分人都只是从新手变成了老手,了解自身团队领域的业务和技术,能够在团队内部顺畅沟通。一旦涉及到跨团队,尤其是跨业务领域,就很难表达清楚自己干了什么。
因为很多程序员做事情的出发点就错了,怀着一种完成任务的心态来交付工作,这样就很难把事情做到优秀或者把事情了解得很透彻。大家如果都只想做自己的本职工作,一旦涉及到跨团队或者跨领域合作,整个项目的架构设计和风险就没有人来把控,除非专门安排一个项目经理来管控。我记得字节的创始人张一鸣说过:“优秀的人做事不给自己设置条条框框。思维跳跃,就要把心里的小算盘,私心全部清除,让自己保持宽阔的心态,这样才能在职业道路上不断前进。”
沟通这件事情,很难达到上限。程序员实现一个小功能,眼里看到了自己实现的代码细节;产品经理,眼里看到了功能背后的产品能力;业务人员,眼里看到了功能所带来的业务价值;架构师,眼里看到了功能架构的健壮性和可扩展性;管理者,眼里看到了功能为团队扩张带来什么收益;公司高管,眼里看到了功能给公司带来的竞争力和市场前景。
沟通是一件小事,你可以只管好自己的视角,完成自己的那一亩三分地即可;沟通也是一件大事,你需要有宏观的视角来照看全局,不自我设限,找到大家共同的价值。