Fork me on GitHub

《黑客与画家》记录

注: 本文是我几年前的记录,整理时发现还可以再看看。

保罗-格雷厄姆其人其事

“运营创业公司,每天都像在战斗;而为大公司工作,就像在窒息中挣扎。”
“我生活的中得一切,都正在成为计算机。所以,如果你想理解我们目前的世界以及它的未知动向,那么多了解一些黑客的想法会对你有帮助。”
Y Combinator
创始人本身比他的创意更重要
内耗

译者序

表面上这是一个机器的时代,但是实际上机器的设计者决定了我们的时代。
stallman:“出于兴趣而解决某个难题,不管它有没用,这就是黑客。” 好玩,高智商,探索精神
真正的黑客致力于改变世界,让世界运转得更好。

前言

计算机世界就像是智力世界的大西部,在那里没有你不敢想得事件,只要你愿意承担冒险后果。

为什么书呆子不受欢迎

他们真的不想让自己受欢迎

“任何一种艺术,不管是否重要,如果你想要再该领域出类拔萃,就必须全身投入” —- 阿尔伯蒂

对于那些高度困难的领域,只有身处其中的人,才能意识到成功需要不间断(虽然未必是自觉的)付出。
在一个人产生良知之前,折磨就是一种娱乐。

那些对自己没自信的人就会通过虐待他们眼中的下等人来突显自己的身份。

没有什么比一个共同的敌人更能使得人们团结起来了

难怪聪明的小孩读中学时往往是不快乐的。

那些在学校的想法在社会中得到了实现也成为了他们个人魅力所在。

当所做的事件能产生真实的效果,那么发现正确的答案就开始变得重要了。

书呆子已经在思考的东西,正是真实世界看重的东西。

学校的真正目的是把儿童都关在同一个地方,以便大人们白天可以腾出手来把事件做完。

你告诉一个人,他的脚天生就是坏的,并不能阻止他去怀疑他可能穿错了鞋子。 逃离这种空虚生活的唯一方法,就是向它屈服。

2 黑客与画家

创作者

  • computer science
    1 计算机科学家/数学家
    2 计算机博物学家/计算机的实验室科学
    3 黑客

没有什么比一个错误的前提更容易产生大量待解决的问题了。

创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来。

  • 创造性从不同方面限制了优美软件的诞生

更大的危险是你自己也会误解自己的工作。

黑客搞懂“计算理论”的必要性,与画家搞懂颜料化学成分的必要性差不多大。

  • (黑客的想法)来自于其他创作领域。 太过专业化所带来的弊端。

允许动态扩展(malleable)。编程语言是用来帮助思考程序的,而不是用来表达你已经想好的程序。

作家和画家没有“对数学家的妒忌”,他们认为自己在从事与数学完全不相关的事件。
大学和实验室强迫黑客成为科学家,企业强迫黑客成为工程师。
当你排斥差异的时候,你不仅将失败的可能性排除在外,也将获得高利润的可能性排除在外。
好玩的软件的需求量,比不上解决客户麻烦问题的软件的需求量。
day job
应该定期地从头开始,而不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法以修订版的形式包括进去。

  • 初始的原创和站在巨人的肩上

从他人的角度思考问题正是成功的奥秘所在。 了解别人对于事件的看法,并不代表你为他的利益服务。

怎样向没有技术背景的人解释技术问题。

程序写出来是给人看的,附带能在机器上运行。 —- 《计算机程序的结构与解释》

一种新的媒介刚刚诞生的时候,人们热情高涨、兴奋不已,短短几代人就探索清楚了这种媒介的大部分可能性,把它的能量发挥到极致。 编程目前好像就处在这个阶段。

不能说的话

习俗的力量不足以束缚他们

“要根据社会要求,改造自己的思想” 历史的倒退

未来的人们可能会发现,他们觉得很平常的话,在我们今天这个时代都是不能说的。

回顾过去。我们可以去找那些过去被认为理所当然,如今却被认为不可思议的事情

hard sicence soft science

我们喜欢孩子们看上去天真无邪。

流行的时尚 流行的道德观念

如果一个团队强大到无比自信,它更本不会在乎别人的抨击。

