下载地址 https://www.lanzous.com/i3el74j

1.为什么书呆子不受欢迎

我也时常在思考我们为什么要受人欢迎,为什么要迎合别人的喜好,把迎合、取悦别人、让别人喜欢我们的精力用在看书和观察这个有趣的世界多好,何必要为了别人而让自己活得很无趣呢,但这个社会上的人大都在这么做,我虽然觉得这有违我内心的感受,我还是为了能让大家接受我而在变得与他们相同。看了这篇文章,我知道了我并不孤独,书呆子之所以不受欢迎,是因为他们把精力都用在了读书和观察这个世界,受欢迎是你自己做出来的,受欢迎要耗费很多的精力,让我们活在别人的喜好里,哪还有时间去思考呢。受欢迎,是从小受到家庭的贯输,也是自己的选择,受别人欢迎,这样别人才能接受你,这样你才会有安全感不会孤独。书呆子是这个世界觉醒最早的人,他们才是改变世界的人,因为他们一直是在思考真实世界所看重的东西。我们应更多的关注青年人,尤其是青年人中的这些书呆子们,不能让学校平庸的教育磨平了这些青年人的灵性,他们的活力需要释放,要引导他们多读书多观察这个世界多思考,而不是把精力都用在跟别人比拼怎么受人欢迎上。

2.黑客与画家

黑客和画家都在做着相同的事情,他们都在创作优秀的做品。社会把黑客的职业定义为“计算机科学”,这限制了黑客和人们的想象,黑客是可以有自主的创作出客户需要的有趣而优秀的产品,不是机械的只能按步就般听人指挥的挖掘工,黑客比拼的不是做出更好的理论研究而是创作出优美的作品。既然黑客是在创作,那么他就像画画一样,不是构思出完美的作品一次成形,而是先创作出草稿,再不断地去完善它。创作也是一个不断垒积的过程,在一个产品中运用过的技术,再运用到下一个作品中,这样不断地创作新的作品使自己能写出趋近完美的作品。当然创作时也要注意士气的重要性,在精力沛时做难的事,在精力低谷时去做容易的事,这样我们才能持续的保有创作的热情。黑客在大公司中很难做出最优秀的作品,因为写和改程序都要通审核委员会的批准,所以对于优秀的黑客创业是他们的最佳选择,但创业要选择那些大公司还难以顾及的新兴市场,并更多的关注人的需求,做出市场稀缺的更易于人使用的产品才会有利于公司的持续经营。

3.不能说的话

有哪些话是不能说的?被反对的言论会不是真的?道德传统是怎么来的?我们为什么要尊守这些传统?古今中外为什么会存在很多不同的文化观念?哪些观念束缚了我们思维?时尚潮流是怎么起来的?我们为什么要跟?还有那些被贴了标签的定性言论和行为会不会太过于片面?等等这类禁忌问题都是值得我们去反思的,如果你能跳出传统思维,提出惊人的观点,这往往就是被人称为的“创新”了。但你一旦发现了不能说的话深层原因,还是不要直接跟大众说的好,因为会很多人站出来反对,如果你跟他们辩论,就再也不能独立的思考了。

4.良好的坏习惯

黑客是不服从管教的,而哪一个追求自由意志的人愿意服从严厉的管教呢?现在的知识产权、法律制度越来越严格,初心可能是为了社会的安定团结,但也往往拘束了人的自由思想和创新精神。一个人们拥有言论自由和行动自由的社会,往往最有可能采纳最优方案,而不是采纳最有权势的人提出的方案。而在严厉的制度下产生极权主义的话,那会是非常可悲的,不禁束缚了人的思想自由和创新精神,也很难被废除掉。所以一个社会的宽容精神有多么重要呀,文艺复兴时期的佛罗伦萨和现代的美国都曾做到过,而正因为他们做到了,才促进了整个世界的变革。

5.另一条路

作者当时(可能是2010年)畅想的桌面软件互联化,现在已经实现,现在有云计算、桌面云、云存储、云笔记、云办公、APP、大数据等等,使用户端的软件都已轻量化,不再用找专业人士或要自己懂得IT技术了。作者为何在八九年前就能预见到这种趋势呢?他是怎么想到的呢?我想他是站在了从用户的角度或者也可以说是从人的角度去看待问题的,如果用户什么都不懂,如何才能减少用户使用软件的麻烦,让用户拿到你的软件在不看说明书的情况下就会使用,用户怎样使用软件才方便?以用户为中心考虑问题,然后倒着推回自己要怎么做才能解决用户的种种困扰。

