走进黑客的世界 - 《黑客与画家》读书笔记

走进黑客的世界 - 《黑客与画家》读书笔记_第1张图片

书名:《黑客与画家》

作者:Paul Graham 阮一峰 [译]

出版社:人民邮电出版社

推荐理由:跟随硅谷创业之父,走进黑客的世界

作者介绍: Paul Graham,Lisp专家,世界上首个互联网应用程序Viaweb开发人之一。创建的Viaweb公司后被雅虎收购,改名为Yahoo!Store。2005年创办YCombinator,开创了天使投资新模式,被《福布斯》杂志喻为“撼动硅谷的人”。目前为止其公司扶持的创业公司已有250余家,成功的超过80%。Graham是当之无愧的“硅谷创业之父”。

0. 前言
      这个月看的唯一 一本书 -《黑客与画家》,终于在今天看完了,这本书确实写的很棒,作者的很多观点都能与我们开发者产生共鸣,甚至有些是作者十年前的预测,到今天都应验了,不得不令人佩服。
      不知道从什么时候开始,黑客成了反社会的代名词,仿佛只要他坐在键盘前,就会有一种从事犯罪活动的魔力,可以操纵任何与网络相连的机器。其实这是我们的误解,真正的黑客应是致力于改变世界,让世界运转的更好的技术高手。

1. 为什么书呆子不受欢迎 
  ① 为什么聪明的小孩没有让自己变得受欢迎?有一种观点认为,其他小孩妒忌聪明学生,所以聪明的学生不可能受到欢迎。如果聪明真的令他人妒忌,这反而会招来女生,因为女生喜欢被其他男生妒忌的男生.

2. 黑客与画家 
  ① 格雷厄姆的创业哲学:搭建原型 -> 上线运营(别管bug) -> 收集反馈  -> 调整产品 -> 成长壮大
       ② 任何一门艺术,不管是否重要,如果你想要再该领域出类拔萃,就必须全身心投入。
       ③ 如果你不爱一件事,你不可能把它做得真正优秀,要是你热爱编程,你就不可避免地会开发你自己的项目

3. 不能说的话 
  ① 与笨蛋辩论,你就会成为笨蛋。

4. 良好的坏习惯 
  ① 黑客成功的秘籍,就是有着良好的坏习惯 - 打破常规。

5. 另一条路 
   ① 互联网软件与桌面软件比第一更方便,第二互联网软件可以很快发布一个版本,第三互联网软件可以再现大部分bug。
       ② 没有盗版是一种优势,但也是一个问题,一定数量的盗版对软件公司是有好处的。不管你的软件定价多少,有些用户永远都不会购买。如果这样的用户使用盗版,你并没有任何损失.事实上,你反而赚到了, 因为你的软件现在多了一个用户,市场影响力就更大了一些,而这个用户可能毕业以后就会出钱购买你的软件。
       ③ 许多创业公司的出现完全处于偶然,几个朋友在一起,白天都要上班或者上学,利用业余时间做出一个产品原型,如果这个东西看上去有市场,那么可能就会开公司,在这个雏形阶段,任何重大的阻碍都会把公司扼杀在摇篮中。
       ④ 什么是创业公司?  简单地说,就是可以让人更快速工作的地方,你不再是慢慢地积累50年的普通工资,而是要尽快地将这笔钱赚到手。

6. 如何创造财富 
  ① 三个原因使得我们对赚钱另眼相看: 第一,我们从小被误导的对财富的看法;第二,历史上积累财富的方式大多名声不好;第三,担心收入差距拉大将对社会产生不利影响.
       
7. 关注贫富分化 
  ①   导致贫富分化的主要原因: 每个人的技能不同,导致收入不同。 一个人的工作具有多少价值不是由政府决定的,而是由市场决定的。 在自由竞争的市场经济中,价格由买家的需求决定。

8. 防止垃圾邮件的一种方法 
  ① 对单个词语进行贝叶斯判断,就能很好的过滤掉大部分的垃圾邮件。

9. 设计者的品味 
   ①  好设计是一种再设计,很少有人一次就把事情做对。专家的做法是先完成一个早期原型,然后提出修改计划,最后把早期原型扔掉。
       ② 犯错误是很正常的事情。你不要把犯错看成灾难,要勇于承认、勇于改正。开源软件因为公开承认自己会有bug,反而使得代码的bug比较少。
       ③ 刚入门的新手不知不觉地模仿他人,遂渐熟练之后才开始创作原创性作品。最后他会意识到,把事情做对比原创更重要。等到你逐渐对一件事产生热情的时候,就不会满足于模仿了。你的品味就进入了第二阶段,开始自觉地进行原创。
       ④ 我觉得发现丑陋的东西要比你想象出一个优美的东西更容易。大多数做出优美成果的人好像只是为了修正他们眼中丑陋的东西。伟大成果的出现常常来源于某人看到一样东西后,心想我能做得比这更好。

