【更新中】黑客与画家读书笔记

在这里插入图片描述

序和前言

我读的是精装本,译者阮一峰的序前面有详细介绍保罗的生平,一个非常令人钦佩的创业者。

他的求学生涯看似迷茫混沌,但他对多个维度知识领域的追求却成就了他之后的事业发展丰碑。从他的阅历我们似乎可以看到一模一样的事情在中国互联网领域正在发生,而他的思想和决策在当时硅谷的创业圈取得了伟大的成功。相信他的智慧同样对今天中国的互联网从业者们有借鉴意义。

译者阮一峰在序里面尝试用最直白的方式向大众普及本书中黑客的含义和黑客文化和对世界的影响,意在把保罗的思想传播给更广大的群体。因为世界正在被黑客一点点改变,每个想要跟上时代步伐的人都有必要了解这个群体和他们的所做所想。


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

来自一个Nerd的深度吐槽。第一章我几乎全程笑看看完的,译者成功的传达了保罗的段子手气质,诙谐幽默,一针见血的语言有点儿王尔德的风格。

他从小学开始吐槽美国的教育体制。拿工业革命前学徒制下的年轻人和现在在学校中的年轻人做对比。得出了几个非常有意思的结论。而他作为班级里“书呆子”群体的一员,自然对令他倍感煎熬和受挫的成长环境有吐不完的槽。

他总结校园生活用了两个词: 残忍和无聊。尽管各国教育体制有所差异,但是看他的吐槽居然也会让在中国应试教育下土生土长的我们产生共鸣。


2. 黑客与画家

点题的第二章,保罗是为数不多的与计算机无关的东西感兴趣的程序员。他喜欢写小说,学过哲学,人工智能研究了一半居然跑去学画画。

看书名,你很难把这两个身份联系起来,但是仔细研究黑客的工作性质和方式,你就会赞同这种类比。

现阶段人们喜欢对凡是涉及到计算机的工种统为计算机科学,但是保罗又将这个学科的人分成了三类,一种是借概念拿经费的数学家,一种是研究专门性题目的计算机博物学家,最后一种才是致力于设计优美软件的黑客。

而大学,实验室甚至是公司都不是黑客理想的土壤,他认为,优秀的黑客最好是通过创业来施展拳脚。


3. 不能说的话

读这一章,你能清楚的看到保罗对历史发展脉络的把握,他能轻松的提炼出适用于当今时代特征的规律来达到他的目的。

保罗提供了5种姿势教我们发现“不能说的话”:

  1. 看这些话是不是符合:不能说出口+正确的条件
  2. 关注被贴上标签的概念:思考与标签相关的想法
  3. 将当代观念与不同时期的古代观念diff一下,或者把世界各地的文化观念diff一下
  4. 寻找那些一本正经的捍卫者,看看他们到底在捍卫什么
  5. 观察禁忌是如何产生的,又是怎么被大众接受的

每个时代都有用这些“不能说的话”框定的范围,范围之外的禁忌限制着人们的思维行动也影响着社会的运行机制和历史发展。

保罗总结:禁忌的发起者往往是势力中等但想要强化自身同时打压竞争者的团体,因为关于禁忌的斗争属于思想层面,更有煽动性和破坏性。

之前保罗吐槽过工业时代之后的教育体制,在这里,他甚至从未成年儿童的成长语境做了绝对的否定:大人们本能的对孩子们的保护就是一种禁锢:使他们的语境远离“不能说的话”,使他们认识的世界远离真实的存在。

那我们为什么要去发现这些“不能说的话”呢,就像每个此刻阅读本书的读者一样,我们有好奇心,不愿意随大流上当,喜欢训练自己思考……更重要的是,优秀的作品往往就是从这些“不能说的话”背后脱颖而出的。

对于“不能说的话”,保罗主张不要做无谓的牺牲,他说:

与笨蛋辩论,你也会变成笨蛋

自由思考比畅所欲言跟重要

如果保罗生在二战,我想他应该是图灵,而不会是战场上冲锋陷阵的某将士。

而“不做无谓的牺牲”并不代表没有行动,不能正面刚,但是我们可以攻击禁忌的抽象描述(看看那啥之后是怎么拨乱反正的),或者使用隐喻(《1984》,《动物庄园》等作品层出不穷)还有幽默感(用笑话击垮禁忌)


4. 良好的坏习惯

保罗对于黑客的赞赏甚至多少是有些偏激的,如果脱离语境,很可能其中的一些观点会遭到别人强烈的抨击。

但我们单从黑客精神积极的一面来看,它就意味着创新。黑客们对于开源的呼吁和企业对知识产权的保护,在经历多年的博弈后,终于形成了自由又有组织的开源社区。