6.如何创造财富

让我震惊的一章,道出了我从来不知道的创富秘密,至少对软件行业是如此。可以把创业想象成一个压缩过程,你的所有工作年份被压缩成了短短几年,你不再是低强度地工作四十年,而以极限强度工作四年。在高技术领域,这种压缩的回报尤其丰厚,工作效率越高,额外报酬就越高。创业可以快速致富,大多数生意的目的就是为了创造财富,做出人们真正需要的东西。要致富,你需要两样东西:可测量性和可放大性。你的职位产生的业绩,应该是可测量的,否则你做得再多,也不会得到更多的报酬。此外,你还必须有可放性,也就是说你做的决定能够产生巨大的效应。如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。小团体=可测量性,因为公司越小,你就越能准确估计每个人的贡献。高科技=可放大性,因为如果你解决了一个热门的技术难题,别人都会使用你的解决方案,这就是可放大性。

7.关注贫富分化

贫富分化的的主要原因是每个人的技能不同,导致收入的不同。如大型上市公司CEO大概是普通人的100倍,职业棒球选手的年收入是普通人的72倍等。一个人的工作具有多少价值不是由政府决定的,而是由市场决定的。如果人们喜欢棒球甚于喜欢诗歌,那么棒球运动员的收入就是要比诗人的收入高。而且人与人之间确实存在着重大差别,我们不会用100个人组成的委员会替换乔布斯来掌管苹果公司,也不会用100个普通人来交换一个篮球明星去打球。技术的发展是否加剧了贫富分化?技术的发展确实拉大了收入差距,但却拉近了富人与普通人的生活水平,看看我们现代的生活就能感受到与过去有多大的不同。作者提出了与社会主流想法相反的观点,他认为现代社会的收入差距扩大是一种健康的信号。这是因为只要你压制收入差距的扩大,不管是用偷窥私人财产的做法(封建社会),还是用高额税收的做法(某些现代政府),最终结果看来都是一样的,那就是社会作为一个整体变得更贫穷了。一个社会需要有富人,这主要不是因为你需要富人的支出创造就业机会,而是因为他们在致富过程做出的事情。如果你让他致富,他就会造出一台拖拉机,使你不再需要使用马匹耕田了,这样我们大家都跟着富裕也不用像以前那么辛苦了。

8.防止垃圾邮件的一种方法

虽然这章讲的是防止垃圾邮件的一种技术方法,但是从作者的叙述中可以看出选对工具和方法并不断尝试是多么重要。实际上作者是在解决自己的问题,他一直受到垃圾邮件的困扰,并为此耗费了大量的精力,后来他找到了统计方法中的贝叶斯方法在不断测试和调整后终于让垃圾邮件过滤率达到了99%以上,而最重要的是没有一封正常邮件被误拦截,这太重要了,不能因为一个方法好用,而把正常邮件也损耗一部分,哪怕是一封,都有可能造成重大损失。所以不误判一封正常邮件应是垃圾邮件过滤的底线,否则就没有用好这个工具和方法,在没达到的情况仍然要不断尝试直到达到要求。防止垃圾邮件不能指望法律上严厉整治,因为垃圾邮件是商家的推销手段,如果发送垃圾邮件能有效获得利润,他们仍然会使用。而使用垃圾邮件过滤机制会使这种推销成本提高,如果推销成本高于获取的利润,那么垃圾邮件这个渠道也许自然给堵塞掉了。我没搞懂贝叶斯过滤技术,就在维基上查了一下,发现正是因为作者解决了自己被垃圾邮件的困扰,却大大加强和普及了这项贝叶斯过滤方法,解决了自己的痛点却造福了整个社会,善莫大焉。

9.设计者的品味

人类的思想是没有经过整理的无数杂念的混合。众多不同学科对“美”的认识有着惊人的相似度。优秀设计的原则是许多学科的共同原则,一再反复地出现。

作者提出了如下十四条优秀设计的原则:

