首页
论坛
专栏
课程

他说,编程的黄金时代已到

Editor 发布于 看雪学院 2018-12-20 17:59

【黑客】界有这么一本书,已经畅销了十四年,并且还在继续被人们追逐着、关注着。


这本书就是《黑客与画家》,它的作者是美国互联网界举足轻重、有“创业教父”之称的哈佛大学计算机博士 Paul Graham




这本书出版于2004年(英文版),其中不少文章写于2001年,查询了一下,中本版应该是2011年才有的。




14年过去了,为什么今天我们还要谈论这本书呢?


《黑客与画家》的译者阮一峰认为,这本书之所以依然能够吸引14年后的读者有两个原因:


第一,PaulGraham写的不是技术,而是技术背后的思想。就像数学一样,正确的思想是不会过时的。


第二,PaulGraham的着眼点是长远的未来,内容主要不是分析现状,更不是总结过去,而是展望未来,以未来指导现在。比如第11章《一百年后的编程语言》就是研究一百年后人们会怎么编程,从而推导到我们现在应该如何编程。



Paul Graham的语言也吸引着今天的人们继续关注这本书。


PaulGraham在 2001年,讨论到苹果与微软的PC之争时,认为 "苹果公司还没有失败,如果它能把iPod升级成手机,并且将网络浏览器包括在其中,那么微软公司就有大麻烦了。" 今天,我们已经共同见证了这一预言。更有魔力的是那些还没有实现的语言,比如,Lisp语言将成为主流。


Paul Graham看到了更完整和更遥远的世界,14年算什么呢?Paul Graham要和我们讨论的可是一百年后的编程语言啊!



关于这本书


这本书不仅是写给程序员和创业者的,更是写给普通读者的,作者最大的目的就是通过这本书让普通读者理解我们所处的计算机时代。而理解计算机的关键,则是要理解计算机背后的人。


“表面上这是一个机器的时代,但是实际上机器的设计者决定了我们的时代。程序员的审美决定了你看到的软件界面,程序员的爱好决定了你有什么样的软件可以使用。”


我们的时代是程序员主导的时代,而伟大的程序员就是黑客。本书就是帮助你了解黑客,只有这样,你才掌握了理解这个时代的钥匙!


《黑客与画家》共有15个主题内容:为什么书呆子不受欢迎、黑客与画家、不能说的话、良好的坏习惯、另一条路、如何创造财富、关注贫富分化、防止垃圾邮件的一种方法、设计者的品味、编程语言解析、一百年后的编程语言、拒绝平庸、书呆子的复仇、梦寐以求的编程语言、设计与研究。(有没有很酷啊,每一个主题都好想看!)



而在你开始之前,需要明白的是Paul Graham要让你掌握的这把钥匙——黑客,到底是一个什么样的群体。



黑客就是最优秀的程序员


《黑客与画家》中,“黑客”是指最优秀的程序员,而不是入侵计算机系统的人。比如,“开源运动”创始人埃里克·雷蒙德,微软公司创始人比尔·盖茨,他们都是真正意义上的黑客。




黑客相信,只要有助于改进现状、探索未知,人们就应该被允许自由地使用各种工具和信息。当一个黑客需要一样东西来帮助自己创造、探索或者改正某种设备时,他不会自找麻烦,不会接受那些财产专有权的荒谬概念。这就是黑客有时会入侵计算机系统的原因,他们的主要目的并不是侵犯别人的利益,这与那些计算机罪犯是不同的。




“只有传统意义上的黑客才能被称为hacker,而那些恶意入侵计算机系统的人应该被称为cracker(入侵者)。”这个观点已经在程序员社区中得到普通认同。然而在普通人的心中,黑客的形象几乎等同于“书呆子”,而“书呆子”并不是一个什么好的形容词。



为什么书呆子不受欢迎?




作者提出了一个很有价值的观点,“答案就是他们真的不想让自己受欢迎。”作者认为,书呆子在选择受欢迎和聪明中,果断选择了后者,他们的注意力不在社交上,而在其它地方。


电影《美丽心灵》(2001年)中的那个性格孤僻、不合群的男主角就是一个书呆子,这部电影是根据美国著名数学家John Nash的故事改编而成的。John Nash大学期间以行为古怪而闻名,30岁患上了严重的精神分裂症,但因其对博弈论的突出贡献在其66岁的时候获得1994年的诺贝尔经济学奖。




文艺复兴时期的代表人物Leon Battista Alberti有一句名言:“任何一种艺术,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入。”


John Nashd的全身心投入让他赢得了诺贝尔学奖,同样地,那些被我们视为优秀的程序员——黑客,他们也付出了自己相当的精力和时间。


我想,作者在探讨书呆子成因和心理之外,也还在探讨那些具备“书呆子精神”的专注,正是这种专注,让一些人成就了自己,取得了让人称叹的成绩。


“当你所做的事情能产生真实的效果,那就不仅仅是好玩而已了,发现正确的答案就开始变得重要了,这正是书呆子的优势所在……书呆子并不是失败者。他们只是在玩一个不同的游戏,一个更接近于真实世界状况的游戏。成年人明白这一点。成功的成年人,几乎都声称自己在高中属于书呆子。”——John Nashd



黑客与画家


