×

一边去,我要写代码

96
SexyCode 595a1b60 08f6 4beb 998f 2bf55e230555
2017.09.02 23:32* 字数 1589

前不久听到一个笑话:

阿甘的一位程序员同事,最近桌子上多了一个计数器,于是阿甘凑过去问,“你这个东西是做什么用的呀”,那位同事极不情愿的转过头,说,“用来记录一天有多少个傻X打断了我的工作”,说着,往计数器一按,叮~~

这个笑话让我在大笑之余,也发现自己有时候就是那个打扰别人的“傻X”,同时,当别人在我敲的正high时过来打断我,我也会像笑话里那个程序员一样,默默地,在自己心里,给这个人的反感计数器加上个一,然后暗自骂一句,“傻X,这么简单的问题还来打断老子....”

的确,谈起程序员,人们常常想起的是技术、牛X、大神乃至修电脑,几乎没人把程序员和说话沟通搭上边。很多人觉得程序员就是在和电脑打交道,写电脑才看得懂的语言,让电脑帮人干活,这好像没错。然而,这句话说的仅仅是表象,想想看,你为什么要写代码?因为有需求,需求哪来的?项目经理从客户那里拿过来的,你写的代码最后是给谁用?给客户用,你写的代码,最后是给谁看?给你的同事,乃至你以后离职之后你的继任者看。再继续想下去,我的天,原来电脑只是我复杂关系网络中的一个小节点,其他的节点,全都是有血有肉的人呀。

谁说程序员不需要沟通?谁说程序员不需要说话?谁说程序员只需要技术牛X?难道项目经理给你澄清需求时,都是用代码给你下的指令么?难道你在给同事介绍代码时,都是拿着0101的机器码讲么?难道一个技术超级牛X,但是总是误解需求,把需求A做成需求Z的程序员,会比一个技术能力不那么强,但是却总能和别人高效沟通,工作输出符合项目愿景的程序员更受领导的青睐么?

程序员只是在和电脑打交道,这句话只说对了一半,他们没看到,在另一头,是项目经理、是SE、是同为程序员的同事,看看下面这张图就知道了:

所以,更准确的表达应该是:

程序员是翻译,他把项目经理的需求,翻译给了电脑,让电脑能够自动化、永不停息的执行这个需求;

程序员是小说家,需求是一个故事(Story),他们用手下的键盘,塑造着一个个性鲜明的角色,构成了一部完整的小说;

会说话的程序员,并不是说多么的能言善辩、多么会扯皮、多么的雄辩以至于可以把一个自己的Bug解释成是Software

Design,而是,在听项目经理澄清需求时,能够很好的理解需求,并提出自己的疑惑;在和同事沟通时,能够高效而简洁的在短短几句话内让对方明白你需要什么;在和对方有分歧时,能够客观的分析事实,让人平静地接受你的观点,或者大度地承认自己错了并由衷的对对方表示钦佩。

不会说话的程序员,或许你只能做技术专家,鉴于和你沟通效率不高,或许很少有公司喜欢你这样的技术专家;而会说话的程序员,你们未来的职业方向非常广阔,技术咨询师培训讲师创业者等等,这些职业的风险固然更大,但是如果做得好,你就可以早点退休,做更多自己想要做得事情。

当然,还有更重要的一点,人生不仅仅是工作,还有生活。一只不会说话的程序猿,可能在编程的世界里过得如鱼得水(鉴于上面的分析,想如鱼得水也不容易),但是一定离开了编程,想必是过着 in a mess 或者 like a shit 般的生活。

回到开头那个笑话,假如我是被打扰的程序员,我会:

换位思考,自己以前也没少打扰人家,以后也一定还会需要人家帮忙;

要想在以后打扰人家的时候,人家可以耐心地给自己解答,自己就应该先耐心地对待人家;

如果我是阿甘,看到同事桌子多了个玩意儿,我会:

给他发条消息,“hello,你桌子上那东西是啥呀?”,同事敲完键盘,看到屏幕下面的消息,会跟你说,“哎,没啥,玩儿”,说不定还会跟你唠唠嗑放松放松。

那万一他一直不回复呢?如果事情不紧急,那就在去吃饭的路上或者在吃饭的时候,找机会跟他搭话;如果事情很紧急呢,你也不要冷不丁的冲到他背后,戳一下他的后背,我就很多次沉浸在编程中时被人吓出shi,你慢慢的走到他旁边,等他反应过来了,问一句,“有空吗,问你个问题...”

作为程序员生存指南专栏的第一篇文章,我只是想让你知道,程序员是需要学会说话的,这,是你在编程世界外面生存下去的第一法则。

软技能
Web note ad 1