黑客与画家
黑客与画家 #读书笔记
1 为什么书呆子不受欢迎
智力在大家心里的分量远远不如相貌、魅力和运动能力的分量重。
(在职场里第一是关系,剩下是什么呢?)
我真正想要的是,能够设计奇妙的火箭、写出漂亮的文章、理解编程原理。一句话,我想要做伟大的事情。
我想做真正单位里的高手
“任何一种艺术,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入。”-阿尔伯蒂
事实上,大多数“会画”的人,本身就很喜欢画画,将许许多多时间投入其中,这就是为什么他们擅长画画的原因。同样的,受欢迎也不是天生的,而是要你自己做出来的。
当你所做的事情能产生真实的效果,那就不仅仅是好玩而已了,发现正确的答案就开始变得重要了,这正是书呆子的优势所在。
我感觉这里描写的学校和我身处的体制内有点相似,人为制造出来的,有时候远离真实世界十万八千里.都是圈内人的自以为是的自嗨.
2 黑客与画家
- 黑客与画家的共同之处,在于他们都是创作者。与作曲家、建筑师、作家一样,黑客和画家都是试图创作出优秀的作品。
- 唯一有效的外部考核就是时间。经过岁月的洗礼,优美的东西生存发展的机会更大,丑陋的东西往往会被淘汰。不幸的是,这种考核需要的时间可能比一个人的生命还要长。塞缪尔·约翰逊说过,人们对一个作家的评价,需要100年才能达成一致。你必须先等他的那些有影响力的朋友都死了,然后再等他的追随者都死了,才能对他有一个公正的评价。
- 黑客对计算机基础理论需要知道些什么呢?
- 黑客搞懂“计算理论”(theory of computation)的必要性,与画家搞懂颜料化学成分的必要性差不多大。一般来说,在理论上,你需要知道如何计算“时间复杂度”和“空间复杂度”(time and spacecomplexity);如果你要写一个解析器,可能还需要知道状态机(statemachine)的概念;除此以外,并不需要知道特别多的理论。这些可比画家必须记住的颜料成分少很多。
- 我发现,黑客新想法的最佳来源,并非那些名字里有“计算机”三个字的理论领域,而是来自于其他创作领域。与其到“计算理论”领域寻找创意,你还不如在绘画中寻找创意。
- 因为如果你不爱一件事,你不可能把它做得真正优秀,要是你很热爱编程,你就不可避免地会开发你自己的项目。
- 应该如何学习编程。画家学习绘画的方法主要是动手去画,黑客学习编程的方法也理应如此。大多数黑客不是通过大学课程学会编程的,他们从实践中学习,
- 也许对于黑客来说,采取像画家这样的做法很有好处:应该定期地从头开始,而不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法都以修订版的形式包括进去。
- 黑客可以通过观看优秀的程序学会编程,不是看它们的执行结果,而是看它们的源代码。
- 要懂得换位思考
3 不能说的话-这一章节讲的是为什么要思考禁忌,有什么好处?
- 大多数的斗争,不管它们实际上争的是什么,都会以思想斗争的形式表现出来。16世纪的英国宗教改革(English Reformation)本质上是为了争夺权力和财富,但是却表现为英国人要求自主的精神与罗马教廷腐化的控制之间的斗争。思想斗争更容易争取支持者。不管哪一方获胜,他们所代表的思想也就被认为获得了胜利,仿佛上帝通过选择胜利的一方表示了自己的倾向。我并不是说斗争从来就与思想无关,而是要强调,不管实际上是否有思想斗争,斗争总是会以思想斗争的形式表现出来。正如刚刚过气的时尚并非一点儿也不时尚,失败一方的思想其实也并非一无是处。比如希特勒就很推崇写实派艺术(representational art),但是希特勒是失败者,所以写实派一直得不到认同,直到近年才开始复兴。
- 有人可能会问,为什么要去找出“不能说的话”?为什么要故意打探那些龌龊的、见不得人的思想观点?你明知那里有挡住去路的石头,为什么还要把它们翻过来看个究竟呢?
- 纯粹的好奇心。
- 再次,我这样做,是因为这是很好的脑力训练。想要做出优秀作品,你需要一个什么问题都能思考的大脑。尤其是那些似乎不应该思考的问题,你的大脑也要养成思考它们的习惯。
- 优秀作品往往来自于其他人忽视的想法,而最被忽视的想法就是那些被禁止的思想观点。
- 举例来说,自然选择学说(natural selection)是一种伟大的理论。它的观点非常简单,你会奇怪为什么以前没有人想到。这是因为它与传统观点的差异实在太明显了,可能引发轩然大波,所以其他人不敢去想。达尔文也因此不得不非常小心,他只想当一个生物学家,不想陷入宗教争论。
- 举例来说,自然选择学说(natural selection)是一种伟大的理论。它的观点非常简单,你会奇怪为什么以前没有人想到。这是因为它与传统观点的差异实在太明显了,可能引发轩然大波,所以其他人不敢去想。达尔文也因此不得不非常小心,他只想当一个生物学家,不想陷入宗教争论。
- 换言之,一个好的科学家,并不仅仅是避开传统观点,还要努力打破传统观点。科学家就是要自找麻烦。这应该是任何学者的研究方式
- 智力越高的人,越愿意去思考那些惊世骇俗的思想观点。这不仅仅因为聪明人本身很积极地寻找传统观念的漏洞,还因为传统观念对他们的束缚力很小,很容易摆脱。从他们的衣着上你就可以看出这一点:不受传统观念束缚的人,往往也不会穿流行的衣服。
- 做一个异端是有回报的,不仅是在科学领域,在任何有竞争的地方,只要你能看到别人看不到或不敢看的东西,你就有很大的优势。
- 训练自己去想那些不能想的事情,你获得的好处会超过所得到的想法本身。这就像田径比赛之前要做一些伸展运动,把肢体活动开。你要把身体伸展到极限,远超过跑步所需要的那种程度,这样一来,比赛的时候才能跑得更快。同样,如果你能“远远地”跳出传统思维,提出让别人一听就脑袋轰一声炸开的惊人观点,那么你就在“小小地”跳出传统思维方面不会有任何困难。要知道,人们把后面的这种情况称为“创新”。
- 一旦发现了“不能说的话”,下一步怎么办?我的建议就是别说,至少也要挑选合适的场合再说,只打那些值得打的仗。
- “搏击俱乐部”的第一条规则,就是不要提到搏击俱乐部。
- 你的策略,简单说,就是不赞同这个时代的任何一种歇斯底里,但是又不明确告诉别人到底不赞同哪一种歇斯底里。
- 回答是“我还没想好”。
- 所有反击方法之中,最好的一种可能就是幽默。狂热分子都有一个共同点:缺乏幽默感。他们无法平静地对待笑话。
- 如果你的数学不好,那么你自己会知道,因为考试的时候你得不出正确答案。但是,如果你的思想很保守,你自己不会知道,而且你很可能还会持有相反的看法。
- 所谓“流行”(传统观念也是一种流行),本质上就是自己看不见自己的样子。否则就不会有流行了。对于那些被流行抓住的人,流行就不再是流行,而是应该要做的正确事情。只有保持一定的距离才能观察到人们观念的变化,发现流行(也就是人们自以为正确的事情)到底是什么。
- 时间就是一种产生距离的简单方法。实际上,新的流行让旧的流行更容易被观察到,因为对比之下,旧的流行会显得很荒唐。从钟摆波动的一端望去,上一个周期的端点就显得特别遥远。
- 不过,想要摆脱你自己的时代的流行,需要一点自觉。没有了时间所产生的距离,你不得不自己创造距离。你不要让自己成为人群的一分子,而要尽可能地远离人群,观察正在发生的事情,特别注意那些被压制的思想观点。比如,有些软件提供“互联网过滤”功能(Web filter),防止孩子和雇员看到色情的、暴力的、宣扬仇恨的网站。什么才算是色情和暴力?什么叫做“宣扬仇恨”?
- 如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。问自己,什么话是我不能说的?为什么?
感想
没想到这一话揭露出来的事情是哲学层面,我现在理解了他在说什么.
为什么要理解不能说的话?因为这当中蕴含了答案和更好的办法.
为什么人无法理解自己是不开明的?因为身在潮流中.
有什么办法能清醒吗?时间是一个,距离是一个.
第二部分 黑客如何工作以及影响世界
4 良好的坏习惯
- 对于程序员来说,“黑客”这个词的字面意思主要就是“精通”,也就是他可以随心所欲地支配计算机。
- 丑陋的做法与聪明的做法存在一个共同点,那就是都不符合常规。
- 不服从管教,其实是黑客成为优秀程序员的原因之一。%%要一直想着不同的办法解决问题才有创新啊%%
- 思想自由,指的是自由思考以及表达这种思考的权利。它是《世界人权宣言》(Universal Declaration of Human Rights)第19条规定的一种人权。
- 公民自由并不仅仅是社会制度的装饰品,或者一种很古老的传统,它能使得国家富强。如果将人均国民生产总值与公民自由的关系画成图,你会发现它们之间呈很清楚的正相关关系。公民自由真的是国家富强的原因,而不是结果吗?我认为是的。在我看来,一个人们拥有言论自由和行动自由的社会,往往最有可能采纳最优方案,而不是采纳最有权势的人提出的方案。专制国家会变成腐败国家,腐败国家会变成贫穷国家,贫穷国家会变成弱小国家。经济学里有一条拉弗曲线,认为随着税率的上升,税收收入会先增加后减少。我认为政府的力量也是如此,随着对公民自由的限制不断加强,政府的力量会先增大后减小。
5 另一条路
6 如何创造财富
- 如果你想致富,应该怎么做?我认为最好的办法就是自己创业,或者加入创业公司。
- 创业公司其实就是解决了某个技术难题的小公司。
- 往往只有在创业公司里,你才能得到一种宝贵的工作环境,就叫作“不受干扰”。
- 如果你全神贯注,每小时的产出可以提高3倍。1如果再把大公司里令人讨厌的中间管理层(他们经常以主管的身份妨碍你的工作)除去,你的效率可以再提高2倍。还有一个可以提高效率的地方:你不用再完成强行指派给你的工作,可以根据自己的愿望,做出最能发挥你聪明才智的成果。假定这会把工作效率再提高3倍。将这些因子放在一起做乘法,你的工作效率将是在公司时的36倍。
- 通过创造有价值的东西而致富,这种方法的优势不仅仅在于它是合法的(许多其他方法如今都是不合法的),还在于它更简单,你只需要做出别人需要的东西就可以了。
- 财富与金钱并不是同义词。
- 财富是最基本的东西。我们需要的东西就是财富,食品、服装、住房、汽车、生活用品以及外出旅行等都是财富。即使你没有钱,你也能拥有财富。如果有一台魔法机器,能够按照你的命令变出汽车,为你洗衣做饭,提供其他你想要的东西,那么你就不需要钱了。要是你身处南极洲内陆,再多的钱对你也是无用的,因为没有东西可买,你真正需要的是财富。财富才是你的目标,金钱不是。
- 财富并不是零和博弈.
- 假设你拥有一辆老爷车,你可以不去管它,在家中悠闲度日,也可以自己动手把它修葺一新。这样做的话,你就创造了财富。世界上因为多了一辆修葺一新的车,财富就变得更多了一点,对你而言尤其是如此。这可不是隐喻的用法,如果你把车卖了,你得到的卖车款就比以前更多。通过修理一辆老爷车,你使得自己更富有。与此同时,你也并没有使得任何人更贫穷。
- 大多数因为创造财富而发财的人是通过开发新技术而实现的。
- 在实际操作中,这就意味着我们故意选择那些很困难的技术问题。假定软件有两个候选的新功能,它们创造的商业价值完全相同,那么我们总是选择较困难的那个功能。不是因为这个功能能带来更多的收入,而是因为它比较难。我们很乐于迫使那些又大又慢的竞争对手跟着我们一起走进沼泽地。创业公司就像游击队一样,喜欢选择不易生存的深山老林作为根据地,政府的正规军无法追到那种地方。我还记得创业初期我们是多么筋疲力尽,整天都为一些可怕的技术难题绞尽脑汁。但是,我还是感到相当高兴,因为那些问题连我们都觉得这么困难,那么竞争对手就更会认为是不可能解决的。
- 最好的防御就是进攻。如果你开发出来的技术是竞争对手难以复制的,那就够了,你不需要依靠其他防御手段了。一开始就选择较难的问题,此后的各种决策都选择较难的那个选项。
- 总的来说,这也是很好的处事原则。如果你有两个选择,就选较难的那个。如果你要选择是坐在家里看电视,还是外出跑步,那就出去跑步吧。这个方法有效的原因可能是遇到一难一易的两个选择时,往往出于懒惰的缘故,你会选择较容易的那个选项。在意识深处,你其实知道不懒惰的做法会带来更好的结果,这个方法只是迫使你接受这一点。
- 创造财富不是致富的唯一方法。在人类的历史长河中,它甚至不是最常见的方法。就在几个世纪前,财富的主要来源还是矿石、奴隶、农奴、土地和牲畜,而快速获得财富的方法只有继承、婚姻、征服和没收,所以很自然地,财富的名声不好。
7 关注贫富分化
- 财富与金钱是两个概念。金钱只是用来交易财富的一种手段,财富才是有价值的东西,我们购买的商品和服务都属于财富。
- 财富从何而来?人类创造出来的。
- 我们大多数人在为其他人创造财富,然后用创造出来的财富交换金钱,再用金钱交换我们需要的另一种财富。
- 我要如何创造出财富呢?继续做翻译?做出自媒体?我想写个网站,让大家看热血江湖
- 在大部分的人类历史中,积累财富最常见的方法其实是偷窃。游牧社会是偷别人的牲口,农业社会是征税(和平时期)和直接掠夺(战争时期)。
- 在控制程度更高的社会,统治者和官僚阶层用税收代替直接充公。但是,根本的一点并没有变,那就是致富的方法不是创造财富,而是以统治者的强权进行搜刮掠夺。
- 技术在加大收入差距的同时,缩小了大部分其他差距。
- 如果得不到报酬,人们是否愿意创造财富?唯一的可能就是,工作必须能提供乐趣。会有人愿意免费写一个操作系统,但是他们不愿意免费为你安装、提供电话支持、进行客户培训等。即使是最先进的高科技公司,也有至少90%的工作没有乐趣、令人生厌。
- 一个社会需要有富人,这主要不是因为你需要富人的支出创造就业机会,而是因为他们在致富过程中做出的事情。
- 不是说如果你让亨利·福特致富,他就会在下一场宴会雇用你当服务员,而是说如果你让他致富,他就会造出一台拖拉机,使你不再需要使用马匹耕田了。
8 防止垃圾邮件的一种方法
9 设计者的品味
- 哥白尼不认同托勒密的体系,一个极其重要的原因是,他觉得托勒密提出的偏心等距点(equant)毫无美感……——托马斯·库恩,《哥白尼革命》
- 我们所有人都受到凯利·约翰逊1的影响,狂热地相信外观优美的飞机一定会飞得同样漂亮。——本·里奇,《臭鼬计划》
- 美感是第一道关卡。丑陋的数学在世界上无法生存。——G. H. 哈代,《一个数学家的辩白》
- 我与一个在MIT教书的朋友交谈。他的研究领域很热门,每年申请他的研究生的人多得让他应付不过来。“很多人看上去很聪明,”他说,“但是我不知道他们的品味如何。”
- 好设计是简单的设计。
- 从数学领域到绘画领域,你都可以听到这种说法。在数学中,它意味着简短的证明往往是更好的证明。特别是对于数学公理来说,少即是多。在编程中,这种说法也基本适用。对于建筑师和设计者,它意味着美依赖于一些精心选择的结构性元素,而不依赖于表面装饰品的堆砌。(加入装饰品本身并不是坏事,只有当它被用来掩盖结构的苍白时,才变成了一件坏事。)绘画也与此类似,认真观察的、非常有代表性的静物作品往往要比表面极尽华美、实质上只是无意义重复的“巨作”(比如再现非常复杂的花边的绘画作品)更有价值。在写作上,这种说法意味着只说必须要说的话,并且说得简短。
- 这样强调简单似乎有点奇怪。有人会说,简单就是事物本来的样子,装饰反而意味着更多的工作。但是,当人们自己从事创造性工作的时候,好像就会忘了保持简单这个原则。刚开始写作的人喜欢用浮夸的语调,根本不像他们平时说话的样子。设计师喜欢用波浪式卷曲表现他们的艺术感。画家发现自己都是表现主义者(expressionist)。这些装饰都是花架子,在作家的长句、画家“表现主义”的画笔之下,根本就是空洞无物,表面的装饰掩盖了内部的空虚,太可怕了。
- 当你被迫把东西做得很简单时,你就被迫直接面对真正的问题。当你不能用表面的装饰交差时,你就不得不做好真正的本质部分。
- 好设计是永不过时的设计。
- 只要没有错误,每一个数学证明都是永不过时的。所以,数学家哈代才会说:“丑陋的数学在世界上无法生存。”他的意思与飞机设计师凯利·约翰逊的观点是一样的:如果解决方法是丑陋的,那就肯定还有更好的解决方法,只是还没有发现而已。
- 以永不过时作为目标是一种帮助自己找到最佳答案的方法:如果你不愿别人的答案取代你的答案,你就只好自己给出最佳答案。
- 以永不过时作为目标也是一种避开时代风潮的影响的方法。“风潮”这个词,从字面上就可以看出,它就像一阵风似的,随着时间经常改变。如果一件东西长盛不衰,那么它的吸引力一定来自本身的魅力,而不是来自风潮的影响。
- 说来奇怪,如果你希望自己的作品对未来的人们有吸引力,方法之一就是让你的作品对上几代人有吸引力。我们很难猜想未来是什么样子,但是可以肯定,未来的人们不会在乎今天流行的风潮,这一点与上几代人是相同的。所以,如果你的作品对今天的人们以及1500年的人都有吸引力,那么它极有可能也会吸引2500年的人。
- 好设计是解决主要问题的设计。
- 许多坏设计做得很辛苦,但是从一开始方向就错了。20世纪中期,有一股使用无衬线(sans-serif)字体的潮流。这一类字体接近于纯手写的样式,但是它无助于解决最主要的问题。印刷出来的文字首先应该是易于辨认的,所以能够清晰地分辨字母就是最主要的问题。
- 历史上,物理学的主要难题曾经一度是如何诠释经典著作,后来逐渐变成对可观测到的行为进行预测,这种转变使得物理学的发展速度大大加快。
- 好设计是启发性的设计
- 好设计通常是有点趣味性的设计
- 有幽默感就代表你对厄运一笑了之,而丧失幽默感则表示你被厄运深深伤到。所以,强壮的标志(或者至少是特点)就是轻松面对自己的人生。充满自信的人常常像燕子一样,以一种居高临下的姿态轻盈地看待周围的一切
- 好的设计并非一定要有趣,但是很难想象完全无趣的设计会是好的设计。
- 好设计是艰苦的设计。
- 好设计是看似容易的设计
- 好设计是对称的设计。
- 好设计是模仿大自然的设计
- 好设计是模仿大自然的设计
- 好设计是能够复制的设计
- 好设计常常是奇特的设计
- 我在前文提到的好设计的大多数特点是可以培育出来的,但是我觉得“奇特”这个特点是无法培育的。你最多就是在它开始显现时不要把它扼杀掉。爱因斯坦并不想让相对论变得很奇特,他只想找出真理,是真理本身显得很奇特。
- 你最后发展出来的风格是自然而然形成的。“奇特”这个特点尤其如此,没有其他路可走。它就像连接大西洋和太平洋的“西北航道”,无数人希望找到这条捷径。16世纪的风格主义者、19世纪的浪漫主义者、一代代的美国高中生都在寻找,但就是找不到。唯一达到“奇特”的方法,就是追求做出好作品,完成之后再回过头看。
- 好设计是成批出现的
- 推动人才成批涌现的最大因素就是,让有天赋的人聚在一起,共同解决某个难题。互相激励比天赋更重要,达·芬奇之所以成为达·芬奇,主要原因不仅仅是他的天赋,更重要的是他生活在当时的佛罗伦萨,而不是米兰。今天,人类生活的流动性高得多,但是伟大的项目依然不成比例地集中在少数几个热点上:德国包豪斯建筑学院、“曼哈顿计划”、《纽约客》杂志、洛克希德公司的臭鼬工作室、施乐公司的帕洛阿尔托研究中心。在历史的任何时刻都有一些热点项目,一些团体在这些项目上做出伟大的成绩。如果你远离这些中心,几乎不可能单靠自己就取得伟大成果。在某种程度上,你个人最多可以对趋势产生一定的影响,但是你不可能决定趋势,实际上是趋势决定了你。(或许有人办得到,但是米兰的达·芬奇显然没有办到。)
- 好设计常常是大胆的设计
- 我觉得发现丑陋的东西要比你想象出一个优美的东西更容易。大多数做出优美成果的人好像只是为了修正他们眼中丑陋的东西。伟大成果的出现常常来源于某人看到一样东西后,心想我能做得比这更好。
- 单单是无法容忍丑陋的东西还不够,只有对这个领域非常熟悉,你才可能发现哪些地方可以动手改进。你必须锻炼自己,只有在成为某个领域的专家之后,你才会听到心里有一个细微的声音说:“这样解决太糟糕了!一定有更好的选择。”不要忽视这种声音,要培育它们。做出优秀作品的秘诀就是:非常严格的品味,再加上实现这种品味的能力。
第三部分 黑客的工具和工作方法
10 编程语言解析
11 一百年后的编程语言
12 拒绝平庸
14 梦寐以求的编程语言
- 一心让臣民行善的暴君可能是最专制的暴君。——C. S. 路易斯(1898—1963,英国小说家)
- 在开发软件的时候,我有一条规则:任何时候,代码都必须能够运行。如果你正在写的代码一个小时之后就可以看到运行结果,这好比让你看到不远处就是唾手可得的奖励,你因此会受到激励和鼓舞。
- “画作永远没有完工的一天,你只是不再画下去而已。”
- 士气也可以解释为什么很难为低端用户设计出优秀产品,因为优秀设计的前提是你自己必须喜欢这种产品,否则你不可能对设计有兴趣,更不要说士气高昂了。为了把产品设计好,你必须对自己说“哇,这个产品太棒了,我一定要设计好!”,而不是心想:“这种垃圾玩意,只有傻瓜才会喜欢,随便设计一下就行了。”
- 软件功能的增加并不必然带来质量的提高。有时候,更少的功能(弱)反而是更好的选择(强),因为这会使得软件的可用性提高。相比那些体积庞大、功能全面、较难上手的软件,一种功能有限但易于使用的软件可能对用户有更大的吸引力。