book, 黑客与画家

保罗.格雷厄姆认为黑客与画家有很多共同之处:

1、他们都是创作者,对于黑客来说,计算机只是一种表达的媒介,就像画家手里的颜料。黑客真正想做的是设计优美的软件,但创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来(创作没有想象中那么复杂)

2、他们创作的过程主要是动手去做,而不是先在书本上把理论知识搞清楚,然后想清楚整个程序再动手,所以黑客是通过实践学习编程的;

3、他们都是通过模仿优秀的范例来学习的,学习编程最快速的方式就是模仿优秀程序的源代码;

4、还有一个可以借鉴绘画的地方:一幅画是逐步完成的。通常一开始是一张草图,然后再逐步填入细节。但是有时原先的构想是错的,就必须动手修改。黑客一开始也不能盼望先有一个完美的规格设计,然后再动手编程,如果预先承认规格设计是不完美的,在编程的时候就可以根据需要,当场修改规格,最终会有一个更好的结果。简而言之不要太早决定一个程序应该怎么做,而选择好的编程语言可以让我们避免这种风险(动态语言)。

5、协作创造作品的模式是类似的,正确的合作方法是将项目分割成严格定义的模块,每一个模块由一个人明确负责。模块与模块之间的借口精心设计,并将文档说明写得规范和清晰。

6、黑客必须像画家一样,时刻考虑用户的人性需求,做到这点就必须学会“换位思考”。这并不意味着要做自我牺牲,事实证明,从他人的角度思考问题正是成功的奥秘所在,比如最伟大的绘画作品都是画人的,因为人类总是对自身最感兴趣。”换位思考“是识别优秀黑客的重要因素,而判断一个人是否具备”换位思考“的能力,那就是看他怎样向没有技术背景的人解释技术问题。

优美的软件并不总是论文的合适题材。科学研究必须具有原创性。确保自己正在开垦新领地的方法,就是去找那些没人要的土地。而那些不成熟的、障碍重重的领域最容易写出许多论文。没有什么比一个错误的前提更容易产生大量待解决的问题了。

论文之所以作为考核标准,只是因为这样比较容易实施。

优秀的软件设计师,与其说是工程师,不如说是建筑师。

你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是编写代码之前。

编程语言的首要特性是允许动态扩展dynamic typing。语言是用来帮助思考程序的,而不是用来表达你已经想好的程序。应该是一支铅笔,允许涂涂改改,而不是一支钢笔。

一页写满数学公式的纸真是令人印象深刻啊。因此,你就受到巨大的诱惑,去解决那些能够用数学公式处理的问题, 而不是去解决真正重要的问题。

真正竞争软件设计的战场是新兴领域的市场。这里没有人建立防御工事,只要你能做出大胆的设计,由一个团队同时负责设计和实现产品,你就能在这里战胜大公司。

自己创业的两个问题:

  1. 必须处理许许多多与开放软件完全无关的事情。能有1/4的时间可以用于开放,就感到很幸运了。

  2. 赚钱的软件往往不是好玩的软件。好玩的软件的需求量,比不上解决客户麻烦问题的软件的需求量。小剧场演出的酬劳比不上穿着卡通大猩猩在展会站台,写小说比不上写广告文案。开发新语言,比不上把某些公司老掉牙的数据库连上服务器。

黑客如何才能做自己喜欢的事情?找一份养家糊口的『白天工作』

我们面试程序员时,主要关注的就是业余时间他们写了什么软件。因为如果你不爱一件事情,你不可能把它做得真正优秀。要是你很热爱编程, 你就不可避免地会开放你自己的项目。

黑客更像创作者,所以不应该在科学家身上寻找启示。

有些客户很聪明,但是完全以自我为中心,根本不会设身处地为用户考虑。这样的人很难设计出优秀软件。

你要明白,用户第一次使用你的软件,不会预先做好功课,他们没有任何准备就开始用了,所以软件的使用凡事最好能符合用户的直觉,别指望用户去读使用手册。