这本书的第二个主题就是【黑客与画家】,也正是本书的名字。那么,作者为什么要把黑客和画家放在一起呢?


PaulGraham说,“在我知道的所有行业中,黑客与画家最相像”。


1、时间的考核




有时,黑客做的事情被称为“软件工程”(software engineering),但是Paul认为与其说优秀的软件设计师是工程师,不如说他们是建筑师。建筑师决定做什么,而工程师思考怎么做。


黑客真正想做的是设计优美的软件,但是是否具有“良好的设计感”,这是一个需要考核的问题。


Paul说,“人们无法考核你的工作,甚至误解你的工作,都不是最糟的事。更大的危险是你自己也会误解自己的工作。”


那么有效的考核是什么呢?作者认为是——时间。


"经过岁月的洗礼,优美的东西生存发展的机会更大,丑陋的东西往往会被淘汰。不幸的是,这种考核需要的时间可能比一个人的生命还要长。塞缪尔·约翰逊说过,人们对一个作家的评价,需要100年才能达成一致。你必须先等他的那些有影响力的朋友都死了,然后再等他的追随者都死了,才能对他有一个公正的评价。"


黑客编写的软件是需要时间的考核的,甚至,黑客所热爱的编程的命运本身也是在被时间考核着。


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


在达·芬奇的年代,绘画并不是一件很酷的事情,达·芬奇用自己的工作推动绘画成为一种伟大的表达方式。同样,编程到底能够有多酷,取决于我们能够用这种新媒介做出怎样的工作。”



2、day job




黑客如何才能做自己喜欢的事情?


Paul认为这个问题的解决方法是——day job(“白天工作”),这是一个几乎所有创作者都指导的方法。画家和作家尤其如此。


“如果幸运的话,你能找到一份与你的“真正工作”非常相关的“白天工作”……钻研某种编程语言或操作系统的黑客,很可能会得到一份使用这些工具的“白天工作”。当我说,黑客解决生计问题的方法是找一份“白天工作”,然后在其余时间开发优美的软件,我并没有说这是一个新方法。开源软件界的黑客早就这样做了。我想说的其实是,幵源软件的这种工作模式可能就是正确的模式,因为它已经被其他领域的创作者都验证过了。”



3、动手

黑客还能从画家身上学到的是——如何学习编程。


画家学习绘画的方法是动手画,黑客学习编程也理应如此。就像我们了解的那些厉害的黑客,他们并不是在大学期间才学习编程的。比如,前段时间和大家分享的“世界头号黑客”——凯文·米特尼克(点击即可阅读),在15岁时就破解北美空中防务指挥系统成功。可想而知,他的动手练习远远早于15岁。




“对于黑客来说,采取像画家这样的做法很有好处:应该定期地从头开始,而不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法都以修订版的形式包括进去。”



4、对美的狂热追求

黑客和画家一样,对美有着狂热的追求。Paul 就坦言,“看到代码前面的缩进乱七八糟,或者看到丑陋的变量名,都会把我逼疯的。”


“如果黑客只是一个负责实现领导意志的技术工人,职责就是根据规格说明书写出代码,那么他其实与一个挖水沟的工人是一样的,从这头挖到那头,仅此而已。但是,如果黑客是一个创作者,他从事的就不是机械性的工作,他必须具备灵感。”



5、合作

历史上很多伟大的艺术品都是多人合作的结果,当多个画家共同创作一幅作品时,每个人画的部分是不一样的。


同理,多人开发一个软件,就需要合作,而合作要注意不可“过头”,否则就没有人真正“拥有”某块代码,就会变成杂物间,无人管理。就像绘画合作那样,有人主画,有人辅助。


“正确的合作方法是将项目分割成严格定义的模块,每一个模块由一个人明确负责。模块与模块之间的接口经过精心设计,如果可能的话,最好把文档说明写得像编程语言规范那样清晰。”



6、人

伟大的绘画作品都是画人的,因为人类总是对自身感兴趣的。比如《蒙娜丽莎》、《亚威农少女》、《伦勃朗63岁自画像》…..




就像绘画作品一样,大多数软件是为人类用户准备的。所以,黑客必须像画家一样,时刻考虑到用户的人性需要,这样才能做出伟大的产品。


Paul Graham说,眼下看来艺术家比黑客更酷,但是我们不应忘记,古时候绘画蓬勃发展的那些黄金年代,画家也不是像今天这样酷的。我们能够有把握说的就是,现在正是编程的黄金年代!





《黑客与画家》正在重塑的不只是程序员的看世界的方式,也在帮助每一个想要在未来游刃有余生活的人重新认识这个我们生活的时代。


如果你不再满足只是作为一个普通程序员,而想成为一个真正的黑客,你应该了解真正的黑客如何看待世界和思考问题。


或许你想获得在这个时代以及未来的关键(重要)钥匙,那么你应该去了解黑客到底是一个什么样的存在。


而这一切,Paul Graham早在14年前,甚至更早为你准备好了!




Live in the future, then build what's missing

——Paul Graham





来源:

  • 向着未来而生----《黑客与画家(精装本)》序言,阮一峰
  • 《黑客与画家》


转载请注明:转自看雪学院


更多资讯:



分享到:
最新评论 (0)
登录后即可评论