《黑客与画家》笔记

《黑客与画家》笔记_第1张图片
《黑客与画家》Poul Graham


Poul Graham被誉为硅谷创业之父,他大学是在康奈尔大学主修哲学,研究生去了哈佛计算机系,主修人工智能,计算机博士毕业后,进入罗德岛设计学院学习绘画,后去佛罗伦萨美术学院继续学习绘画。学画期间,钱花完了,他决定先解决自己的收入问题,于是找到了自己的黑客兄弟Robert Morris(曾编写了历史上第一个蠕虫病毒“莫里斯蠕虫”)。当时赶上“互联网概念”的大好时段,整个资本市场都为它而疯狂,他决定搭建一个网店的软件,这个产品就是Viaweb,后被雅虎以4900万美元收购,改名为Yahoo!Store。离开公司后,他的生活顿时空闲了。他开始将自己对技术和创新的观点写成一系列的文章,发表在个人网站上。这些文章受到读者的好评和追捧,最受欢迎的那部分文章出版了一本书,取名为《黑客与画家》。后来,Graham在硅谷成立了Y Combinator(简称YC)公司,用于扶植创业公司。到目前为止,从YC公司毕业的创业公司共有200家,已经失败的不到20%,远低于90%的业内平均水平。这些公司成为了硅谷创业公司的主流,Graham也被誉为“硅谷创业之父”。

什么是“黑客”?1946年,麻省理工学院有一个学生团体叫做“铁路模型技术俱乐部”,他们把难题的解决方法成为hack。hack的字典解释是砍(木头),解决一个计算机难题就好像砍倒一颗大树,完成这种hack的过程就被称为hacking,而从事hacking的人就是hacker,也就是黑客。

黑客原本是正面意义的称呼,最能干的人会自豪地称自己为黑客。自由软件基金会创始人理查德▪斯托尔曼说:“出于兴趣而解决某个难题,不管它有没有用,这就是黑客。”在某种意义上,hacking与盗窃信息,信用卡欺诈或其他计算机犯罪联系在一起,这是“黑客”被当做计算机入侵者的原因。黑客行为必须包括三个特点:好玩、高智商、探索精神。史蒂文▪利维进一步将黑客的价值观总结为六条“黑客伦理(hacker ethic)”。

黑客伦理:
1)使用计算机以及所有有助于了解这个世界本质的事物都不应受到任何限制。任何事情都应该亲手尝试。
2)信息应该全部免费。
3)不信任权威,提倡去中心化。
4)判断一名黑客的水平应该看他的技术能力,而不是看他的学历、年龄或地位等其他标准。
5)你可以用计算机创造美和艺术。
6)计算机使生活更美好。

真正的黑客致力于改变世界,让世界运转的更好。和画家一样,黑客只是怀有一门特殊手艺、有创造天赋的普通人。而编程是一种艺术创作,黑客就是艺术家,开发软件与画家作画、雕塑家雕刻、建筑师涉及房屋并没有本质不同。

在计算机的世界里,黑客指的是专家程序员。编程语言就是程序员的思维方式。黑客与画家的共同之处,在于他们都是优秀的创作者。

黑客真正想做的是设计优美的软件。这需要良好的设计感,但你觉得你有“良好的设计感”,与你实际是否具有,不存在相关关系,甚至可能存在负相关。就像你觉得你会做某件事,当你真的去做的时候,却发现自己不太可能做得到。那么如何考核自己能做出优美的东西呢?答案是——时间,经过岁月的洗礼,优美的东西发展的机会更大,丑陋的东西往往会被淘汰。

作者说,你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前,这与作家、画家和建筑师的做法完全一样。(而在我学习编程的这段时间内,我也深深意识到只有动手敲代码才能真正的学会编程。)

当你排斥差异的时候,你不仅将失败的可能性排除在外,也将获得高利润的可能性排除在外。大部分公司不把设计软件的职责交给一个优秀的黑客,而是交给委员会。因为还害怕风险,不敢创新。所以,如果你的竞争优势是在软件设计方面,并且你的竞争对手是一家大公司,它大到由一群产品经理来设计软件,那么你的对手永远不会赶上你。只要你能做出大胆的设计,由一个人或一批人同时负责设计和实现产品,你就能在这里战胜大公司。(因此,创业一定要做别人没有做过,并且只有你能做的那些有价值的东西。)

很多黑客都会找一份“白天工作”来解决生计问题,然后在其余时间开发优美的软件,因为如果你不爱一件事,就不可能把它做得真正优秀,要是你很热爱编程,你就不可避免地会开发你自己的项目。