道德禁忌的最大制造者是权力斗争中占上风的,但同时有软弱到需要禁忌保护自己的利益。

抱负心 恐惧心

第二批的接受者只有跟随者了
我要亲眼看一下,然后自己做决定。

优秀作品往往来自于其他人忽视的想法,而最被忽视的想法就是那些被禁止的思想观点。

只要你能看到别人看不到或不敢看的东西,你就有很大的优势。

训练自己去想那些不能想的事情,你获得的好处会超过所得到的想法本身。
自由思考比畅所欲言更重要。
在心里无所不想,但是不一定要说出来。
“守口如瓶,笑脸相迎”
“不能说的话”太多了,如果口无遮拦,你就没时间做正事了。
只要不是错误的观点,就不应该被压制讨论。

良好的坏习惯

hacker, hack prose, hack the problem
只有深入了解当前的技术,黑客才能构想下一代技术。
黑客永远是自负的。
黑客的所作所为完全出于兴趣,想到哪里就做到哪里,没有明确的计划,只求开心。
很自负的人必须培养出敏锐的感觉,及时发现周围情势的变化,知道怎样才能脱身。
一个人们拥有言论自由和行动自由的社会,往往最有可能采纳最优方案,而不是采纳最有权势的人提出的方案。
Laffer curve

另一条路

桌面软件 互联网软件 用户密集互动的软件 坐下来写东西的时候,一半的构思是写作时产生的。

实现某个构思,会带来更多的构思。

提高软件可靠性的关键在于开发时全神贯注,而不是降低开发速度。
如果你亲眼见到某人第一次使用你的软件,你就会知道软件的哪个地方最打动他。

一定数量的盗版对软件公司是有好处的。

价格歧视

公司内部所有不直接感受到竞争压力的部门都应该外包出去,让它们暴露在竞争压力之下。

如果新事物真的有重大改进,那么它总是可以找到生存空间的。

管理企业:做出用户喜欢的产品,保证开支小于收入。

只有懂得设计的黑客,才能设计软件,不能交给对软件一知半解的设计师。如果你不算自己动手设计和开发,那就不要创业。

他们害怕你胜过你害怕他们

开发互联网软件不需要得到任何人的许可,没有人能够阻止你。你不需要去申请许可证,不需要在零售店的货架上谋得一席之地,也不需要卑躬屈膝地求人家,将你的软件与操作系统捆绑在一起。你能狗购过浏览器发布软件,没有人能在你和浏览网站的用户之间插上一脚。

如何创造财富

平均主义泛滥

使用“挣钱”这个词会不利于理解如何才能挣钱。(make money-财富,money-金钱)

金钱是专业化的副产品。 公司的存在目的就是满足人们的某种需要。

苦恼:无法准确测量每个员工的贡献。

团队越大,每个人的贡献就越接近于整体的平均值。

技术就是某种手段,就是我们做事的方式。经济价值取决于有多少人使用这种新方式。
我们很乐于迫使那些又大又慢的竞争对手跟着我们一起走进沼泽地。
不是让买家看到有获利的可能,而是让他们感到失去机会的恐惧。

无论你的技术水平有多高,用户数量都比你自己的判断更能准确反映哪些问题应该优先解决。

创造人们需要的东西,也就是创造财富。
创造财富的人能够心安理得地享用自己的财富。

没有财富的激励,就不会有人愿意去做技术革新。

关注贫富分化

不管是战争还是政治斗争,本质上都属于偷窃。
技术的发展使得通过创造而积累的速度第一次有可能超过通过偷窃而积累财富的速度。

每一笔巨大财富的背后,都隐藏着罪行。 —- 巴尔扎克
技术无法使其变得更便宜的唯一东西,就是品牌
无所事事使人感到孤独和消沉
技术在加大收入差距的同时,缩小了大部分的其他差距。
生活在一个整体上非常富裕但是我个人相对贫穷的社会,还是生活在一个我个人相对非常富裕但是整体上非常贫穷的社会呢?

防止垃圾邮件的一种方法

设计者的品味

喜欢一件东西,却不知道为什么自己喜欢它。

