在最近的一次访谈中,Joel Spolsky(StackOverflow的联合创始人)表示,一个新从事编程工作的小白需要学会3项技能:经济学、写作和C语言。乍一看,这三项技能除了C语言以外也许与程序员关系不是太大,但是经过深入挖掘后你就会发现这其中的奥妙。
Spolsky建议程序员学习经济学的原因是“programmers often don’t know that and consequently don’t understand how they add value to a business.”(程序员往往都不知道如何在软件产品中注入商业价值)。花一分钟时间想一想,我们是否经常都会听到设计师与开发员抱怨如噩梦般的客户 和他们不合理的需求?其实这样的客户肯定会存在,一个很容易被忽略的事实是开发者的主要作用就是为客户创造商业价值。只有理解到这一点才能够与客户建立良 好的合作关系。
此外,对经济学有一定了解能够帮助自由职业者更好地推销自己。当客户出现不合理的要求时,经济学能够帮助他们(普通的web开发者)体现出自己的价值,用一个成功的站点为客户带来商机。
Spolksy也建议程序员学习写作技能并练习沟通能力,因为“essentially, the most successful people are the ones who can explain their ideas the best.”(实际上,最成功的人就是能够最完美地表达出自己想法的人)。他说得没错!沟通是最重要也是常被忽视的一项技能。无论你是否是顶尖程序员,如 果你不能将你的想法正确地传达给团队中的其他成员,那这些想法都会变得毫无意义。
这并不仅仅适用于编程,日常生活中也是如此。作为一名编辑我不得不审阅大量的文章,只有清晰、有深度的文章才能更快地通过审核。
Spolsky的最后一项建议是学习C语言。当我听到这项建议后第一反应是“什么鬼?!”我明明能够使用拥有更优雅语法的JavaScript或者Ruby语言,为啥还要学习C语言?我可不想让我的程序爆炸。
如今的大多数程序员会学习一些高等级的语言—例如Python、Ruby或者Java,但是确对在这些语言中的代码的执行没有一个好的把控,导致编 程工作变得缓慢或者无法突破瓶颈。其实这就像建议一个想学习jQuery或者JavaScript框架的人停下脚步去学习这门技术的由来。花时间去学习所 在领域的基础知识,能够让你在正确的道路上走得更远(例如在调试程序时程序未按预期工作)。
您怎么看呢?换做是你,你会向新从事编程工作的小白提出哪三项建议?
文章转载自 开源中国社区[http://www.oschina.net]