1. 为了写出优秀软件,你必须假定用户对你的软件基本上一无所知。你要明白,用户第一次使用你的软件的时候,不会预先做好功课,他们没有任何准备就开始用了,所以软件的使用方式最好能符合用户的直觉,别指望用户去读使用手册。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #832-834的标注 2015-07-08 23:49:40
2. 丑陋的做法与聪明的做法存在一个共同点,那就是都不符合常规。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1224-1224的标注 2015-07-09 23:10:20
3. 在英语中,前缀Multi-意思是“多个”,而前缀Uni-意思是“单个”。——译者注
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1268-1269的标注 2015-07-09 23:15:45
4. 互联网软件运行在服务器上,用户界面就是网页。对于普通用户来说,使用这种新型软件将更容易、更便宜、更机动、更可靠,通常也比桌面软件更强大。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1367-1369的标注 2015-07-10 23:44:02
5. 如果互联网软件能够击败桌面软件,一定是赢在更方便这一优势上。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1385-1386的标注 2015-07-10 23:44:10
6. 当今,许多顶尖黑客使用的语言与C和C++大相径庭:Perl,Python,甚至还有Lisp。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1446-1447的标注 2015-07-10 23:44:25
7. 如果你还没忘记Viaweb的旧事,你可能会觉得我这么说听上去很奇怪,因为那时我们总是宣布将有新版本推出。这只是公关伎俩啦,我们知道媒体喜欢听到版本号。如果你发布一个大的版本更新(版本号的第一位数发生变动),它们就会以大篇幅报道;如果你发布一个小的版本更新(版本号小数点后发生变化),它们最多只用一段话提一下。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1482-1485的标注 2015-07-10 23:44:33
8. 互联网软件的另一个技术优势在于,你能再现大部分的bug。用户的数据都在你的硬盘上。如果某个用户使用软件时出错了,你就不必像开发桌面软件那样苦苦猜测到底发生了什么事情。一般来说,只要用户通过电话向你描述一番,你就能把问题再现出来。如果你的程序中有自动侦测错误的代码,那么不用等到用户找上门,你可能已经知道哪里出错了。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1492-1495的标注 2015-07-10 23:44:40
9. 早一点发现bug就不容易形成复合式bug,也就是互相影响的两个bug。举例来说,一个bug是楼梯很滑,另一个bug是扶手松了,那么只有当这两个bug互相作用时,才会导致你从楼梯上摔下来。在软件中,复合式bug是最难发现的bug,往往也会导致最大的损失。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1510-1513的标注 2015-07-10 23:44:46
10. 桌面软件行业的人可能很难相信,Viaweb的bug几乎成了一种游戏。因为软件发布以后,大多数bug都是罕见情况下才会发生的个案,受到影响的用户往往都是高级使用者,他们喜欢试验那些不常用的、难度大的操作。高级使用者对bug的容忍度比较高,尤其如果这些bug是在开发新功能的过程中引入的,而这些新功能又正是他们所需要的,他们就更能理解了。事实上,因为bug不多,你只有经过一些复杂的过程以后才会遇到它们,所以高级使用者往往因为发现了bug感到很得意。他们打电话给客服时,多半是一副胜利者的口吻,而不是怒气冲冲的样子,好像他们击败我们得分了一样。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1523-1528的标注 2015-07-10 23:44:59
11. 在收到使用者的bug报告之后一分钟内,程序员就会对站在身边的客服人员说:“没错,你是对的,这是一个bug。”客服人员从黑客嘴里听到“你是对的”,会感到欢欣鼓舞。客服人员告诉我们发现bug的时候,他们心里怀着期待,就好像小猫想让别人知道自己抓住了一只老鼠一样。这也使得客服人员在判断bug严重性时格外小心,因为这关系到他们的声誉。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1542-1545的标注 2015-07-10 23:45:16
12. 我们在Viaweb举办过一个比赛,看谁能说出我们软件中最差劲的地方。两位客服人员并列第一,我至今想起他们的叙述都不寒而栗。比赛一结束,我们立刻修复了那两个问题。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1549-1551的标注 2015-07-10 23:45:23
13. 构思这种东西有一个特点,那就是它会导致更多的构思。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1555-1555的标注 2015-07-10 23:45:32
14. 要让软件变得可靠,关键是你要全神贯注,而不是开发得很慢。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1568-1568的标注 2015-07-10 23:45:38
15. 所谓“人月”就是一个人在一个月内所能完成的工作量。假如某个项目预估需要12个人月,那么派4个人处理这个项目,理论上需要3个月,派6个人则只需要2个月。但是,布鲁克斯认为这种换算机制在软件业行不通,是一个神话,因为软件项目是交互关系复杂的工作,需要大量的沟通成本,人力的增加会使沟通成本急剧上升,反而无法达到缩短工期的目的。在本质上,软件项目的人力与工期是无法互换的,当项目进度落后时,光靠增加人力到该项目中,并不会加快进度,反而有可能使进度更加延后
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1573-1577的标注 2015-07-10 23:45:49
16. 最后,通过关注用户,你可以知道他们在使用软件的过程中什么时候遇到了麻烦。因为顾客总是对的,所以这表明你需要修正软件。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1623-1624的标注 2015-07-11 00:04:16
17. 现在,善于写软件的那类人更喜欢使用Linux或者FreeBSD操作系统。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1752-1753的标注 2015-07-11 01:16:02
18. 往往只有在创业公司里,你才能得到一种宝贵的工作环境,就叫做“不受干扰”。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1926-1927的标注 2015-07-11 08:28:44
19. 仅仅因为工作经常受到干扰,黑客就会无法应对高难度的项目。这就是为什么黑客往往在深夜工作的原因,也是黑客无法在小隔间里写出优秀软件的原因(除非在半夜)。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1931-1933的标注 2015-07-11 08:29:49
20. 财富才是你的目标,金钱不是。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #1974-1974的标注 2015-07-11 12:46:09
21. 大公司会使得每个员工的贡献平均化,这是一个问题。我觉得,大公司最大的困扰就是无法准确测量每个员工的贡献。大多数时候它只是在瞎猜。在大公司中,你只要一般性地努力工作,就能得到意料之中的薪水。你不能明显无能或懒惰,但是谁也没觉得你会把全部精力投入工作。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2070-2072的标注 2015-07-11 14:37:16
22. 如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2103-2104的标注 2015-07-11 17:27:33
23. 俗话说得好,最好的防御就是进攻。如果你开发出来的技术是竞争对手难于复制的,那就够了,你不需要依靠其他防御手段了。一开始就选择较难的问题,此后的各种决策都选择较难的那个选项。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2177-2178的标注 2015-07-11 17:36:39
24. 收购这件事最难的地方就是让买方真正拿出钱。大多数时候,促成买方掏钱的最好办法不是让买家看到有获利的可能,而是让他们感到失去机会的恐惧。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2218-2219的标注 2015-07-12 00:14:24
25. 你必须时刻牢记的最基本的原则就是,创造人们需要的东西,也就是创造财富。如果你想通过创造财富使得自己致富,那么你必须知道人们需要什么。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2236-2237的标注 2015-07-12 00:18:16
26. 缓慢工作的后果并不仅仅是延迟了技术革新,而且很可能会扼杀技术革新。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2262-2263的标注 2015-07-12 00:21:35
27. 实际上,我觉得发现丑陋的东西要比你想象出一个优美的东西更容易。大多数做出优美成果的人好像只是为了修正他们眼中丑陋的东西。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #2882-2883的标注 2015-07-12 01:30:29
28. 如果你想当一个黑客,应该学习哪些语言。他建议从Python和Java入手,因为它们比较容易学。想当高级一点的黑客,还应该学习C和Perl。前者用来对付Unix系统,后者用来系统管理和开发CGI脚本。最后,真正非常严肃地把黑客作为人生目标的人,应该考虑学习Lisp:
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3255-3257的标注 2015-07-12 08:28:13
29. 选择使用哪一种技术的时候,你不能考虑别人的做法,只能考虑什么样的技术能最好地完成工作。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3274-3275的标注 2015-07-12 08:31:14
30. 在竞争中,你的对手无法理解你的技术优势,这可是再宝贵不过了。商场如战场,对手摸不透你,你的胜算就增加了。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3312-3313的标注 2015-07-12 08:33:12
31. 在黑客圈子里,Perl被公认比Java酷得多。黑客社区网站Slashdot就是用Perl开发的。我估计你不可能看到黑客愿意使用Java的JSP技术开发网站。可是,还有一种更新的语言叫做Python,它的使用者往往看不起Perl。另一些人则认为Ruby语言是取代Python的最佳选择。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3470-3472的标注 2015-07-12 08:42:49
32. Lisp和Fortran代表了编程语言发展的两大方向。前者的基础是数学,后者的基础是硬件架构。从那时起,这两大方向一直在互相靠拢。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3508-3509的标注 2015-07-12 08:47:07
33. 总的来说,你的经理其实不关心公司是否真的能获得成功,他真正关心的是不承担决策失败的责任。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3631-3632的标注 2015-07-12 08:51:38
34. 只要计算机可以自己推断出来的事情,都应该让计算机自己去推断。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3783-3784的标注 2015-07-12 15:37:44
35. 一种真正优秀的编程语言应该既整洁又混乱。“整洁”的意思是设计得很清楚, 内核由数量不多的运算符构成,这些运算符易于理解,每一个都有很完整的独立用途。“混乱”的意思是它允许黑客以自己的方式使用。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3819-3820的标注 2015-07-12 16:12:19
36. 为了写出优秀软件,你必须同时具备两种互相冲突的信念。一方面,你要像初生牛犊一样,对自己的能力信心万丈;另一方面,你又要像历经沧桑的老人一样,对自己的能力抱着怀疑态度。在你的大脑中,有一个声音说“千难万险只等闲”,还有一个声音却说“早岁哪知世事艰”。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #3932-3935的标注 2015-07-12 16:59:41
37. 人工智能(AI,Artificial Intelligence) 一个概括性术语,用来描述几种尝试让机器学会思考的技术。其中偏重数学的方法已经取得了一些进展(计算机视觉就是一个例子)。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #4116-4117的标注 2015-07-12 18:50:19
38. 贝叶斯定理(Bayesian) 一种统计推断的方法,又称贝叶斯算法。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #4134-4135的标注 2015-07-12 18:52:47
39. Blub困境(Blub Paradox) 程序员的思想往往会受到自己正在使用的语言的束缚,不相信还存在更强大的语言。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #4143-4144的标注 2015-07-12 18:53:36
40. (Turing- equivalent)。 图灵机(Turing machine) 一种完全虚构的计算机,作用是证明计算理论。由于所有计算机的程序都可以被转换成图灵机程序,所以在这个意义上,你不可能做出比图灵机更强大的计算机。但是没有人能保证这一点,因为“计算机”这个词并没有被正式定义过。
《黑客与画家:硅谷创业之父Paul Graham文集》(Paul Graham ) 您在位置 #4369-4371的标注 2015-07-12 19:17:40