好的源代码是写出来让人看得懂的,附带能在机器上运行。

什么不能说

智力越高的人,越愿意去思考那些惊世骇俗的思想观点。这不仅仅因为聪明人本身很积极地寻找传统观念的漏洞,还因为传统观念对他们的束缚力很小,很容易摆脱。从衣着行就可以看出,不受传统观念束缚的人,往往也不会穿流行的衣服。

与笨蛋辩论,你也会变成笨蛋。你要明白,自由思考比畅所欲言更重要。如果你感到一定要跟那些人辩个明白,绝不咽下这口气,一定要把话说清楚,结果很可能是从此你再也无法自由理性地思考了。在心里无所不想,但是不一定要说出来

守口如瓶,笑脸相迎。

讨论的好处是是一个观点会产生更多观点。如果可能,找信得过的知己,畅所欲言。这样不仅可以获得新观点,还可以用来选择朋友。

miachael Rabin 遇到难题时,会把问题重新定义成一个较简单的形式,同时一定会假想一个对手正在与他比赛谁能更快地解决问题。

另一条路

互联网软件的优势:细微渐进,bug更容易复盘和消灭。

人月神话。软件项目是交互关系复杂的工作,需要大量的沟通成本。人力的增加会使沟通成本指数上升,无法缩短工期,反而会拖慢进度。

如果你是黑客且梦想自己创业,却担心两件事: 不懂管理企业,害怕竞争。其实这两件事都是没有通电的电篱笆。其实管理企业很简单:做出用户喜欢的产品,保证开支小余收入。只要做到这两点,你就会超过大多数创业公司

如何做出用户喜欢的产品。从制造简洁的产品入手,首先保证自己愿意使用,然后迅速做出1.0版,并且不断加以改进。倾听用户的反馈。用户总是对的,但是不同用户的要求不一样。低端用户要求简化操作和清晰易懂。高端用户要求增加新功能。正确设置默认值,不是限制用户的选择。

如果你不打算自己动手设计和开放,那就不要创业。

竞争中,你害怕那些像模像样,有着办公室、商业计划、销售员的公司。实际上,他们更害怕你。然而,它的生产效率仅仅相当于小型创业公司的十分之一。

不要被微软吓到。它能做到你做不到的事情,你更能做到它做不到的事情。

how to make money

优秀黑客的年薪大约8万美元。然而你的真正工作时间是公司上班时间的2倍。全神贯注,每小时产出可以提高3倍。除掉中间管理层,你的效率再提高2倍。没有杂事,工作效率再增加3倍。因此总共是36倍,创造的价值可以达300万美元。这当然是极限情况。

黑客要求不受干扰的时间是非常长的。有时花了一个小时才刚刚把一个问题理清,人事部突然打电话咬你去填一张表格,就会造成巨大的成本浪费。所以黑客无法在小隔间里写出优秀的软件。黑客往往在深夜工作。

创业公司不是变魔术,它们无法改变创造财富的法则。创业公司把所有压力压缩到三四年。你无法逃避基本的定律。如果创业那么轻松,那么所有人都去创业了。

金钱只是一种中介。本质是创造价值。

无论上学还是上班,都是按部就班地做你正常情况下没兴趣做的事情。只不过上学你要付钱,上班有人付钱给你。上学当然更有趣,因为你是顾客。

但是,公司一切行为的目的都是盈利,从而生存下去。由于业务高度专业化,你对顾客需求的贡献也许不是直接性的,但是公司作为一个整体必须提供某种人们需要的东西,否则不可能盈利。

你不需要一份工作,你需要的是去做一些人们需要的东西。

大公司会使每个人的贡献平均化。大公司最大的困扰是无法准确测量每个员工的贡献。只有销售员和高管的贡献比较容易测量。