创作者的学习途径,一是在实践中学习,另一个学习的途径是通过临摹范例。一幅画是逐步完成的。而编程也是这样,如果你预先承认规格设计是不完美的,编程时,就可以根据需要当场修改规格,最终会有一个更好的结果。不要太早决定一个程序该怎么做,动态类型语言在这一点上就是赢家。优秀的软件对美有着狂热的追求,如果你查看优秀的软件,会发现那些没人会看的部分也是优美的。如果黑客是一个创作者,他必须具备灵感。时刻考虑用户的人性需要,才能做出伟大的产品,即“换位思考”。如何判断是否有这种能力呢?就是看他解释清楚的能力,如果你的面对外行人,你怎么向他解释?

如果你是一个黑客,并且梦想自己创业,可能会有两件事情让你望却步。一件是不懂管理,另一件是害怕竞争。其实,管理企业很简单,两点:做出用户喜欢的产品;保证开支小于收入。

Graham认为,如果你想致富,最好的办法就是自己创业,或是加入创业公司。创业公司必须是小公司。创业就像一个压缩过程,你的工作年份被压缩成短短几年。但是,如果该你想赚100万美元,就不得不忍受相当于100万美元的痛苦。如果创业那么轻松,所有人都去创业了。同时,运气也是一个重要因素。世界的财富并不是一张大饼,而是不断被创造出来了的,而被创造出来的东西才是财富,而金钱只是财富的一种表现形式。

工作就是在一个组织里,与许多人共同合作,做出某种人们需要的东西。而真正重要的是做出人们需要的东西,而不是加入某个公司。因此,做一个创造者,而不是一个维护者。在公司中,很难测量一个人的贡献,也就无法根据贡献给予收入。那就创建自己的公司吧。

要致富,需要两件东西:可测量性和可放大性。你的业绩必须是可测量的,你做出的决定能够产生巨大的效应,如CEO、电影主角,专业运动员等。Graham认为,任何一个通过自身努力而致富的个人,在他们身上应该都能同时发现可测量性和可方大性。但是收入和风险是对称的,有巨大的利益,必然有失败的可能。如果你有一分令人安全的工作,你不会致富,没有危险,几乎没有可放大性。但是如果你的能力足够强,你自然拥有足够处理风险的能力。(李笑来说,他到一个地方,就会深入思考一个问题:这里最需要什么?想好之后,就去做,后来都收益颇丰。他在新东方教学的时候,学校缺少作文老师,他就去教作文,结果成为了老师中收入最高的。当然这一切的前提都是建立在“实力”基础之上的。去变的优秀吧。)

公司越小,你就越能准确的估计每一个人的贡献。(我最近在想的就是先加入一家小公司,虽然会很累,但肯定可以学到更多的东西,毕竟什么都需要你干。最好找出色的人合作,因为他们工作和你的一起平均计算。乔布斯说过一句话:创业的成败取决于最早加入公司的那十个人。由此看来,实力是多么的重要!)

真正创业以后,你的竞争对手决定了你到底要吃多少苦。而他们做出的决定都是一样的:你能吃多少苦,我们就能吃多少苦。创业就像蚊子,要么赢得一切,要么彻底消失。保险的做法就是在早期卖掉自己的创业公司,只求数量较少但是更有把握的回报。但是出售一家成功的创业公司要比出售还处于早期阶段的创业公司更容易,即使会让他们付出多得多的价码。收购这件事最难的地方就是让买房真正拿出钱。对于买家来说,最强的收购动机就是看到竞争对手可能收购你;次强动机是,让他们担心如果现在不买你,你的高速成长将使未来的收购耗资巨大,甚至你本身可能变成一个他们的竞争对手。在这两种收购动机中,归根结底的因素都是用户数量用户数量就是判断公司表现好坏的指标。(可是现在人们什么都不缺,如何做出用户需要的东西呢?)

Graham认为,与下棋、画画、写小说一样,赚钱也是一门专门的技能。每个人创造财富的能力和欲望强烈程度都不一样,所以每个人创造财富的数量很不平等。一个大型上市公司CEO的收入大概是普通人的100倍。一个人工作具有多少价值不是由政府决定的,而是由市场决定的。(跟李笑来说的一样,这里最需要什么?)

一个社会需要富人,这主要不是因为你需要富人的支出创造就业机会,而是他们在致富过程中做出的事情。如果你让亨利福特致富,他就会造成一台拖拉机,这样你就不需要使用马匹耕田了。这其实是实现了双赢。

