程序员需要多沟通。
程序员的生活中,几乎大部分的沟通与计算机相关——更确切地说,与运行在上面的程序相关。这种沟通是一种能让机器读懂的表达方式。这仍是一次令人振奋的展望:程序,从想法到实现,几乎不涉及任何物理实质。
程序员需要熟练运用机器语言,不论现实的还是虚拟的,并通过开发工具完成该语言相关的抽象。因此,学习很多不同的抽象是非常重要的,此外,有些想法也极难表达。优秀的程序员能够站在生活之外的角度,用其他语言表达他的目的。
除了与机器沟通,程序员还需要与同行沟通。今天大型项目更多是团队协作,而非简单的编程艺术。理解和表达变得比机器的抽象可读性要重要得多。我认识的很多大牛除了说一口流利的母语,还会其他语言。这可不仅仅是为了和其他人沟通:说好一种语言会让思路清晰,这是在抽象某个问题时不可或缺的。对于编程领域而言也一样。
除了与机器、自己和同行沟通外,一个项目有非常多的利益共同体,大量的非技术背景人员参与其中。他们在测试、质保、部署。对于市场和销售,他们是办公室(或商场、学校)的终端用户。你需要理解他们及其痛点。但如果你不会他们的语言——他们世界/领域内的语言,这就几乎不可能了。尽管你自认为与他们洽谈愉悦,但他们恐怕不会这么想。
如果你与会计交谈,你需要基本的成本中心、捆绑成本、资本等方面的知识。如果你和市场、法务交流,你应该熟悉他们的行话和语言(本质上,是他们的思维模式)。项目中所有这些领域属于都需要由某个人掌握——理论上,当然是程序员啦。通过计算机,程序员要最终把想法变为现实。
当然,生活不仅仅是软件工程。正如Charlemagne所说:“拥有另一种语言就是拥有另一个灵魂”。为了你在软件行业的迭代,你会感激自己懂外语。知道何时听胜于说,懂得很多语言的词穷。