通过对黑客精神的抽象,保罗把话题从计算机领域拉到了更大的政策以及公民自由的讨论。也许他的论据相对于系统的社会学和经济学文章来说不够严谨和客观。但是当时表现出的隐忧还是有一定前瞻性的。


5. 另一条路

这一章前半段几乎是保罗对自己设计的互联网软件的一篇推广,但是写得极有前瞻性,1995年,他就决定放弃开发PC软件,转向Web应用。2004年成书,里面关于他对互联网服务的阐述,很多都能看到当今云计算的雏形。而2004年之后不久,云计算就开始从实验室萌芽了。

随着软件工程从传统PC转向互联网,从运维升级到盈利模式都发生了革新性的变化,这也为信息工业进入云计算提供了关键的过渡。

一个能够从哲学维度思考的架构师才是好产品经理。乔布斯是这样,保罗也是这样,他从用户的购买习惯中,悟到一个朴素的道理:如果某样东西易于购买,你就会多买一点。于是他把一次性出售软件版权的模式改为了按期订阅的方式。多年后,这个道理在马云那里被发挥到机制。现如今,云计算中的Iaas、Paas、Saas,无一例外,都在使用订阅的售卖方式。

保罗是个耿直的程序员,他毫不忌讳地谈到软件行业的价格歧视。同样的产品,也许都是同一套代码,卖给大型企业和军方的价格可能比卖给小企业的价格相差十倍。事实上,从此之后,互联网对于真正想有所作为的初创公司敞开了机会的大门。互联网公司托管了公司所有的IT职能,让团队可以专注于业务本身,而互联网技术的发展有反过来帮助公司的业务创新。

所以回头看,保罗成为创业之父的道路可以说是水到渠成。

文章后半段,保罗在讲述了自己的创业故事之后,就开始为跃跃欲试的创业者们摇旗呐喊,鼓励他们积极投身创业,直面风险,用强大的意志力和才华与大型企业争夺资源,弯道超车。互联网能掀起如此之久,如此庞大的浪潮,就是因为,在互联网的世界里,可以创造一个又一个以小博大,以弱胜强的创业神话。

回过头再来看那个激情澎湃的时代,也许如今的市场又变成了大型企业垄断话语权的阶段,大企业盘踞在开源社区基金会的席位,大数据体量下的创新需要投入更大的人力和资本。普通的独立创业者似乎没有太多的机会。但是风水轮流转,不好说在将来的哪一天,又会成为个人英雄迸发无限力量的时候。


6. 如何创造财富

这是个很大的话题,从定义财富到实操指导再到最后的知识改变世界的结论。保罗用自己的创业故事向跃跃欲试的创业者们提供了一个发家致富的范例。

他认为,科技创业是人类史上最正直的致富方式吧毕竟纵观历史,最常见的获取大量财富的方式主要是:继承、婚姻、征服、没收。

而创业的初衷总是想要解决一个具体的问题,即使从形而上学的观点上,这个动机最终会带来不好的结果,但它确实在当下创造了财富,为世界提供了新的解决方案。


7. 关注贫富分化

不太客气的说,这部分内容实际上是保罗对自己取得财富合理性的辩护,随着硅谷创业潮崛起的新一代富豪被越来越多人讨论和批评,保罗给出了非常激进的观点:他认为,因为技术革新带来的贫富差距非但不是有害的,而是正面和积极的。

如果只是从鼓励创业的角度出发,我们可以理解他这种观点体现了一种社会资本对于技术创新的青睐,但是其中的利害关系真的就那么简单吗?当资本开始限制技术攻坚,股东成了可以左右研发方向的重要因素时,科研价值和财富价值不再是相互促进的正相关关系。所谓的贫富差距还是公平和积极的吗?这一点保罗没有讲,但是他的行为早就说明了这一点:卖掉自己的产品,不去伺候难搞的董事会。


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

这篇技术挂的文章说明一个道理:学得好数学的重要性。大多数计算机工科生可能不太能第一时间想到拿起数学工具解决问题。但事实上,数学,才是最优美,最简洁的解决方式。

尽管研究生课程中一直有概率论、矩阵论这类高等数学的科目,但是很难让学生直接体会到它们对实际应用中起到的作用。保罗这篇文章很适合被编入大学(本科也有概率论)教材里去。


9. 设计者的品味

保罗总结归纳的关于好设计的特点,值得每个人抄下来贴在电脑边上作为座右铭:

好设计是简单的设计
好设计是永不过时的设计
好设计是解决主要问题的设计
好设计是启发性的设计
好设计是艰苦的设计
好设计是看似容易的设计
好设计是对称的设计
好设计是模仿大自然的设计
和设计是一种再设计
好设计是能够复制的设计
好设计是呈批出现的
好设计常常是大胆的设计