10. 编程语言解析 
  ① 如果你长期使用某种语言,你就会慢慢按照这种语言的思维模式进行思考。所以,后来当你遇到其他任何一种有重大差异的语言,即使那种语言本身并没有任何不对的地方,你也会觉得它极其难用。缺乏经验的程序员对于各种语言优缺点的判断经常被这种心态误导。
       ② 如果你非常关注运行速度,那么最好使用接近机器的语言。大多数操作系统都是用C语言写的,这并非偶然。不过,硬件的运行速度越来越快了,所以使用C这样的低层次语言开发应用程序的必要性正在不断减少。

11. 一百年后的编程语言 
  ①  编程语言进化缓慢的原因在于它们并不是真正的技术。语言只是一种书写法,而程序则是一种严格符合规则的描述,以书面形式记录计算机应该如何解决你的问题。所以,编程语言的进化速度更像数学符号的进化速度,而不像真正的技术(比如交通或通信技术)的进化速度。数学符号的进化是缓慢的渐变式变化,而不是真正技术的那种跳跃式发展。
       ② 如果你想当一个黑客,应该学习哪些语言。建议从Python和Java入手,因为它们比较容易学。想当高级一点的黑客,还应该学习C和Perl。前者用来对付Unix系统,后者用来系统管理和开发CGI脚本。最后,真正非常严肃地把黑客作为人生目标的人,应该考虑学习Lisp。

12. 拒绝平庸 
  ① 大公司可以互相模仿,但是创业公司就不行。我觉得很多人没有意识到这一点,尤其是一些创业者,如果你掌管创业公司,最好做一些独特的事情,否则就会有麻烦。

13. 书呆子的复仇 
  ① 使用一种不常见的语言会出现的问题我想到了三个:你的程序可能无法很好地与使用其他语言写的程序协同工作;你可能找不到很多函数库;你可能不容易雇到程序员。
       ② 如果你创业的话,千万不要为了取悦风险投资商或潜在并购方而设计你的产品。让用户感到满意才是你的设计方向。只要赢得用户,其他事情就会接踵而来。如果没有用户,谁会关心你选择的“正统”技术是多么令人放心。

14. 梦寐以求的编程语言 
  ① 随着互联网软件的兴起,越来越多的程序主要不是受限于计算机的运算速度,而是受限于I/O的速度。加快I/O速度将是很值得做的一件事。
       ② 做出优秀成果的人,在做的过程中常常觉得自己做得不够好。其他人看到他们的成果觉得棒极了,而创造者本人看到的都是自己作品的缺陷。这种视角的差异并非偶然,因为只有对现状不满,才会造就杰出的成果。
       ③ 对语言规格做出改变就像撕绷带,当你感到痛苦的一瞬间,痛苦就已经成为了回忆。如果用户数量庞大,修改语言带来的痛苦就将持续很长时间。

15. 设计与研究 
  ① 因为优秀设计的前提是你自己必须喜欢这种产品,否则你不可能对设计有兴趣,更不要说士气高昂了。为了把产品设计好,你必须对自己说:“哇,这个产品太棒了,我一定要设计好!”而不是心想:“这种垃圾玩意,只有傻瓜才会喜欢,随便设计一下就行了。”
       ② 士气是设计的关键因素。如果你觉得画某样东西很乏味,那么你画出来的东西就会真的很乏味。比如,假设你必须画一幢建筑物,你决定从每一块砖头开始画起。你觉得自己可以坚持下去,但是画到一半的时候突然感到很厌倦,于是你就不再认真观察每块砖头并画出它们各自不同的特点,而是以一种机械重复的方式草草地把砖头画完了事。这样一来,你的作品效果就很差,甚至还不如一开始就不采用写实手法,只是若隐若现地暗示砖头的存在。
       ③ 设计的时候,一开始总是问:我为谁设计?他们需要什么?比如,优秀的建筑师不会先设计,然后强迫用户接受,而是先研究最终用户的需求,然后做出用户需要的设计。
       ④ 让用户满意并不等于迎合用户的一切要求。用户不了解所有可能的选择,也经常弄错自己真正想要的东西。做一个好的设计师就像做一个好医生一样。你不能头痛医头,脚痛医脚。病人告诉你症状,你必须找出他生病的真正原因,然后针对病因进行治疗。大多数优秀设计都是这样产生的,它们关注用户,并且以用户为中心。
       ⑤ 几乎所有的美术老师都会告诉你准确画出一个事物的方法,不是沿着轮廓慢慢一个部分、一个部分地把它画出来,因为这样的话各个部分的错误会累积起来,最终导致整幅画失真。你真正应该采用的方法是快速地用几根线画出一个大致准确的轮廓,然后再逐步地加工草稿。

你可能感兴趣的:(走进黑客的世界 - 《黑客与画家》读书笔记)