《黑客与画家》

这本书经常听人推荐,最近有时间,学习学习大神的思想,书名挺特别的,没看之前,会很难想象黑客与画家之间会有什么联系。

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

    作者自己青少年时期的经历,一个“书呆子”的自白。但我始终觉得作者本身并不是“书呆子”,而“书呆子”只是自己给自己贴的标签而已,感觉作者只是想给我们说明一个问题,“书呆子”通常在学校是不受欢迎的,但是为什么会这样?。
    学校里存在这样的一类“怪人”,他们聪明,不善交际,会收到其他同学的排斥。这种排斥或者说不收欢迎,作者认为来源于其他孩子对于聪明的嫉妒。但我觉得,其实展望整个成年人的世界,也是一样的,在学校时期大家嫉妒的是聪明,在社会时期大家嫉妒的是金钱,青少年和成年人对待书呆子的态度会有所不同,只是他们嫉妒的焦点变了而已。
    在这个本就无聊和残酷的学校或者社会环境中,了解自己不受欢迎的原因,客观的看待它并接受它,并鼓励这些人找到自己在乎的事情,向着自己的目标前进就好。

2.黑客与画家

    黑客与画家,作者的双重职业,程序员这个职业就如同城市里某个工地角落里的搬砖的工人,不,自信点,就是个搬砖的。读完后,有点飘,像个艺术家,逼格提升好几个档次。当然,这只是句玩笑话。
    计算机科学并不是一门基础科学,基础科学是发现世界本身规律的,规律本身存在,科学家门只需要发现就可以,不需要创造。而计算机科学是一门工程学,是借助已有的基础科学进行创造,创造出这个世界本不存在的事物。我们应该像画家一样,不断地创作,磨练自己的绘画功底(编程技术),通过作品(软件)来提升自己的创作水平,打磨出流传后世的经典之作。其实我想不光是程序员,很多职业(建筑师、音乐人、作家、产品设计师)都应该对自己的职业有重新的认识,把自己看待成艺术家,利用自己的智慧和才能完成自己的作品,而不是像完成任务一般。
    还有一点我感触挺深,就是作者说的,写程序先不要想得去优化或者完善它,一股脑不管对错,先把代码堆上去,确保大体上是正确的,然后再慢慢修改。如同做一幅人物画,先勾勒出人物的轮廓样貌,再通过不断地修改,完善每一个细节,最终完成作品。记住,永远不要过早的进行优化。

3.不能说的话

    有什么话是这个时代不能说的,为什么不能说?思考这个问题能够帮我们更正确客观的看待这个时代。历史的常态似乎就是,任何一个年代的人们,都会对一些荒谬的东西深信不疑 。他们的信念还很坚定。只要有人稍微表示一点怀疑,就会惹来大麻烦。现在言之凿凿的东西,有可能在未来人的眼里却是荒诞不经。就如同我们现在去回头看看10年前流行的东西,都会笑出声,然后感叹,那时的自己真够傻的。
    如何能使自己不受流行的影响,独立思考,可能帮助我们找到真相。如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑,才能不被潮水淹没。

4.良好的坏习惯

    大众眼里,“黑客hacker”就是入侵计算机的人。可是,在程序员眼里,“黑客”指的是优秀的程序员。而黑客还有一个特点,就是他们看似非常不服管教,喜欢突破束缚,其实是他们更向往自由。他们认为不服管教的这种行为,解放了自身的创造力,是财富与力量的源泉。而这种行为本身是则是黑客自己“良好的坏习惯”。

5.另一条路

    互联网应用对于桌面应用的优势,就好比在过去大型机对于个人电脑优势一样,他只是现阶段的一个发展趋势,并不是永久的,有一天肯定会出现新的软件形式替代之,这就是作者所说的另一条路。任何一个事物的发展总是走向更专业化的分工,互联网让用户可以更简单的使用软件,把软件复杂的运行维护、安全防护交给更为专业的互联网公司去做,这有助于他们不断地完善自己的软件已帮助用户完成自己的需求。