好设计是简单的设计。

好设计是永不过时的设计。

好设计是解决主要问题的设计。

好设计是启发性的设计。

好设计通常是有点趣味性的设计。

好设计是艰苦的设计。

好设计是看似容易的设计。

好设计是对称的设计。

好设计是模仿大自然的设计。

好设计是一种再设计。

好设计是能够复制的设计。

好设计常常是奇特的设计。

好设计是成批出现的。

好设计常常是大胆的设计。

10.编程语言解析

从机器语言到高级语言,再到开放源码,人们集思广益让软件更加得心应手,让bug变得更少。而不同的语言之争,以及对象与过程之争,让人们从底层走向了抽象层,走向了编程语言的文艺复兴。程序员活在这个文艺复兴时代可能是一件好事。如果我们所有人都使用同一种编程语言,反而有可能是坏事。

11.一百年后的编程语言

作者猜测一百年后,人们还是使用与现在差不多的程序指挥计算机。编程语言进化缓慢的原因在于它们并不是真正的技术。语言只是一种书写法,而程序则是一种严格符合规则的描述,以书面形式记录计算机应该如何解决你的问题。所以,编程语言的进化速度更像数学符号的进化速度,而不像真正的技术(比如交通或通信技术)的进化速度。数学符号的进化是缓慢的渐变式变化,而不是真正技术的那种跳跃式发展。找到编程语言进化的主干。 一种语言的内核设计的越小,越干净,它的生命力就越强。因为一种垃圾会产生更多的垃圾。浪费程序员的时间而不是浪费机器的时间才是真正的无效率。一百年后的程序员最需要的编程语言就是可以让你毫不费力写出程序第一版的编程语言,尽管它可能运行的很慢。

12.拒绝平庸

如果别人用什么技术,你也用什么技术,那么你大概只能使用Windows了。选择使用哪一种技术的时候,你不能考虑别人的做法,只能考虑什么样的技术能最好地完成工作。

13.书呆子的复仇

认为所有语言都一样的看法的缺点是自欺欺人,但是优点是可以使许多事情变得很简单。这就是为什么它被广泛接受的主要原因。

技术本来就应该是尖端的。正好伊拉恩.加内特所说,编程语言的所谓“业界最佳实践”,实际上不会让你变成最佳,只会让你变得很平常。如果你选择的编程语言使得你开发软件的速度只有(选择更激进技术的)对手的几分之一,那么“最佳实践”真的起错了名字。所以作者有了两点结论,他认为它们非常有价值。事实上,这是他用自己的经历换来的。第一,不同语言的编程能力不一样。第二,大多数经理故意忽视第一点。你把这两点事实结合起来,其实就得到了赚钱的诀窍。ITA软件公司是运用这个诀窍的典型例子。如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。

14.梦寐以求的编程语言

一种语言必须是某一个流行的计算机系统的脚本语言才会变得流行。c之于unix,fortran和cobol之于ibm大型机,vb之于windows,lisp之于emacs,java和js之于浏览器。

只要是计算机能够自己推断出来的事情,都应该让计算机自己去推断。

优秀程序员会突破设计者提供给用户的外部语义层,试着控制某些高级抽象语言的内部接口。

黑客语言总是稍微带一点放纵不羁的个性,整洁而又混乱。整洁表现的是设计的很清楚,内核由为数不多的运算符构成,易于理解。混乱是可以按自己的方式自由使用。未来的函数库应该像语言的内核一样精心设计,优秀的函数库重要性将超过语言本身。

帕金森定律:工作总是到最后一刻才会完成。

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

你必须对解决问题的能力保持乐观,对当前解法保持怀疑。

发展用户就像是一种优化过程,明智的做法是放慢速度。

15.设计与研究

如果把创造一种编程语言看成是设计问题,而不是科研方向,那么有何不同?

最大的不同在于你会更多地考虑用户。设计的时候,一开始总是问:我为谁设计?他们需要什么?比如,优秀的建筑师不会先设计,然后强迫用户接受,而是先研究最终用户的需求,然后做出用户需要的设计。设计意味着做出符合人类特点和需要的产品。但是,“人类”不仅包括用户,还包括设计师,所以设计工作本身也必须符合设计师的特点和需要。