人类的思想就是没有经过整理的无数杂念的混合。

如果你是一个设计师,并且你不承认有一种人们共同认可的东西叫做“美”,那么你就没有办法做好工作。

优秀设计的原则是许多学科的共同原则

装饰品本身并不是坏事,只有当它被用来掩盖结构的苍白时,才变成了一件坏事。

好设计师永远不过时的设计

对称的危险在于它可以用来取代思考,在大量使用重复的时候这种危险性更大。

大自然在长期的演化中已经解决了很多设计问题。

遗传算法可能会创造出正常条件下难以设计的复杂事物。

你应该培养对自己的不满。

编程语言解析

一个操作所需的代码越多,就越难避免bug,也越难发现它们。

只要你懂得驾驭开源软件社区,就会有很多人在短期内为你提供大量的代码。

一百年后的编程语言

一种编程语言的两大组成部分:1.基本运算符的集合(扮演公理的角色)。2.除运算符以外的其他部分(原则上,这个部分可以用基本运算符表达出来)

数学家总是觉得公理越少越好。

一种语言的内核设计得越小、越干净,它的生命力就越顽强。

对速度的追求是人类内心深处根深蒂固的欲望。
效率低下的软件并不等于很烂的软件。
浪费程序员的时间而不是浪费机器的时间才是真正的无效率。

拒绝平庸

选择使用哪一种技术的时候,你不能考虑别人的做法,只能考虑什么样的技术能最好地完成工作。
在竞争中,你的对手无法理解你的技术优势,这可是再宝贵不过了。
他们都满足于自己碰巧用熟了的那种语言。
Lisp
人类天性变化的速度大大慢于计算机硬件变化的速度。

书呆子的复仇

条件越苛刻的项目,强大的编程语言就越能发挥作用。
把软件运行在服务器端就可以没有顾忌地使用最先进的技术。 他们眼中不正常的事件恰恰就是使得这一切发生的原因所在。
在基础语言之上先构建一种你自己的语言,然后再用后者开发应用程序。
程序员使用某种语言能做到的事件是有极限的。
经理真正关心的是不承担决策失败的责任。

梦寐以求的编程语言

只有流行才会让它保持优秀。

无法以一种语言本身的优缺点评判这种语言。 只有当一种语言本身的优缺点评判这种语言。
只要计算机可以自己推断出来的事情,都应该让计算机自己去推断。
敞开胸怀:对于制造工具的人来说,总是会有用户以违背你本意的方式使用你的工具。

让字节码成为语言的正式组成部分,允许程序员在瓶颈处内嵌字节码。

硬件和软件现在捆绑在一起供应。

人们有时候会想要自己并不真正需要的东西。

大多数热门新商品事后被证明都是浪费时间的噱头,没多久就消失得无影无踪。

人们真正注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。

“最好的文字来自不停的修改。”

对解决难题的可能性保持乐观,同时对当前解法的合理性保持怀疑。

做出优秀成果的人,在做的过程中常常觉得自己做得不够好。

如果你能平衡好希望和担忧,它们就会推动项目前进,就像自行车在保持平衡中前进一样。

如果用户数量庞大,修改语言带来的痛苦就将持续很长时间。

设计与研究

设计与研究,好与新。 只有应用“新”的创意和理论,才会诞生超越前人的最佳设计;只有解决那些值得解决的难题(也就是“好”的难题),只是前进的路线不同罢了。
除非设定目标用户,否则一种设计的好坏根本无从谈起。
如果目标用户群体涵盖了设计师本人,那么最有可能诞生优秀设计。

“弱即是强”(Worse is Better)

尽快拿出原型,听取用户的意见。
先做出原型,再逐步加工做出成品。

任何时候,代码必须能够运行。

“画作永远没有完工的一天,你只是不再画下去而已。”

坚持原创技术分享,您的支持将鼓励我继续创作!
  • 本文标题: 《黑客与画家》记录
  • 本文作者: AndyRon
  • 发布时间: 2018年08月31日 - 23:05
  • 最后更新: 2018年11月04日 - 14:38
  • 本文链接: http://andyron.com/2018/黑客与画家.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!