美文网首页
《黑客与画家》-- 读书笔记

《黑客与画家》-- 读书笔记

作者: 四月不见 | 来源:发表于2018-11-06 15:07 被阅读19次

介绍:

作者(Paul Graham) 硅谷创业之父。

作者本身就是画家与黑客的双重职业的混合体。

本书目录:

笔记:

Paul Graham有一套完整的创业哲学,他的公式是:

1)搭建原型

2)上线运营(别管bug)

3)收集反馈

4)调整产品

5)成长壮大

首先,他鼓励创业公司快速发布产品,因为这样可以尽早知道一个创意是否可行。其次,他认为一定要特别关注用户需要什么,这样才有办法将一个坏项目转变成好项目。他说:“许多伟大的公司,一开始的时候做的都是与后来业务完全不同的事情。乔布斯创建苹果公司后的第一个计划是出售计算机零件,然后让用户自己组装,后来才变成开发苹果电脑。你需要倾听用户的声音,琢磨他们需要什么,然后就去做。”

出于兴趣而解决某个难题,不管它有没有用,这就是黑客。

黑客的价值观——六条“黑客伦理”:

  1. 使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制。任何事情都应该亲手尝试。

(Access to computers -- and anything that might teach you something about the way the world works -- should be unlimited and total. Always yield to the Hands-On Imperative!)

  1. 所有信息都应该是自由的。

(All information should be free.)

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

(Mistrust Authority -- Promote Decentralization.)

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

(Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position.)

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

(You can create art and beauty on a computer.)

  1. 计算机使生活更美好。

(Computers can change your life for the better.)

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

2 黑客与画家

开发优秀软件的方法之一就是自己创业。

更一般地说,“白天工作”的意思是,你有一份为了赚钱的工作,还有一份为了爱好的工作。

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

开源运动最鲜为人知的优点之一,就是使得学习编程变得更容易了。

我认识,这也是多人共同开发一个软件的正确模式。需要合作,但是不要“合”得过头。如果一个代码块由三四个人共同开发,就没有人真正“拥有”这块代码。最终,它就会变成一个公用杂物间,没人管理,又脏又乱,到处堆满了冗余代码。正确的合作方法是将项目分割成严格定义的模块,每个模块由一个人明确负责。模块与模块之间的接口经过精心设计,如果可能的话,最好把文档说明写得像编程语言规范那样清晰。

为了写出优秀软件,你必须假定用户对你的软件一无所知。你要明白,用户第一次使用你的软件的时候,不会预先做好功课,他们没有任何准备就开始用了,所以软件的使用方式最好能符合用户的直觉,别指望用户去读使用手册。

源代码也应该可以自己解释自己。

程序写出来是给人看的,附带能在机器上运行。

5 另一条路

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

只要你还在很活跃地开发产品,就免不了亲自要做系统管理,我认为没有其他可能。

许多农场用电篱笆防止奶牛逃跑,但是不少电篱笆其实并没有通电。不过奶牛们已经吃过苦头,显然学会了不去碰电篱笆,这时不通电也能起到效果。“奶牛们,行动吧!”他写道,“趁着统治者打鼾时,夺回你们的自由!”

如果你是一个黑客,并且梦想自己创业,可能会有两件事情令你望而却步,不敢真正开始采取行动。一件是你不懂得企业管理,另一件是你害怕竞争。可是实际上,这两件事都是没有通电的电篱笆。

首先,管理企业其实很简单,只要记住两点就可以: 做出用户喜欢的产品,保证开支小于收入。只要做到这两点,你就会超过大多数创业公司。随着事业的发展,你自己就会琢磨出来其他的诀窍。

至于如何做出用户喜欢的产品,下面是一些通用规则。从制造简洁的产品开始着手,首先要保证你自己愿意使用。然后,迅速地做出1.0版,并且不断加以改进,整个过程中密切倾听用户的反馈。

不要被微软吓到。你能做到它做不到的事情,正如它能做到你做不到的事情一样。

6 如何创造财富

如果你想致富,应该怎么做?我认识最好的办法就是自己创业,或者加入创业公司。

创业公司往往与技术有关,所以“高技术创业公司”这个短语几乎就是同意词。创业公司其实就是为了解决了某个技术难题的小公司。

一个大学毕业生总是想“我需要一份工作”,别人也是这么对他说的,好像变成某个组织的成员是一件多么重要的事情。更直接的表达方式应该是“你需要去做一些人们需要的东西”。即使不加入公司,你也能做到。公司不过是一群人在一起工作,共同做出某种人们需要的东西。真正重要的是做出人们需要的东西,而不是加入某个公司。

乔布斯曾经说过,创业的成败取决于最早加入公司的那十个人。我基本同意这个观点,虽然我觉得真正决定成败的其实只是前五个人。

小团队天生就适合解决技术难题。

现在,黑客都已经熟知这一点,并总结出一个术语“过早优化”(premature optimization)。尽快拿出1.0版,然后根据用户的反映而不是自己的猜测进行软件优化。

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

只要懂得藏富于民,国家就会变得强大。让书呆子保住他们的血汗钱,你就会无敌于天下。

9 设计者的口味

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

12 拒绝平庸

埃里克.雷蒙德写过一篇文章《如何成为一名黑客》(How to Become a Hacker)。文中有一部分专门谈到,在他看来,如果你想当一个黑客,应该学习哪些语言,还应该学习C和Perl。前者用来对付Unix系统,后者用来系统管理和开发CGI脚本。最后,真正非常严肃地把黑客作为人生目标的人,应该学习Lisp。

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

如果开发只在自己服务器上运行的软件,这意味着你想用什么语言就能用什么语言。如果开发桌面软件,就完全不一样了,大多数情况下你只能使用操作系统所有的开发语言。

14 梦寐以求的编程语言

发明新事物的人必须有耐心,要常年累月不断地做市场推广,直到人们开始接受这种发明。我们就耗费了好几年才使得客户明白Viaweb不需要下载安装就能使用。不过,好消息是,简单重复同一个信息就解决这个问题。你只需要不停地重复同一句话,人们将会开始倾听。人们真正注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。

著名散文家E.B.怀特说过,“最好的文字来自不停的修改”。所有优秀作家都知道这一点,它对软件开发也适用。设计一样东西,重最要的一点就是要经常“再设计”,编程尤其如此,再多的修改都不过分。

15 设计与研究

先做出原型,再逐步加工做出成品,这种方式有利于鼓舞士气,因为它使得你随时都可以看到工作的成效。

开发软件的时候,我有一条规则: 任何时候,代码都能够运行。

反省

这本书是11月12日就到了的,本来应该三四就能看完的一本书,我看了20天左右,到今天才看完。原因就是前段时间沉迷于王者荣耀,经常一玩就一个晚上过去了,时间都被这样浪费了。

这是很不错的一本书,作者以不同平常的角度来解析问题,又能揭露到问题的本质。如对黑客的解释、对财富的解释、对时代的分析等。

本书中作者所介绍的观点和方法都非常值得我去学习,比如创业、创造等。

下一本读书计划:《Unix & Linux大学教程》,计划这个月读完。

有时间去了解学习一下Lisp。还有Perl、Python、C。

To be better! To be stronger! To be a Hacker !

相关文章

网友评论

      本文标题:《黑客与画家》-- 读书笔记

      本文链接:https://www.haomeiwen.com/subject/lbjuxqtx.html