从大自然到绘画到电子产品再到软件程序,似乎都遵循着这些规律。


10. 高级语言

每个计算机专业本科生可能都经历过汇编语言的折磨,这可能也是踏入计算机行业最先要经受的煎熬吧,虽然说,这个东西在将来的学业和工作中,几乎不会再涉及,但是对于一个入门者,它的意义可能就在于:来一次和计算机真正的亲密接触。

C语言已经成为介于汇编语言和高级语言之间的存在。如非必要,越来越多的开发项目选择了更为高效的高级语言,大多数操作系统还都是用C语言写的,不过随着各家硬件厂商的努力,C语言的这方面优势也在逐渐的压缩,而它的劣势则越来越显著,就像保罗开玩笑讲的一样:人们还是希望“缓存区溢出攻击”继续存在再去,以便让大家时时保持警惕。

看一位程序员大佬跟你聊语言是非常舒爽的事。他有足够丰富的开发经验和广阔的技术视野。对于:什么是最好的语言?面向过程好还是面向对象好?之类的问题,他不会给出一个确切的答案,而是仔细分析对比其中的优劣,并且可以轻轻松松拿生活中实例做有趣的类比。这对于每一位开发者来说,也是一种警醒:对未知保持敬意和好奇,对已知保持客观冷静的态度。


11. 一百年后的编程语言

探讨这个问题很有趣,这几乎是程序开发领域的投资问题:看准哪个语言将来会异军突起,就去钻研这个语言。

在考虑这个问题的时候,硬件技术的发展是不容忽视的问题。如今很多计算机语言在十多年前看来简直是对硬件运算能力的糟蹋。至于语言本身,保罗认为是缓慢的:变成语言的进化速度更想数学符号的进化速度,而不像真正的技术。

在保罗思考这个问题的时候,其实有两个如今已成为现实的技术已经呼之欲出:云计算,AI。


**12. 拒绝平庸 **

读完保罗对于Lisp语言的安利,我就在网上找到了一片关于Lisp更系统的介绍文章。看完后只想闭嘴,去找本《Ansi Common Lisp》翻一翻。

Lisp 是象牙塔的产物,是人工智能研究的工具;因此,它对于编程界的俗人而言总是陌生的,甚至是带有神秘色彩的。然而,当今的程序员们开始怂恿彼此,“在你死掉之前至少试一试 Lisp”,就像这是一种令人恍惚入迷的致幻剂似的。尽管 Lisp 是广泛使用的编程语言中第二古老的(只比 Fortran 年轻一岁),程序员们也仍旧在互相怂恿。想象一下,如果你的工作是为某种组织或者团队推广一门新的编程语言的话,忽悠大家让他们相信你的新语言拥有神力难道不是绝佳的策略吗?—— 但你如何能够做到这一点呢?或者,换句话说,一门编程语言究竟是如何变成人们口中“隐晦知识的载体”的呢?

https://www.oschina.net/news/101976/lisp-became-gods-programming-language


13. 书呆子的复仇

Lisp在设计之初,其实并没有打算将它作为变成语言。Lisp之父约翰 麦卡锡最初只是想找到一种方式可以更加简洁地定义图灵机。是他的学生拉塞尔后来为Lisp做出了解释器,才让Lisp成为真正的编程语言。

所以保罗评价Lisp:它本质上不是一种技术,而是数学,数学是不会过时的。

计算机从业者高山仰止的产物一开始竟然并不是为解决计算机问题设计的。这也许仅仅是个巧合,但如果仔细分析Lisp的特点,就会发现,这个巧合神秘地成为了之后主流编程语言发展的灯塔,让我们回到20世纪50年代,那个还没有一个语言支持递归运算的时候,看看Lisp有多前卫。

  1. 条件结构
  2. 函数也是一种数据类型,函数与整数或字符串一样,能够存储在变量中,也能当做参数传递。一切数据类型应该有的功能,它都有
  3. 递归(Lisp是第一种支持递归的语言)
  4. 变量的动态类型。所有变量实际上都是指针,指向的值有类型之分,而变量本身没有。
  5. 垃圾回收机制
  6. 程序由表达式组成。每个表达式都返回一个值
  7. 符号类型。符号实际上是一种指针,指向符号字符串散列表的存储位置。
  8. 代码使用符号和常量组成的树形表示法
  9. 无论什么时候,整个语言都是可用的,不区分读取期、编译期和运行期。

看起来,很多特征都像在描述如今的Java、Python。但是在Lisp诞生时,它的设计思想都是与当时的主流语言背道而驰的。


14. 梦寐以求的编程语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值