黑客与画家
【美】格雷厄姆
保罗·格雷厄姆其人其事
2017-02-18
Y Combinator (Y运算子,简称YC)
2017-02-18
YC在每年的一月和六月举办两次训练营,每次为期三个月。通常每次大概有500个申请者,他们从中挑出20个项目 。每个项目将得到1.1万美元的启动资金,外加每个项目成员3000美元的生活津贴,交换条件是YC将拿走该项目5%的股份 。如果项目成功,5%的股份将非常值钱。
2017-02-18
保罗·格雷厄姆有一套完整的创业哲学,他的创业公式是:
(1)搭建原型
(2)上线运营(别管bug)
(3)收集反馈
(4)调整产品
(5)成长壮大
2017-02-18
首先,他鼓励创业公司快速发布产品,因为这样可以尽早知道一个创意是否可行。其次,他认为一定要特别关注用户需要什么,这样才有办法将一个坏项目转变成好项目。
2017-02-18
比起那些令人叫好的创意,格雷厄姆更看重创始人的素质。他说:“我们从一开始就认识到,创始人本身比他的创意更重要。”他还认为,小团队更容易成功,创始成员总数最好不要超过三个人。其中一个原因是,创始人越多,股权越不容易平等分配,容易造成内耗。
译者序
2017-02-18
20世纪60年代初,麻省理工学院有一个学生团体叫做“铁路模型技术俱乐部”(Tech Model Railroad Club,简称TMRC),他们把难题的解决方法称为hack。
在这里,hack作为名词有两个意思,既可以指很巧妙或很便捷的解决方法,也可以指比较笨拙、不那么优雅的解决方法。两者都能称为hack,不同的是,前者是漂亮的解决方法(cool hack或neat hack),后者是丑陋的解决方法(ugly hack或quick hack)。
2017-02-18
完成这种hack的过程就被称为hacking,而从事hacking的人就是hacker,也就是黑客。
2017-02-18
hack还有一个引申义,指对某个程序或设备进行修改,使其完成原来不可用的功能(或者禁止外部使用者接触到的功能)。在这种意义上,hacking可以与盗窃信息、信用卡欺诈或其他计算机犯罪联系在一起,这也是后来“黑客”被当作计算机入侵者的称呼的原因。
2017-02-18
自由软件基金会创始人理查德·斯托尔曼说:“出于兴趣而解决某个难题,不管它有没有用,这就是黑客。”
2017-02-19
恶意入侵计算机系统的人应该被称为cracker(入侵者)
2017-02-19
本书的一些章节中作者谈论的都是计算机行业的专业问题,但是他又希望让普通读者看懂,试图用口语化、生活化的语言解释专业概念,我个人感觉效果不太理想,反而使得行文稍显冗余和模糊,这一点提醒读者注意。
前言
2017-02-19
我们生活中的一切,都正在成为计算机。
2017-02-19
旅游网站Orbitz成功打入了竞争激烈的网络订房订票市场。该市场原先被两大巨头主宰,一个是微软公司,另一个是拥有数十年电子预定服务经验的Sabre。Orbitz是怎么从它们手中抢到市场的?最主要的原因就是它使用了一种更好的编程语言。
2017-02-19
Slashdot(它是黑客世界的《纽约时报》
2017-02-19
虽然黑客从外表看上去一般都是呆呆的,但是他们的大脑内部却是一个有趣得让你吃惊的地方。
1 为什么书呆子不受欢迎
2017-02-19
文艺复兴时期的代表人物阿尔伯蒂有一句名言:“任何一种艺术,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入。”
2017-02-19
在任何社会等级制度中,那些对自己没自信的人就会通过虐待他们眼中的下等人来突显自己的身份。
2017-02-19
但是我认为,孩子们欺负书呆子的主要原因也与追求“受欢迎”的心理有关。怎样才能让自己更受欢迎?个人魅力只是很小的一方面,你应该更多地考虑如何结盟。秘诀就是不停地设法使自己与其他受欢迎的人变得关系更密切。没有什么比一个共同的敌人更能使得人们团结起来了。
2017-02-19
当你所做的事情能产生真实的效果,那就不仅仅是好玩而已了,发现正确的答案就开始变得重要了,这正是书呆子的优势所在。
2017-02-19
青少年都不喜欢孤独一人,即使具有叛逆心理的青少年也是如此。
2 黑客与画家
2017-02-19
我现在认为,大学里教给我的编程方法都是错的。
2017-02-19
你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前
2017-02-19
编程语言首要的特性应该是允许动态扩展(malleable)。编程语言是用来帮助思考程序的,而不是用来表达你已经想好的程序。
2017-02-19
静态类型(static typing)
2017-02-19
小窍门:用希腊字母表示变量名会令人印象更深刻。
2017-02-19
等我来到雅虎以后,发现在他们看来,“黑客”的工作就是用软件实现某个功能,而不是设计软件。在那里,程序员被当作技工,职责就是将产品经理的“构想”(如果这个词是这么用的话)翻译成代码。
2017-02-19
真正竞争软件设计的战场是新兴领域的市场
2017-02-19
我们面试程序员的时候,主要关注的事情就是业余时间他们写了什么软件。因为如果你不爱一件事,你不可能把它做得真正优秀,要是你很热爱编程,你就不可避免地会开发你自己的项目。
2017-02-19
也许对于黑客来说,采取像画家这样的做法很有好处:应该定期地从头开始,而不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法都以修订版的形式包括进去。
2017-02-19
你不能盼望先有一个完美的规格设计,然后再动手编程,这样想是不现实的。如果你预先承认规格设计是不完美的,在编程的时候,就可以根据需要当场修改规格,最终会有一个更好的结果。
(大公司的内部结构,使得它们很难这样做。这是又一个创业公司占优之处。)
2017-02-19
如果你查看优秀软件的内部,就会发现那些预料中没有人会看见的部分也是优美的。
2017-02-19
正确的合作方法是将项目分割成严格定义的模块,每一个模块由一个人明确负责。模块与模块之间的接口经过精心设计,如果可能的话,最好把文档说明写得像编程语言规范那样清晰。
2017-02-19
就像绘画作品一样,大多数软件是为人类用户准备的。所以,黑客必须像画家一样,时刻考虑到用户的人性需要,这样才能做出伟大的产品。你必须能够站在用户的角度思考问题,也就是说你必须学会“换位思考”。
2017-02-19
判断一个人是否具备“换位思考”的能力有一个好方法,那就是看他怎样向没有技术背景的人解释技术问题。
2017-02-19
软件的部分功能就是解释自身。为了写出优秀软件,你必须假定用户对你的软件基本上一无所知。你要明白,用户第一次使用你的软件的时候,不会预先做好功课,他们没有任何准备就开始用了,所以软件的使用方式最好能符合用户的直觉,别指望用户去读使用手册。
2017-02-19
源代码也应该可以自己解释自己。如果我只能让别人记住一句关于编程的名言,那么这句名言就是《计算机程序的结构与解释》一书的卷首语:
程序写出来是给人看的,附带能在机器上运行。
3 不能说的话
2017-02-19
到底什么话是我们不能说的?为了找到答案,首先,我们可以看看,周围的人因为说了什么而陷入麻烦。
2017-02-19
第一个条件是,这些话不能说出口;第二个条件是,它们是正确的,或者看起来很可能正确,值得进一步讨论。如果达不到第二个条件,大部分情况下你都不会有麻烦。
2017-02-19
触怒他人的言论是那些可能会有人相信的言论。我猜想,最令人暴跳如雷的言论,就是被认为说出了真相的言论。
2017-02-19
这就是找出“不能说的话”的第一种方法:判断言论的真伪。
2017-02-19
除了真话以外,“不能说的话”还有一种可能。有些想法,纯粹因为非常特别,而不能说出口。比如,某个话题极其富有争议,不管是对是错,没有人敢在公开场合谈论它。我们怎样才能发现这种情况呢?
我们把这种不一定正确、但是极富争议的言论称为“异端邪说”。关注“异端邪说”,是找出“不能说的话”的第二种方法。
2017-02-19
历史上的每一个年代,都会给“异端邪说”贴一些标签,目的是在人们开始思考它们是否为真之前就把它们封杀。“亵渎神明”、“冒犯圣灵”、“异端”都是西方历史上常见的标签,当代的标签则是“有伤风化”、“不得体”、“破坏国家利益”等。以前时代的标签在今天已经不可避免地失去了杀伤力,最多只能用于讽刺。
2017-02-19
所以,如何找出那些我们自以为正确却会被未来人们耻笑的话?方法就是关注这些标签!
2017-02-19
给放射科医生看胸部X光片,请他们判断病人有没有肺癌迹象。研究人员记录了医生检查X光片时的眼球运动。研究发现,即使那些医生漏掉了一个癌症病灶,他们的目光通常也会在那个地方停留一会。这说明他们的头脑深处已经意识到那里有问题,但是这种深层的反应没有上升为自觉的意识。我认为,类似的思维机制存在于每个人的头脑中,很多看似叛逆的“异端邪说”,早就“潜伏”在我们的思维深处。如果我们暂时关闭自我审查意识,它们就会第一个浮现出来。
2017-02-19
我们可以去找那些过去被认为理所当然,如今却被认为不可思议的事情,这是用来找出我们自己正在犯下的错误的第三种方法。
2017-02-19
大多数的斗争,不管它们实际上争的是什么,都会以思想斗争的形式表现出来。
2017-02-19
思想斗争更容易争取支持者。不管哪一方获胜,他们所代表的思想也就被认为获得了胜利
2017-02-19
我并不是说斗争从来就与思想无关,而是要强调,不管实际上是否有思想斗争,斗争总是会以思想斗争的形式表现出来。
2017-02-19
想要做出优秀作品,你需要一个什么问题都能思考的大脑。尤其是那些似乎不应该思考的问题,你的大脑也要养成思考它们的习惯。
2017-02-19
优秀作品往往来自于其他人忽视的想法,而最被忽视的想法就是那些被禁止的思想观点。
2017-02-19
智力越高的人,越愿意去思考那些惊世骇俗的思想观点。
2017-02-19
不仅是在科学领域,在任何有竞争的地方,只要你能看到别人看不到或不敢看的东西,你就有很大的优势。
2017-02-19
训练自己去想那些不能想的事情,你获得的好处会超过所得到的想法本身。
2017-02-19
如果你能“远远地”跳出传统思维,提出让别人一听就脑袋轰一声炸开的惊人观点,那么你就在“小小地”跳出传统思维方面不会有任何困难。要知道,人们把后面的这种情况称为“创新”。
2017-02-19
一旦发现了“不能说的话”,下一步怎么办?我的建议就是别说,至少也要挑选合适的场合再说,只打那些值得打的仗。
2017-02-19
这时你要明白,自由思考比畅所欲言更重要。如果你感到一定要跟那些人辩个明白,绝不咽下这口气,一定要把话说清楚,结果很可能是从此你再也无法自由理性地思考了。我认为这样做不可取,更好的方法是在思想和言论之间划一条明确的界线。在心里无所不想,但是不一定要说出来。我就鼓励自己在心里默默思考那些最无法无天的想法。你的思想是一个地下组织,绝不要把那里发生的事情一股脑说给外人听。
2017-02-19
每个时代都有自己的忌讳,如果你触犯它们,就算没有坐牢,至少也会为自己惹来麻烦,干扰了正常生活。
2017-02-19
“不能说的话”太多了,如果口无遮拦,你就没时间做正事了。
2017-02-19
“守口如瓶”的真正缺点在于,你从此无法享受讨论带来的好处了。讨论一个观点会产生更多的观点,不讨论就什么观点也没有。所以,如果可能的话,你最好找一些信得过的知己,只与他们畅所欲言、无所不谈。这样不仅可以获得新观点,还可以用来选择朋友。能够一起谈论“异端邪说”并且不会因此气急败坏的人,就是你最应该认识的朋友。
2017-02-19
人们喜欢讨论的许多问题实际上都是很复杂的,马上说出你的想法对你并没有什么好处。
2017-02-19
历史上,荷兰人确实长期具有相对开放的思想。几个世纪以来,这个地势低洼的欧洲国家一直是言论相对自由的地方。在那里,你可以放心说出其他地方不能说的话。这帮助它成为学术和工业的中心。(言论自由与这两者紧密结合的历史,比大多数人意识到的还要长。)