< 有趣的解释 >
叛逆精神---> 对于黑客来说,关着的门就是就是一种挑衅,而锁着的门则是一种侮辱,黑客相信只有有助于改进现状,探索未知,人们就应该被允许自由地使用各种工具和信息,当一个黑客需要一种东西来帮助自己进行创造,进行探索或者进行修修补补时,他不会自找麻烦,不会接受那些财产专有权的荒谬概念。
革新和异端实际上是一回事--->优秀的黑客会质疑一切, 虽然外表看上去一般都呆呆的,但他们的大脑内部却是一个有趣得让你吃惊的地方!
专注---->文艺复兴时期的代表人物阿尔伯蒂有一句名言:“任何一种艺术 ,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入”
投入--->一般来说,对于那些高度困难的领域,只有身处其中的人,才能意识到成功需要不间断的付出(虽然未必是自觉地)。举例来说,大多数人似乎认为绘画能力与生俱来,画家就像高个子一样,是天生的。事实上,大多数“会画”的人,本身就很喜欢画画,将许许多多时间投入其中,这就是为什么他们擅长画画的原因,同样的,受欢迎也不是天生的,而是要你自己做出来的。
无能---> 那些无能的人也可能是那些头顶一杯水来踢足球的人,一边踢球,还一边拼命保持不让水洒出来。其他人则是一门心思玩足球,遇到这样的对手,自然毫不费力的击败,并且内心还奇怪,对方为何如此无能。(启发:看到无能的人,先别忙着嘲笑,先看他头顶是否顶着一杯水)
压力----> 生活在这个世界上,对所有的人来说都是充满压力的,就像一场战争,胜利方也是需要付出代价的。(致那些我打的败仗)
建筑师和工程师--->建筑学和工程学之间的区别并不是很严格,但就是存在区别,这表现在“做什么”和“怎么做”,建筑师决定做什么,工程师想出怎么做。
当然“做什么”和“怎么做”不应该分得太开,如果你决定做一件事,却不知道怎么做,你就是在自找麻烦。但是,只是单纯的决定如何实现某种规格,那肯定不是黑客。黑客的最高境界是创造规格,虽然看起来,做到这一点的最好方法就是先做出一个样品把规格实现了。
科学研究和论文---> 科学研究必须具有原创性。确保自己正在开垦新领地的方法,就是去找那些没有人要的土地。
其次,科学研究必须是能够产生大量成果的,而那些不成熟的,障碍重重的领域最容易写出许多篇论文。因为你可以写那些为了完成工作,而不得不克服的障碍,没有什么比一个错误的前提更容易产生大量待解决的问题了。
创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来,这种类型的工作很难用研究性的论文表达。
考核标准---> 容易实施的考核标准总是最先被采用的,而能够考核到实际工作能力的则会很难实施。只有你本人具有良好的设计感,才能去考核别人的设计是否良好,但是你觉得你有“良好的设计感”与你实际是否具有,不存在相关关系,甚至可能存在负相关。
唯一有效的外部考核就是时间,经过岁月的洗礼,优美的东西生存发展的机会更大,丑陋的东西往往会被淘汰。不幸的是,这种考核需要你的时间可能比一个人的生命还要长。塞缪尔约翰逊说过,人们对一个作家的评价,需要100年才能达成一致,你必须先等他的那些有影响力的朋友都死了,然后再等他们的追随者都死了,才能对他有一个公正的评价。
理论与实际--->黑客搞懂“计算理论”的必要性,与画家搞懂颜料化学成分的必要性差不多大,一般来说,在理论上,你需要知道如何计算“时间复杂度”和“空间复杂度”,如果你要写一个解析器,可能还需要知道状态机的概念。除此之外,并不需要知道特别多的理论,这些可比画家必须记住的颜料成分少很多。黑客新想法的最佳来源,并非那些名字里有“计算机”三个字的理论领域,而是来自与其他创作的领域,与其到“计算理论”领域寻找创意,你还不如在绘画中寻找创意。(核心理论+创造性的新想法)
编程---> 我不是先在纸上编程,耐心的一步步写出整个程序,确保大体上是正确的,而是一股脑不管对错,先把代码堆上去,再慢慢修改,看上去编程就是在调试 (再比如,写作)
这意味着编程语言首要的特性应该是允许动态扩展的,编程语言是用来帮助思考程序的,而不是表达你已经相好的程序,它应该是一支铅笔,而不是钢笔。(像草稿)
黑客的工作不是用软件实现某个功能,而是设计软件。程序员不是技工,不是为了将产品经理的构想翻译成代码。
标准差---> 公司的管理层想要掌控变数,所以他们不会把核心控制权交个一个黑客,而是会给一个委员会来慢慢推进。但如果某一天你想要赚大钱,那么就要拥抱所有可能的标准差,因为它们有可能意味着失败,也有可能意味着高额的利润,这也是创业公司能够成功的原因之一。而这,也正是大公司为了避免设计上的灾难,而选择减少的。并且这种“损失”对大公司来讲并不是关键问题,生产特别优秀的产品不是它们获胜的手段(比如苹果的新产品),大公司只要做到不太烂,就能赢。但你并不可能靠一款比微软的word更好用的文字处理软件赚到大钱,因为微软有自己的防御城堡,它的整个操作系统都是垄断的,你根本无法对它构成威胁。真正竞争软件设计的战场是新兴领域市场,那里还没人建立过防御工事,只要你能做出大胆的设计,由一个人或一批人同时负责设计和实现产品,你就能战胜大公司。
但自己创业会有两个问题:第一,必须处理许许多多与开发软件完全无关的事情。能有四分之一的时间用于干你喜欢的部分就不错了,剩下四分之三,从单调乏味到惊悚恐怖无所不包。到那时你连抽空去趟医院感觉都像是去度假。第二,赚钱的软件往往不是好玩的软件,两者的重叠度并不高。价格是由供给和需求共同决定的,好玩的软件需求量比不上解决客户麻烦问题的软件需求量。而处理各种麻烦对你来说也是麻烦的。
-------------------------------->所以,黑客如何才能做自己喜欢的事?唯一的解决方案就是一个几乎所有创作者都知道的方法,找一份养家糊口的“白天工作”(为了赚钱的工作),还有一份为了爱好的工作。尤其画家和作家职业生涯的早期尤为如此。
如何开始编程(联想到写作)---> 自己动手写程序。
Tips:定期从头开始,而不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法都以修订版的形式包括进去。
模仿:通过观看优秀的程序学会编程(源代码)
Tips:不能预先设计一个完美的规格,再开始编程,这是不现实的。根据需要当场修改规格,才能最终形成一个好结果。
如何与他人一起工作(编程)---> 将项目分割成严格定义的模块,每一模块由一个人明确负责
接口需要精心设计,如果可以的话,最好把文档说明写得像编程语言规范那样清晰
黑客---> 对程序员来说,“黑客”意味着精通,他们是随心所欲支配计算机的人。
创业---> 创业是一个工作被压缩的过程。你的所有工作年份被压缩成了短短的几年。工作效率越高,额外报酬就越丰富。如果你想赚100万美元,就不得不忍受相当于100万美元的痛苦,而创业公司就是将你所有的压力压缩到三四年,这就是基本的守恒定律。
创业的一条潜规则就是,很多事情由不得你。你无法决定付出多少,真正创业以后,是你的竞争对手决定了你到底要有多辛苦。另一条是创业的付出与回报虽然总体上是成比例的,但是在个体上是不成比例的。最后的回报在现实中只是0到1000倍之中随机的一个数。创业公司就像蚊子,不带有任何防御,就是为了达到一个目的而活着。要么赢得一切,要么彻底消失。
保险的做法就是在早期卖掉自己的创业公司,放弃未来发展壮大(担风险也随之增大)的机会,只求数量较少但是更有把握的回报。
工作---> 工作就是在一个组织中,与许多人共同合作,做出某种人们需要的东西。
财富和金钱---> 金钱只是用来交易财富的一种手段,财富才是有价值的东西。而财富是人们创造出来的,如果你想要更多的财富,自己生产就可以了。
SUV---> 如何让小货车看起来更有男子气概。
浪费---> 浪费分为好的浪费和坏的浪费,好的浪费是如何用更多的钱得到更简单的设计。
拉丁语的价值---> 拉丁语无助于你找工作,但是它可以训练你的思维,帮助你更好的运用母语(英语)进行写作。
创业公司如何评估竞争对手---> 关注他们招聘的职位。招聘职位可以反映出他们到底想干什么,否则就会引来一大批不合适的求职者。有些公司的职位描述使用了大量的IT词汇,这样的内容越多,这家公司就越不构成威胁。最不用担心的竞争对手就是那些要求应聘者具有Oracle数据库经验的公司,你永远不必担心他们。如果是招聘Perl和Python程序员,就稍微有点威胁了。至少这听起来像是一家技术公司,并且由黑客控制。如果有幸见到一家招聘Lisp黑客的公司,就会真的感到如临大敌。
反思:你要想象所有的话都是在一语双关,作者在用他的例子道出你实践中的真谛,而我们只需要听懂,然后学会迁移。