黑客与画家:硅谷创业之父Paul Graham文集
保罗·格雷厄姆(Paul Graham)毕业于康奈尔大学,后在哈佛大学获得计算机科学博士学位,并在罗德岛设计学院和佛罗伦萨绘画艺术学院学习过绘画。 他是Lisp专家,世界上首个(1995年)互联网应用程序Viaweb开发人员之一。创建的Viaweb公司于1998年被雅虎收购,改名为Yahoo!Store。2005年创办Y Combinator,开创了天使投资新模式,被《福布斯》杂志喻为“撼动硅谷的人”。目前为止其公司扶持的创业公司已有250余家,成功的超过80%,被称为“硅谷创业之父”。他的个人网站是:http://www.paulgraham.com/。
01、关于黑客与入侵者
"黑客"hacker这个词,在20世纪60年代时被发明的,当时是代表计算机高手,是正面的称呼,带有敬意的,因为要完成一个hack,必然包含着高度的革新、独树一帜的风格、精湛技艺的。黑客在解决问题的过程中会产生精神愉悦或一种享受,他的行为是一种兴趣、一种探索,是伴随着精神追求的。本书中的黑客是指那些最优秀的程序员,致力于改变世界,让世界变得更好的那类人。而恶意入侵计算机系统的人被称为cracker"入侵者",与黑客最明显的区别是带有恶意或私利的。
黑客的6条伦理:
-
使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制。任何事情都应该亲手尝试。
-
所有信息都应该是自由的。
-
不信任权威,提倡去中心化。
-
判断一名黑客的技术水平应该看他的技术能力,而不是看他的学历、年龄或地位等其他标准。
-
你可以用计算机创造美和艺术。
-
计算机使生活更美好。
黑客价值观的核心原则:分享、开放、民主、计算机的自由使用、进步。
“黑客伦理”的一个推论:黑客不服从管教,具有叛逆精神。
02、为什么书呆子不受欢迎
- 受欢迎的学生把注意力和精力花在穿衣打扮、晚会活动上,而书呆子把注意力和精力花费在学习及探索新鲜事物上
- 受欢迎的学生擅长社交,而书呆子长期来不擅长表达和社交。
- 受欢迎的学生成绩没书呆子好,为了巩固他们圈子关系牢固,把书呆子当成他们共同的敌人,欺负书呆子来垫高自己,导致书呆子经常会受到排挤。
- 书呆子追求的是,如何让自己变得更聪明,探索更多有趣的事情。
03、黑客与画家
作者认为:黑客、程序猿,和画家、雕塑家、建筑师的工作一样,都是创作。编程语言就像是画家手中的画笔,就该是有弹性、灵活的;编程过程类似画画,不停的修改,正如“画作永远没有完工的一天”,而编程就是在不停的调试、运行。
黑客和画家共通之处:
- “打草稿”:写代码的同时,逐渐明确并完善架构及核心逻辑,而不是在写代码之前。
- 黑客应该像画家那样定期的从头开始创作,而不是无限期地创作同一个作品。
- 通过范例进行学习。
- 黑客应该像画家那样不能期望起初的设计是完美的,而是需要在创作的过程中不断进行修正。
- 要对美有狂热的追求。
- 工作起来是由心理周期的,有时你灵感爆发精力充沛,有时又会觉得百无聊赖。
- 多人协作时,需要合作,但是不要“合”得过头。
- 学会站在用户的角度思考问题。
04、趋势
通过技术探索、研究分析来捕捉未来发展趋势,用于创新设计出好的产品。
05、关于坏习惯
黑客通常不服从管教,是因为他们会为了满足智力上的好奇心做一些得罪人的事情。往往不服从管教是一个优秀程序员的特质。
06、颠覆性的创新
当年Web应用VS桌面应用,而Web应用完胜,在当时是颠覆性的创新。
07、创造财富
- 从经济学观点看,创业是将以极限强度工作4年换取低强度工作40年的财富报酬。你越努力忘我工作,效率越高,你的回报越丰厚。
- 运气成分,当你创造的产品有价值,但是是否可以赢得大量财富,有时候需要一些运气。正如比尔盖茨和他的DOS系统,当年比尔没有让IBM买断DOS系统而是采用授权的方式,使得微软得以获取到第一桶金。
- 金钱不等于财富。
- 财富总值是在不断增长的,而不是固定不变的,财富是创造出来的。
- 最可能明白财富是创造出来的人就是那些手工艺人,目前还存在的最大手工艺人群体是程序员。
- 公司的一切行为和目的都是为了盈利。
- 大公司会使得每个员工的贡献平均化。
- 要致富,你需要两样东西,可测量性和可放大性。相当现在的KPI和可复制/利性。
- 创业是有风险的,创业的付出与回报是成比的。
08、贫富分化
为什么赚钱的技能不被人们所认可呢?
-
从小缺少积累财富的教育,很多孩子认为财富是父母给的,而不知道财富是创造出来的。
-
历史上积累财富的方式大多名声不好,主要是偷窃和掠夺。
-
富人把赚钱当作一项技能。
财富与金钱是两个概念。金钱只是用来交易财富的一种手段,财富是人们创造出来的,是有价值的东西,我们购买的商品和服务都属于财富。
09、好的设计
- 好设计是简单的
- 永不过时的
- 解决主要问题的
- 具有启发性的
- 是有趣味性的
- 过程是艰苦的
- 是看似容易的
- 是对称的
- 是模仿大自然的
- 是一种再设计
- 是能够复制的
- 常常是奇特的
- 是成批出现的
- 常常是大胆的
10、一百年后的编程语言
那些内核最小、最干净的编程语言才会存在于进化的主干上。一种语言的内核设计得越小、越干净,它的生命力就越顽强。
11、拒绝平庸
如果你想当一个黑客,应该学习哪些语言。他建议从Python和Java入手,因为它们比较容易学。想当高级一点的黑客,还应该学习C和Perl。前者用来对付Unix系统,后者用来系统管理和开发CGI脚本。最后,真正非常严肃地把黑客作为人生目标的人,应该考虑学习Lisp:
Lisp很值得学习。你掌握它以后,会感到它给你带来的极大启发。这会大大提高你的编程水平,使你成为一个更好的程序员。
当你按照Java、Perl、Python、Ruby这样的顺序观察这些语言,你会发现一个有趣的结果。至少,如果你是一个Lisp黑客,你就看得出来,排在越后面的语言越像Lisp。Python语言模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能也一起模仿了。至于Ruby语言,如果回到1975年,你声称它是一种有着自己句法的Lisp方言,没有人会提出反对意见。编程语言现在的发展不过刚刚赶上1958年Lisp语言的水平。
12、梦寐以求的编程语言
- 干净简洁,容易理解。抽象程度高。
- 一次性程序:能短时间内完成编码任务。
- 内核小,但强大:丰富的函数库,高度独立。
- 运行效率高,运行速度快。
- 可再设计。
13、关于设计与研究
设计与研究的区别看来就在于,前者追求“好”(good),后者追求“新”(new)。优秀的设计不一定很“新”,但必须是“好”的;优秀的研究不一定很“好”,但必须是“新”的。我认为这两条道路最后会发生交叉:只有应用“新”的创意和理论,才会诞生超越前人的最佳设计;只有解决那些值得解决的难题(也就是“好”的难题),才会诞生最佳研究。所以,最终来说,设计和研究都通向同一个地方,只是前进的路线不同罢了。
- 设计的时候需要先做用户画像。
- 对目标用户深入分析。
- 尽快拿出原型,然后逐步迭代优化,持续推进。
14、编程永远没有完工的一天
画家之间甚至流传着一句谚语:“画作永远没有完工的一天,你只是不再画下去而已。” 程序员的代码也一样,永远没有完工的一天。
网友评论