《黑客与画家》第二章文摘

 

为了配合论文研究性的主题,你很容易就把工作重点从开发优美的软件转移为开发一起丑陋的东西。

一般来说,理论上,你需要知道如何计算“时间复杂度”和“空间复杂度”,如果你要写一个解析器,可能还需要知道状态机的概念,除此之外,并不需要知道太多的理论。

我现在认为,大学里教给我的编程方法都是错的。你把整个程序想清楚的时间应该是在编写代码的同时,而不是在编写代码之前,这与作家,画家和建筑师的做法完全一样。

真正竞争软件设计的战场是新兴领域的市场,这里还没有人建立过防御工事,只要你能做出大胆的设计,右一个人或一批人同时负责设计和实现产品,你就能在这里战胜大公司。微软公司自己一开始就是这样走向成功的。苹果公司和惠普公司也是如此,我觉得几乎所有的创业公司都是这样取得成功的。

黑客如何才能做自己喜欢的事情,我认为问题的解决方法是一个几乎所有创业者这知道的方法:找一份养家糊口的“白天工作”。

我们面试程序员的时候,主要关注的事情就是业余时间他们写了什么软件,因为如果你不爱一件事情,你不可能把它做的真正优秀。要是你很热爱编程,你就不可避免的要开发自己的项目。

如果黑客只是一个负责实现领导意志的技术工人,职责就是根据规格书写代码,那么他其实与一个挖水沟的工人是一样的,从这头挖到那头,仅此而已。但是如果黑客是一个创作者,他从事的事就不是机械性的工作,他必须具备灵感。