• 作者:老汪软件技巧
  • 发表时间:2024-09-19 21:01
  • 浏览量:

前言

黑客与画家是我认为程序员必读的书籍之一,类似于人月神话、代码整洁之道类的书籍,由阮一峰老师翻译,作者将黑客(hacker也可认为程序员的代指)与画家联系起来,认为这两个职业都具有着类似的特征:技能型、解决问题的能力优先、充满着艺术型等等,评分4/5。

你真的理解黑客吗未来之路

作者格雷厄姆建议读者从三个维度去看这本书:第一是“黑客精神”和“创造者思维”;第二是“财富创造”;第三是“开拓未来”。

格雷厄姆认为,对于科技公司来说,未来充满了机会,前景一片光明。“所有东西都在变成软件。印刷机诞生后,人类写过多少个字,未来就有多少家软件公司。”

2012年年底,美国国家情报委员会发表了提交给总统的报告《全球趋势2030》,其中一个主要结论是:

“……到了2030年,没有一个国家——无论是美国、中国或任何其他大国——将成为超级霸权。相反,权力在国家之间变得分散,而且会从国家手中向非正式的网络以及个人扩散,产生深刻的影响。……个人和小团体的力量将进一步被增强,更易获得各种调用资源的能力,在解决全球性挑战方面可能更有力。”