6.如何创造财富

    财富不等于金钱,财富是劳动创造的实际价值,而金钱是实现实际价值交换的介质。创业的本质是在极短的时间内创造足够的财富,想象一下把你低强度的工作四十年压缩成你以极限强度工作四年,你可能创造出超高的价值。
    说到工作,我们必须足够的了解工作的本质,工作到底是什么,工作是的本质创造出人们需要的东西,而不是你是否加入一家公司。你加入一家公司,是加入一个集体,他同样是为别人制造需要的东西。
    了解到工作的本质后,还要明白一点,要致富,你需要两样东西,可测量性和可放大性。小团队=可测量性,高科技=可放大性。
    可测量性其实就是每个人的创造的财富可测量,小团队在这方面有天然的优势。大公司和创业公司的区别在于,大公司往往无法统计个人的贡献,就好比有一艘1000人开的大船,优秀的人滑地再努力,也不会对船速有太大影响,他们的贡献都被平均化了,但如果从中选择前1%的划船高手组成一个小船团队,他们的效率会得到无限的提升,因为每个人的努力都会影响船速,优秀的人往往更愿意和优秀的人合作。创业就是要组建这样一个小团队,这个小不是小村庄的小,而是需要全明星第一阵容的那种小。
    可放大性说的简单点,就是可复制性,比如麦当劳,就是设计一套快餐服务体系,复制到全世界的每一个角落。同时还要懂得构建自己的技术壁垒,增加别人复制的难度。
    最后,还要有一个适合创业的社会环境,也就是在这个时代,法律会保护创造财富的人,防止他们的财富不被别人抢夺。

7.关注贫富分化

    “一个社会需要有富人,这主要不是因为需要富人的指出创造就业机会,而是因为你需要他们在支付的过程中做出的事情。”即他们创造财富的过程。

8.防止垃圾邮件

    利用统计学设计出来的垃圾邮件过滤系统,要比普通通过内容判断的方式要精确很多,最主要的是,它的误判率很低。其实这也给我们一些启发,计算机中有很多基于统计学的算法,他们不会对某个问题作出准确的判断,只做出概率性的判断,例如,一个质数如果通过了多少次的“费马小定律”检查,他就有百分之多少的概率为质数。这是一种更好的思维方式,在解决某些问题时,它能帮我们突破瓶颈。

9.设计者的品味

    品味就像美丑一样,是有好坏之分的。虽然这个世界有人喜欢“美”,也有人喜欢“丑”,但是美丑的界限是分明的,就如同品味的高低一样。好的设计具备这些特点、简单、永不过时、解决主要问题、有点趣味性、看似容易、对称、模仿大自然、一种再设计、能够复制、奇特、成批出现、大胆的。作者总结的特点有点多,但是我们可以通过这些特点反过来验证自己的设计是否称得上是一个好设计。

10.编程语言解析

    编程语言的发展过程像一个倒三角型,下层是机器语言,上层是各种高级语言,高级语言通过编译器或者解释器将自己的语言翻译成机器语言运行。高级语言更接近人类的语言,或者说更符合人类的思维习惯,这样做有很多的好处,可复制、可移植等等。但是从语言发明出来,程序员之间就存在着语言的歧视,其中谈论最多的就是静态类型语言和动态类型语言之争,理论上来讲,每种程序都是可以被这些高级语言实现的,语言这种东西,仁者见仁,智者见智吧。

11.一百年后的编程语言

    语言的发展离不开机器的发展,当计算机发展到一定程度,语言也会发生一些变化,就像计算机的性能在不断提升,这使得程序的运行效率在某些情况下变得不是那么重要,比如对比一个编译器类型语言的程序和解释器类型语言的程序,在之前的计算机,编译器肯定是效率会高于解释器,但是随着机器硬件的性能提升,这种效率差异正在缩小,甚至可以被忽略,这时人们就开始更在意另一些特性,也就是脚本语言在程序运行期的灵活性,再比如说编程语言的便利性。按照这种思路去构思下一百年后的编程语言有助于你更好的理解和应用你目前使用的语言。

12.拒绝平庸

    Lisp语言是一门比较优秀的语言,它由表达式构成,没有一些声明性的语句,这样的程序写出来结构非常简单,简单到你能够直面问题本身,而不被其他语言本身的问题困扰。

13.书呆子的复仇

“技术本来就应该是尖端的。编程语言的所谓“业界最佳实践”,实际上不会让你变成最佳,只会让你变得更很平常。如果你想在软件业获得成功,就是用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。”

14.梦寐以求的编程语言

    语言的流行不取决于它本身,还依赖于语言本身的计算机系统。一种好的编程语言,具备的一下特点:简洁,用它写出的代码足够的少。可编程性,也就是给编程者足够的自由,能让他们按照自己的意愿去编写程序。一次性程序,方便编程者去编写一些一次性使用的程序。函数库,有强大的函数库支持。效率,运行效率较快。时间,经得起时间的考验。再设计,适合软件的不断完善和修改。其实这些特征与作者第九章讲的好的设计特征很吻合。

15.设计与研究

    画家之间流传着一句谚语:“画作永远没有完工的一天,你只是不再画下去而已”。软件又何尝不是如此呢。

    很值得一看的一本书,引人深思。最近刚好接触到Lisp语言,对作者后面几章的观点理解更深刻,Lisp确实很优秀。大家有时间也可以学习学习。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章