收入和风险是对称的。如果你有一个令你感到安全的工作,你是不会致富的。因为没有危险,就几乎等于没有放大性。

创业的成败取决于最早加入公司的那10个人,甚至只是前5个人。小团队的优势不在于它本身的小,而在于你可以选择成员,全明星阵容的那种小。

技术就是我们做事的方式。如果你发现一种做事的新方式,你解决了一个热门的技术难题,别人都会使用你的解决方案,这就是可放大性。

选择公司要解决什么问题应该以问题的难度作为指引,这样才能甩开那些又大又慢的竞争对手。

进入壁垒。其他人复制你的模式是否苦难,你为竞争对手设置的壁垒有多高。

如果你知道某种东西的发明人(电话、流水线、飞机、电灯、晶体管),那是因为他的公司用这种发明赚到了钱,而公司的公关人员尽力散布发明人的故事。如果你不知道谁发明了某种东西(汽车,电视,计算机,飞机引擎,激光),那是因为其他人的公司从这种发明中赚到了钱

最好的防御是进攻。一开始就选择较难的问题,以后的各种决策都选择较难的那个选项。这也是很好的处事原则。如果你有两个选项,就选较难的那个。坐在家看电视,还是外出跑步,那就出去跑步。因为懒惰会让你选择较易的那个选项。

创业是有一些潜规则的,其中一条就是很多事情由不得你。真正创业以后,你的竞争对手决定了你到底要有多辛苦,因为他们做出的决定都是一样的。

大多数创业者都以失败告终,所以中位数是0.

促成买方掏钱的最好办法不是让买家看到有获利的可能,而是让他们感到失去机会的恐惧,比如看到竞争对手可能收购你,或者未来的收购耗资巨大。

归根结底都是用户数量。你开班 创业公司不是单纯地为了解决有趣的技术问题,而是为了解决那些用户关心的问题

开发某种产品的时间过长是一个陷阱。尽快拿出1.0版,然后根据用户的反映而不是自己的猜测进行软件优化

创业公司是可以让人更快速工作的地方。你不是缓慢积累50年的普通工资,而是尽快地将这笔钱赚到手。

没有财富的激励,技术革新就会逐渐停顿。为什么欧洲在历史上变得如此强大?也许是因为: 允许赚到大钱的人保住自己的财富。

关注贫富分化

没有能力创造财富的人,享有的一切都来自别人无偿的给予,得到财富却没有对应对应的付出,会比较理所当然地认为财富应该平均分配。

富人和普通人过的生活是差不多的,衣食住行在工业制品下相差无几。富人还在工作,是因为无所事事使人感到孤独和消沉。

现代社会的收入差距扩大是一种健康的信号,技术使得生产率的差异加速扩大。

即使是最先进的高科技公司,也至少有90%的工作没有乐趣,令人生厌。在一个剥夺个人财产的社会,财富创造中所有那些没有乐趣的事情都会急剧地放慢。最后就是社会整体变穷了。

如果可以选择,是生活在一个整体上非常富裕但是我个人相对贫穷的社会,还是相反? 前者。你要避免的是绝对贫穷,而不是相对贫穷。

防止垃圾邮件

发现垃圾邮件特征 vs 统计学方法

好的设计:

  1. 简单

  2. 永不过时

  3. 解决主要问题

  4. 启发性,不是描述性

  5. 有点趣味性。幽默是一种力量,代表你对厄运一笑了之。

  6. 艰苦的。野生动物非常优美,是因为他们的生活非常艰苦,在外形不可能有多余的部分了。

  7. 看似容易。背后需要大量练习,把刻意为之的事情变成一种自觉。

  8. 递归性对称。

  9. 模仿大自然。写实不是为了给生活留下一模一样的记录,而是为你的思想提供一个咀嚼点。

  10. 再设计

  11. 奇特

  12. 成批出现。相互激励

拒绝平庸

想当黑客,建议从Python 和Java入手