一名真正的创作者不仅应该技术过硬,还应当能使用技术做出优美的产品。怎样做出好的产品?

好的设计是简单的设计。比如写作,言简意赅肯定比浮夸的语调要好的多。

好的设计是永不过时的设计。很多大师的作品过了上千年依然是精品。

好的设计是解决主要问题的设计。简体语言淘汰了以前的繁体字就是一个例子。

好的设计是启发性的设计。简奥斯汀的作品几乎不带任何描述,让读者自己把一切想象出来。

好的设计是趣味性的设计。如希区柯克拍摄的电影。

好的设计是艰苦的设计。在绘画中,肖像画占最高地位,因为人太擅长观察脸了,所以肖像画家不得不加倍努力才能达到我们的要求。

好的设计是看似容易的设计。作家的文章读起来流畅自如,但是背后其实经过了反复的修改。

好的设计是对称的设计。写作,绘画,建筑中都大量出现。20世纪,不对称成了现代主义建筑的前提条件,即使如此,这些建筑也只是主轴上不对称,细节部分依然大量使用对称。

好的设计是模仿大自然的设计。无人机就像鸟一样。

好的设计是能够复制的设计。当你对一件事情产生热情的时候,就不会满足于模仿了。你的品味就进入了第二阶段,开始自觉地进行原创。

好的设计常常是奇特的设计。比如SR-71“黑鸟”超音速侦察机。

好的设计是成批出现的。比如15世纪的佛罗伦萨;现在的硅谷。之前,李笑来讲要和身边的人共同成长是提到,当年和他一起从新东方出来的那批人中很多取得成功。

好的设计是大胆的设计。今天的实验错误就是明天的新理论,如果你想做出伟大的新成果,那就不能对常识与真理不相吻合之处视而不见,反而应该特别注意才对。

Graham认为好的设计大多数特点是可以培育的,但是“奇特”这个特点是无法培育的。爱因斯坦并不想让相对论变的奇特,他只想找出真理,但是真理本身显得很奇特;米开朗琪罗没有想树立自己的风格,他只想画出好作品,结果不由自主地创造出了米开朗琪罗风格。你最后发展出来的风格是自然而然形成的。“奇特”这个特点尤其如此,没有其他路可走。

优秀作品的秘诀就是:非常严格的品味,再加上实现这种品味的能力。

Graham认为,Lisp语言是目前最强大的编程语言,但它没有得到广泛使用过的原因是因为编程语言不仅仅是技术,也是一种习惯性思维,非常难以改变。如果在不考虑其他因素的情况下,你不选择最强大的那种语言就是一件很愚蠢的事。当你的竞争对手被牢牢粘在那些很普通的语言上面,永远都追不上你使用的技术。Java是业界标准,使用它不会有错,但是人才市场上肯定有无数的Java程序员,即使为我打工的这批人都辞职了,我也能够轻易的找到替代者。(掌握核心技术真是特别关键。)一般来说,条件越苛刻的项目,强大编程语言就越能发挥作用。但是,无数的项目根本没有苛刻条件的限制。(盲目的学不常用的技术也有弊端,无法和其他语言写的程序协同工作,无法找到很多函数库,不容易雇到程序员。)如果一种语言写出的代码比另一种语言长三倍,这意味着你开发它耗费的时间也会多三倍。而且即使多雇人手,也无法缩短开发时间,因为当团队规模超过某个门槛时,再增加人手只会带来净流失。在一个高度竞争的市场,即使开发速度只相差两三倍,也足以使得你永远处在落后的位置(还是要有实力啊!)

“最好的文字来自不同的修改。”所有优秀的都知道这一点,它对软件开发也适用。设计一样东西,最重要的一点就是要经常“再设计”。为了做出优秀的设计,你必须贴近用户,始终寸步不离。士气也是设计的关键因素。设计意味着做出符合人类特点和需要的产品。但是,“人类”不仅包括用户,还包括设计师,所以设计工作本身也必须符合设计师的特点和需要。

PS:埃里克▪雷蒙德写过一片文章《如何成为一名黑客》。他建议从Python和Java入手,因为它们比较容易学。相当高级一点的黑客,还应该学习C和Perl。前者用来对付Unix系统,后者用来系统管理和开发CGI脚本。最后,真正非常严肃地吧黑客作为人生目标的人,应该考虑学习Lisp。

你可能感兴趣的:(《黑客与画家》笔记)