什么才是程序员最有价值的技能?怎样才能成为一名成功的开发者呢?我敢打赌,在你的职业生涯中你至少问过自己一次这样的问题。你找到答案了吗?你认为自己搞清楚了没有?
许多年轻的程序员会告诉你,伟大的开发者最重要的技能是对自己所用语言的掌握。当然,你得对C#、 F#、C++、java、Ruby、Haskell或什么别的语言娴熟于心。然而,语言本身并不能提供足够的技能让你完成桌面或web应用。
“那要不就是对平台的知识了,”你又问自己。也许甚至是整个平台体系,如果你仔细思考一下的话。比方说,这有可能意味着要知道Windows API或iOS开发的工具或库。可是,你再想一下。如果趋势变了的话又会怎样?如果项目转向另一个平台的话又会怎样?如果你只具备前一个平台的知识的话,你还会是一名伟大的程序员吗?我不这么认为。
“对!我知道了。肯定是解决问题和分析性思维的能力”,你几乎对着我吼起来了。事实上你是对的。没有一个好的开发者是不具备分析性思维的。但是,问题解决仍然不是你应该具备的最重要技能。
“如果不是编程知识的话,那一定就是编程激情。你每天都得学点新东西。不能停止,你得热爱它。”的确,你是对的,尽管这并非最重要的能力,但已经接近了。让你从好的开发者变成伟大的开发者的,是编程的激情,尤其是学习的激情。
然而,还有一个技能更有价值,那就是沟通。
许多时候这一点被低估了,可如果不使用沟通技能的话你一天都过不了。而且,你要沟通的还不仅仅是客户。还包括你的同事,分享你的想法,用不侮辱人的方式辩论,说服你的老板应该采取你的方式。此外,还有还要汇报状态更新,解释发生的事情。你每天都要沟通,而且要沟通得当,如果你要成为伟大的开发者的话。
这就是我要发文章谈演讲这个似乎不相干话题的原因。我认为从中你可以学到很多东西,如果你对此感兴趣的话你可以继续学习coursera的课程(英文)。