想当高级一点的黑客,还应该学习C和Perl

严肃的黑客,应该考虑学习Lisp

大公司每件事做到平均水平,就能得到平均水准,就能生存。小公司就会关门。

Lisp适合快速开发软件,运行在服务器端。抽象层次非常高,不需要非常庞大的开放团队,因而降低成本。我们使用一种奇特的人工智能的语言开发软件,语法非常古怪,大量使用括号。在竞争中,你的对手无法理解你的技术优势,这再宝贵不过了。在viaweb创业期间,我们对新闻媒体闭口不谈Lisp。

如果有一些功能在一种语言是内置的,但是在另一种豫园中需要修改解释器才能做到,那么前者就比后者更强大。

由于Blub困境的存在,你无法信任其他人的意见。他们都满足于自己碰巧用熟了的那种语言,他们的编程事项都被那种语言主宰了。

最不用担心的竞争对手就是要求应聘者具有Oracle数据库经验的公司,你永远不必担心他们。如果招聘C++或Java程序员的公司,对你也不会构成威胁。如果他们招聘Perl或Python,就稍微有点威胁了,至少听起来像一家技术公司,并且由黑客控制。如果有家招聘Lisp的公司,那就会感到如临大敌。

1992年流行C++。 2000年流行Java。现在流行Python。

Lisp和Fortran代表了编程语言发展的两大方向。前者的基础是数学,后者的基础是硬件架构。这两大方向一直在相互靠拢。

这种语言本质上不是一种技术,而是数学。数学是不会过时的。

网络订票市场很难进入,两大巨头(travelocity和Expedia)牢牢控制,而ITA软件公司为Orbitz开放的机票搜索程序中, 有20万行的common lisp程序,使得其搜索能力比竞争对手高出许多个数量级。(2011, ITA software LLC 被google收购。)

语言的编程能力越强大,写出来的程序就越短。

1 行Lisp代码相当于20行C代码。在一个高度竞争的市场中,即使开放速度只相差两三倍,也足以使得你永远处在落后的位置

hierarchy of disagreement

image

梦寐以求的编程语言

C.S Lewis

一心让臣民行善的暴君可能是最专制的暴君。

编程语言不是存在于真空之中,必须为它找到一个依附的系统。

如果一个编程语言只有语法规则,而没有一个好的implementaton,那就不能算完整的编程语言。

https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628 是一个好的典范。

简洁性是静态语言的短板。没人愿意在程序的头部写上一大堆的声明语句。只要计算机可以自己推断,就应该让计算机自己去推断。

对于制造工具的人来说,总是会有用户以违背你本意的方式使用你的工具。

外科医生:那些内科医生真是令人讨厌,总是喜欢谈论一辈子只能遇到一次的病例。这就是他们的问题,只喜欢古怪的东西,讨厌普通的常见病例。

黑客觉得某个bug非常诱人,一定要追踪下去。

优秀函数库的重要性将超过语言本身。

为了提高运行速度,并非精心选择一种静态类型的语言,没必要每个函数的每个参数类型都声明清楚,你只需要在瓶颈处声明清楚参数就行了。所以,更重要的是你需要能够找出瓶颈在什么地方。

我有一个朋友,他的客户第一次提出某种需求时,他很少理会。因为他知道人们有时候会想要自己并不真正需要的东西。为了避免浪费时间,只有当客户第三次或第四次提出同样的需求时,他才认真对待。

大多数人接触新事物时都学会了使用类似的过滤机制。甚至别人提到十遍以上才会留意。这样做完全合理。因为大多数热门新商品事后被证明是浪费时间的噱头,没多久就消失得无影无踪。

发明新事物的人必须有耐心,要长年累月不断做市场推广。人们注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。

自然成长式的创业者坐在自家车库里,觉得自己又穷又可怜。但是我想他们不必难过。最终看来,自然成长回避大爆炸式产生更好的技术,能为创始人带来更多的财富。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容