《黑客与画家》书摘

        花了许些天的时间把《黑客与画家》这本书看完了,觉得书本中作者许多观点都很精辟,做了些笔记,也都摘录了下来,放在这里存个档。好知识、经验值得去分 享,利人利已,何乐不为?喜欢上的朋友也可以通过他的语录快速的了解这本书的内容。此书是由美国的硅谷创业之父Paul Graham所写文集,赞美的话就不多说了,Go aHead!

        1. 黑客行为必须包含3个特点:好玩、高智商、探索精神。只有其行为同时满足这3个标准,才能被称之为黑客。

        2. 任何事情都应该亲手尝试。

        3. 信息应该全部免费。

        4. 不信任权威,提倡去中心化。

        5. 判断一名黑客的水平应该看他的技术能力,而不是他的学历、年龄或地位等其它标准。

        6. 你可以用计算机创造美和艺术。

        7. 计算机使生活更美好

        8. 黑客价值观的核心原则可以概况成这样几点:分享、开放、民主、计算机的自由使用、进步。

        9. “黑客伦理”的一个必然推论就是,黑客不服从管教,具有判逆精神。

        10. 真正的黑客致力于改变世界,让世界运转的更好。

        11. 黑客只是怀有一门特殊手艺,有创造天赋的普通人。

        12. 黑客是指专家级的程序员。

        13. 优秀的黑客养成了一种质疑一切的习惯。

        14. 我认为,行为怪异的人和愤世嫉俗的人比普通人更可能成为黑客。

        15. 任何一种艺术,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入。

        16. 你马上就能联想到比尔 盖茨,他不善于社交是出了名的,但是他发现了正确的答案。

        17. 我觉得最难的部分,其实是能否意识到你该做什么。

        18. 我们认定无法解决的问题,事实上完全可以解决。

        19. 黑客与画家的共同之处,在于他们都是创作者。

        20. 建筑师决定做什么,工程师想出怎么做。

        21. 黑客的最高境界是创造规格。

        22. 塞缪尔 约翰逊说过,人们对一个作家的评价,需要100年才能达成一致。

        23. 黑客搞懂“计算机理论”的必要性,与画家搞懂顔料化学成分的必要性差不多大。在理论上,你需要知道如何计算机“时间复杂度”和“空间复杂度”。如果你需要写一个解析器,可能还需要了解状态机的概念。

        24. 编程语言首要的特性应该是允许动态扩展。

        25. 大学和实验室强迫黑客成为科学家,企业强近黑客成为工程师。

        26. 因为如果你不爱一件事,你不可能把它做的真正优秀,要是你很热爱编程,你就不可避免地会开发你自已的项目。

        27. 编程语言灵活性的关键还不在这里,而在于这种语言应该非常抽象。

        28. 坚持一丝不苟,就能取得优秀的成果。

        29. 黑客就像画家,工作起来是有心理周期的。有时候,你有了一个令人兴奋的新项目,你会愿意为它一天工作16个小时。等过了这一阵,你又会觉得百无聊赖,对所有事都提不起兴趣。

        30. 事实表明,从他人的角度思考问题正是成功的奥秘所在。

        31. 程序写出来是给人看的,附带能在机器上运行。————《计算机程序的构构与解释》卷首语

        32. 历史的常态似乎就是,任何一个年代的人们,都会对一些荒谬的东西深信不疑。他们的信念还很坚定,只要有人稍微表示一点怀疑,就会惹来大麻烦。

        我们这个时代是否有所不同?只要读过一点历史,你就知道答案几乎确定无疑,就是“没有不同”。

        33. 如果别人告诉你应该相信什么,你就真的相信了,那么你就会和别人一样犯下同样的错误。

        34. 想要做出优秀作品,你需要一个什么问题都能思考的大脑。尤其是那些似乎不应该思考的问题,你的大脑也要养成思考他们的习惯。

        35. 做一个异端是有回报的,不仅是在科学领域。在任何有竞争的地方,只要你能看到别人看不到或不敢看的东西,你就有很大的优势。

        36. 自由思考比畅所欲言更重要。如果你感到一定要跟那些人辩个明白,绝不咽下这口气,一定要把话说清楚,结果很可能是从此你再也无法自由理性的思考了。

        37. 守口如瓶,笑脸相迎。

        38. 能够一起谈论“异端邪说”并且不会因此气急败坏的人,就是你最应该认识的朋友。

        39. 小时候,每个人都会鼓励你不断成长,变成一个心智成成熟、不再耍小孩脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。

        40. 当今,许多顶尖黑客使用的语言与C和C++大相径庭:Perl, Rython, 甚至还有Lisp。

        41. 复合型BUG有一个子类型:两个BUG是互相弥补的,好比“负负得正”,软件反而能正常运行。这种BUG可能才是最难发现的BUG,当你修正其中的一个 BUG,另一个BUG才会暴露出来。这时对你来说,你会觉得刚才修正错了,因为那是你最后修改的地方,你就怀疑自已在那里做错了,但其实你是对的。

        42. 坐下来写东西的时候,一半的构思是写作的时候产生的。

        43. 在本质上,软件项目的人力与工期是无法交换的,当项目进度落 后时,光增加人力到项目中,并不会加快进度,反而有可能使进度更加延后。

        44. 现在,善于写软件的那类人更喜欢使用Linux或者FreeBSD操作系统。

        45. 如果我是你,我甚至不会考虑使用JavaScript,viaweb就没有用。我在网上遇到的大部分JavaScript都是不必要的,其中很多都不能 用。如果有一天你可以在手机(或者PDA,甚至烤面包机上)浏览网页,天知道这些设备会不会支持JavaScript。

        46. 如果你不打算自已动手设计和开发,那就不要创业。

        47. 如果你想致富,应该怎么做?我认为最好的方法就是自已创业或者加入创业公司。

        48. 你只需要做出别人需要的东西就可以了。

        49. 这就是为什么如些之多的最优秀的程序员都是自由主义者的原因。我们这个世界,你向下沉沦或者向上奋进都取决于你自已。不能把原因推给外界。

        50. 大公司最大的困扰就是无法准确的衡量每个员工的贡献。

        51. 要致富,你需要两样东西:可测量性和可放大性。

        52. 如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。

        53. 乔布斯曾经说过,创业的成败取决于最早加入公司的那十个人。

        54. 俗话说的好,最好的防御就是进攻。

        55. 但创业是有一些潜规则的,其中一条就是很多事情由不得你。

        56. 你能吃多少苦,我们就能吃多少苦。

        57. 另一条潜规则是,创业的付出与回报虽然总体上是成比例的,但是在个体上是不成比例的。

        58. 你必须时刻牢记的最基本的原则就是,创造人们需要的东西,就是创造财富。

        59. 进入社会后,你不能总是靠父母养活。如果你需要什么东西。要么你自已做出来,要么做其它东西与需要的人交换金钱,再用金钱去买你想要的东西。

        60. 每个人的技能不同,导致收入不同,这才是贫富分化的主要原因。

        61. 好设计是简单的设计

              好设计是永不过时的设计

              好设计是解决主要问题的设计

              好设计是启发性的设计

              好设计通常是有点趣味性的设计

              好设计是艰苦的设计

              好设计是看似容易的设计

              好设计是对称的设计

              好设计是模仿大自然的设计

              好设计是一种再设计

              好设计是一种能够复制的设计

              好设计常常是奇特的设计

              好设计是成批出现的

              好设计常常是大胆的设计

        62. 始终拥有幽默感就代表你对厄运一笑了之,而丧失幽默感则表示你被厄运深深伤到。

        63. 练习的作用也许是训练你把刻意为之的事情变成一种自觉的行为。

        64. 等到你对一件事情产生热情的时候,就不会满足于模仿了,你的品味就进入到了第二阶段,开始自觉的进行原创。

        65. 爱因斯坦的相对论触犯了许多同时代的物理学家,许多年后还没有被完全接受,法国物理学家直到20世纪50年代才接受相对论。

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

        67. 语言设计者之间的最大分歧也许就在于,有些人认为编程语言应该防止程序员干蠢事,别一些人则认为程序员应该可以用编程语言干一切他们想干的事。Java语言是前一个阵营的代表,Perl语言则是后一个阵营的代表。

        68. 我发现冗余的代码会导致更多冗余的代码,一件垃圾会产生更多的垃圾。

        69. 应用软件运行速度提升的关键在于有一个好的性能分析器帮助指导程序开发。

        70. 到了一定年龄后,程序员极少主动更换自已的编程语言。不管习惯使用的是哪一种语言,他们往往认为这种语言已经足够好了。

        71. 通过归纳法我们就会知道,唯一洞悉所有语言优劣的人必然是懂得最强大的那种语言的人。

        72. Lisp很值得学习,你掌握它以后,会感到它给你带来极大的启发。这会大大提高你的编程水平,使你成为一个更好的程序员,尽管在实际工作中极少用到Lisp.

        73. 我发现Lisp有一个功能,其它四种语言都没有。我觉得,没有宏的话,那些语言怎么编程呢?

        74. 认为所有语言都一样的看法的缺点是自欺欺人,但优点是使许多事情变得简单。

        75. 编程语言的所谓“业界最佳实践”,实际上不会让你变成最佳,只会让你变得很平常。

        76. 书店则是程序员发现和学习新语言的最重要的产所之一。

        77. 举例来说,Hello-world本应该是一个很简单的程序,但是在Java语言中却要写上一大堆东西,这本身差不多就可以说明Java语言设计的有问题了。

        78. 你应该敞开胸怀,欢迎这种揣测了。

        79. 所谓一次性程序,就是指为了完成某些很简单的临时性任务而在很短的时间内写出来的程序。

        80. 一种具有命令行界面,可以实时反馈的语言就具有互动性。

        81. 编程时提高代码运行速度的关键是使用好的性能分析器。

        82. 人们真正注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。

        83. 著名散文家E.B 怀特说过,“最好的文字来自不停的修改”。

        84. 你必须对解决难题的可能性保持乐观态度,同时对当前解法的合理性保持怀疑。

        85. 但是我觉得任何一个领域的最佳作品都不可能由对用户的言听计从的人做出来。

        86. 我觉得,除非设定用户,否则一种设计的好坏根本无从谈起。

        87. 布鲁克斯假说:程序员一天写出的代码行数是一个常量,与他用的什么语言无关。

        好吧,终于敲完了,.............. 该吃饭的吃饭去咯。。

转载于:https://www.cnblogs.com/ojumpin/archive/2011/06/24/2089216.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值