林龙祥、林龙生:黑客与画家
林龙祥、林龙生:黑客与画家的共同之处,在于他们都是创作者。
与其说优秀的软件设计师是工程师,还不如说是建筑师。建筑师决定做什么,工程师想出怎么做。
黑客的最高境界是创造规格。虽然看起来,做到这一点的最好方法就是先做出一个样品把规格实现了。
创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来。
我发现,黑客新想法的最佳来源,并非那些名字里有“计算机”三个字的理论领域,而是来自于其他创作领域。
大学和实验室强迫黑客成为科学家,企业强迫黑客成为工程师。
大部分公司不把设计软件的职责交给一个优秀的黑客,而是交给一个委员会,黑客的作用仅仅是实现那个委员会的设计。
大公司为了避免设计上的灾难,选择了减少设计结果的标准差。
大公司只要做到不太烂,就能赢。
你很难单单依靠软件设计就与大公司展开竞争。
真正竞争软件设计的战场是新兴领域的市场,这里还没有人建立过防御工事。只要你能做出大胆的设计,由一个人或一批人同时负责设计和实现产品,你就能在这里战胜大公司。
画家学习绘画的方法主要是动手去画,黑客学习编程的方法也理应如此。
即使上了大学,黑客学习编程依然主要通过自己写程序。
科学家就不会通过干活来学习科学,而是通过做实验和解题来学习。
有一件事情是可以借鉴的(至少可以确认),那就是应该如何学习编程。
黑客的出发点是原创,最终得到一个优美的结果;而科学家的出发点是别人优美的结果,最终得到原创性。
创作者另一个学习的途径是通过范例。
达·芬奇就像篮球巨星迈克尔·乔丹(Michael Jordan),每一球都一丝不苟,绝不降低对自己的要求。
坚持一丝不苟,就能取得优秀的成果。因为那些看不见的细节累加起来,就变得可见了。
正确的合作方法是将项目分割成严格定义的模块,每一个模块由一个人明确负责。
“换位思考”并不就意味着你要做自我牺牲。实际上,这是完全不同的两回事。了解别人对于事情的看法,并不代表你为他的利益服务。
判断一个人是否具备“换位思考”的能力有一个好方法,那就是看他怎样向没有技术背景的人解释技术问题。
在达·芬奇的年代,绘画并不是一件很酷的事情,达·芬奇用自己的工作推动绘画成为一种伟大的表达方式。同样,编程到底能够有多酷,取决于我们能够用这种新媒介做出怎样的工作。