未来就在眼前,伸手可及。《黑客与画家》就是这次旅程的指南,为你指出通往那扇门的方向。正如格雷厄姆所说,你要做的就是“活在未来,然后造出现在还没有的部分”(Live in the future,then build what's missing)。

理解黑客

黑客精神的真谛是动手去创造性地解决问题。 “解决问题”必须跟人的需求有关,需要持久地满足越来越多人的需求。“动手”需要有勇气,很务实,以行动为导向,除此以外,黑客还必须是一个积极向上的人。“创造性”则意味着不受束缚、敢于探索。此外,黑客精神还意味着独立思考,坚持说真话。“动手去创造性地解决问题”代表了创造者一系列的核心行为和思想状态。这句话虽然听上去很简单,但它具有深刻含义,且完全反映了创造者的核心要素。

黑客一词的来源

1946年,第一台电子计算机ENIAC在美国诞生,从此世界上一些最聪明、最有创造力的人开始进入这个行业,在他们身上逐渐地形成了一种独特的技术文化。在这种文化的发展过程中,涌现了很多“行话”(jargon)。20世纪60年代初,麻省理工学院有一个学生团体叫作“铁路模型技术俱乐部”(Tech Model Railroad Club,TMRC),他们把难题的解决方法称为hack。

在这里,hack作为名词有两个意思,既可以指很巧妙或很便捷的解决方法,也可以指比较笨拙、不那么优雅的解决方法。两者都能称为hack,不同的是,前者是漂亮的解决方法(cool hack或neat hack),后者是丑陋的解决方法(ugly hack或quick hack)。hack的本义是“砍(木头)”,在这些学生看来,解决一个计算机难题就好像砍倒一棵大树。那么相应地,完成这种hack的过程就被称为hacking,而从事hacking的人就是hacker,也就是黑客。

从这个意思出发,hack还有一个引申义,指对某个程序或设备进行修改,使其完成原来不可用的功能(或者禁止外部使用者接触到的功能)。在这种意义上,hacking可以与盗窃信息、信用卡欺诈或其他计算机犯罪联系在一起,这也是后来“黑客”被当作计算机入侵者的称呼的原因。

但是,在20世纪60年代这个词被发明的时候,“黑客”完全是正面意义上的称呼。TMRC使用这个词是带有敬意的,因为在他们看来,要完成一个hack,就必然包含着高度的革新、独树一帜的风格和精湛的技艺。最能干的人会自豪地称自己为“黑客”。这时,“黑客”这个词不仅是第一流能力的象征,还包含着求解问题过程中产生的精神愉悦或享受。也就是说,从一开始,黑客就是有精神追求的。

自由软件基金会创始人理查德·斯托曼(Richard M.Stallman)说:“出于兴趣而解决某个难题,不管它有没有用,这就是黑客。”

黑客行为必须包含三个特点:好玩、高智商、探索精神。只有其行为同时满足这三个标准,才能被称为“黑客”。另外,它们也构成了黑客的价值观,黑客追求的就是这三种价值,而不是实用性或金钱。

黑客伦理

1984年,《新闻周刊》的记者史蒂文·利维(Steven Levy)出版了历史上第一本介绍黑客的著作——《黑客:计算机革命的英雄》(Hackers:Heroes of the Computer Revolution)。在该书中,他进一步将黑客的价值观总结为六条“黑客伦理”(hacker ethic),直到今天这几条伦理都被视为这方面的最佳论述。

(1) 使用计算机以及所有有助于了解这个世界本质的事物都不应受到任何限制。任何事情都应该亲手尝试。

(Access to computers—and anything that might teach you something about the way the world works—should be unlimited and total.Always yield to the Hands-On Imperative!)

(2)所有信息应该都是自由的。

(All information should be free.)

(3)不信任权威,提倡去中心化。

(Mistrust Authority—Promote Decentralization.)

(4) 判断一名黑客的水平应该看他的技术能力,而不是看他的学历、年龄或地位等其他标准。(Hackers should be judged by their hacking,not bogus criteria such as degrees,age,race,or position.)

(5)你可以用计算机创造美和艺术。

(You can create art and beauty on a computer.)

黑客与画家作者_黑客与画家什么时候写的_

(6)计算机使生活更美好。

(Computers can change your life for the better.)

根据这六条“黑客伦理”,黑客价值观的核心原则可以概括成这样几点:分享、开放、民主、计算机的自由使用、进步。

为了澄清“黑客”这个概念,他们提出,只有传统意义上的黑客才能被称为hacker,而那些恶意入侵计算机系统的人应该被称为cracker(入侵者)。这个观点已经在程序员社区中得到普遍认同。

黑客之魂

为什么黑客那么在乎言论自由?我认为,部分原因在于,革新对于软件行业实在是太重要了,而革新和异端实际上是同一件事。优秀的黑客养成了一种质疑一切的习惯。

黑客真正需要的能力是:能够设计奇妙的火箭、写出漂亮的文章、理解编程原理。一句话,想要做伟大的事情。

黑客不应该花太多时间在纯概念或者纯学术的事情上,比如写一篇论文的顺序应该如下:

黑客先开发了一个很酷的软件,然后就写一篇论文,介绍这个软件,论文变成了软件成果的展示。

塞缪尔·约翰逊说过,人们对一个作家的评价,需要100年才能达成一致。你必须先等他的那些有影响力的朋友都死了,然后再等他的追随者都死了,才能对他有一个公正的评价。不只是作家,涉及到各个领域的名人皆如是。

秦皇汉武在民国之前一直被认为是祸国之君、穷兵黩武,李白杜甫在世时也只是三流诗人,海伦凯特直到去世都只是一个名不见经传的盲人女作家,多少伟大的巨作是在创造者历史之后经过岁月的细细酝酿才浓厚香醇?太多太多闻名一时的作品淹没在岁月的长河中,岁月淘沙,经久不衰的巨作一定是金子。

黑客与画家的相似之处

黑客从某种程度上,和画家、建筑师、艺术家、作家这类艺术型很强的行业是很类似的,在作者格雷厄姆知道的所有行业中,黑客与画家最相像。例如

给程序员的建议

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

2.提供简单易上手、UI美观的产品,软件的部分功能就是解释自身。为了写出优秀的软件,你必须假定用户对你的软件基本上一无所知。你要明白,用户第一次使用你的软件的时候,不会预先做好功课,他们没有任何准备就开始用了,所以软件的使用方式最好能符合用户的直觉,别指望用户去读使用手册。

3.代码的可读性是一个很重要的指标,在我上学时把程序效率看的很重要,时常想着怎么写出更快、消耗资源更少的代码。然而不得不承认这是一种错误的思维方式,重要的事情说三遍,其本质原因是:

机器执行代码的时间并没有程序员阅读代码的时间重要,程序必须写得能够供人们阅读,偶尔供计算机执行。

机器执行代码的时间并没有程序员阅读代码的时间重要,程序必须写得能够供人们阅读,偶尔供计算机执行。

机器执行代码的时间并没有程序员阅读代码的时间重要,程序必须写得能够供人们阅读,偶尔供计算机执行。

4.生命只有一次,尽量做一些伟大的事情,也许黑客也会像伟大的艺术家一样备受推崇、流芳后世。声望这个东西,总是经过漫长的时滞以后才会确立,它就像遥远星系发出的光,经过了许多光年才能被我们看到。那些如今声名显赫的绘画作品,有的来自五百年前的画家的卓越工作。在那些画家生前,没人像我们今天那样看重这些作品。1465年的人们也许会感到非常奇怪,后世的人们提起乌尔比诺城不可一世的费德里科公爵,最主要的原因居然是弗朗切斯卡把他的鼻子画得非常独特。

5.编程到底能够有多酷,取决于我们能够用这种新媒介做出怎样的工作。最富有的5%的人口占有全社会一半以上的财富,往往会认定这是不公平的。一个有经验的程序员很可能也认为这是不公平的,因为最顶尖的5%的程序员写出了全世界99%的优秀软件。

6.三岁学说话,一生学闭嘴,作为程序员更容易接触到一些前沿、真假未知的信息,尽量不去传播这些高危的、未知的信息。要是能坐上时间机器回到过去,不管哪一个年代,有一件事都是不会改变的,那就是“祸从口出”。你一定要小心自己说的话。自以为无害的言论会给你惹来大麻烦。今天,说地球围绕太阳运转真是再平常不过了,如果换在17世纪的欧洲,这么说就大难临头了。伽利略说了这样的话,结果遭到了宗教法庭的审判。

7.大部分人本质上都是随大流的人,你的观点就是从别人那里听来的,别人告诉你什么,你就相信了什么,你把别人灌输的观点当作了自己的观点,也就是说大部分人的价值观都源自于社会上其他人发出的声音。在我们不认同社会上某些观点的时候,不必马上放弃自己的观点。因为时代是会进步的,主流价值观也会进步。例如中国封建时期的君君臣臣父父子子那一套早已不再被认可,拥有成群的美姬也不再是什么风流韵事。又比如现在人们过于追求物质生活和优绩制度下的“成功”,相信这也是会被后世唾弃的,他们估计也很诧异为什么我们要这么努力获取世俗意义上的成功,而不是把重心放在生活,放在对幸福的不懈追求上。

8.你真正的工作时间其实可以是公司上班时间的2倍,如果你全神贯注,每小时的产出可以提高3倍。

本书金句

黑客精神的真谛是动手去创造性地解决问题。


上一条查看详情 +12个热门 JavaScript 动画库
下一条 查看详情 +没有了