作者其人
作者Paul Graham 和他的伙伴两个人 做出了互联网程序的软件Viaweb——因为他们没太学过Windows开发方法,他们也不想学。
现在Paul Graham是硅谷 T combinator (创业公司孵化器)创始人,)每年一月六月两次举行训练营,每次为期三个月。TC每次展示日风投们蜂拥而至。每个项目只有两分半介绍,都要举行三天。
其中,YC创业公式:搭建原型-上线运营(别管BUG)-收集反馈-调整产品-成长壮大。他鼓励创业公司快速发布产品,让市场检验。一定要关注客户需求和反馈。小团队更容易成功,创业成员最好不要超过三个,人越多,股权月不用一品等分配,造成内耗。创业越来越简单,越来越底,唯一的门槛就是勇气。
Hack这个词由来和意义:
MIT有一个“铁路模型技术俱乐部”(谢尔顿癖好由来),他们把解决难题方法成为Hack(字典意思是砍木头,解决难题就像砍倒一棵树)
黑客精神:(分享民主开放),
使用计算器以及所有有助与了解这个世界本质的事物都不应受到限制,任何事情都应该亲手尝试。
1. 所有信息都应该是自由的
2. 不信任权威,提倡去中心化。
3. 判断一名黑客的水平应该看他的技术能力,而不是他的学历,年龄或者地位
4. 你可以用计算机创造艺术和美
5. 计算机使生活更美好
6. 所以本书的黑客指的是愿意解决问题的码狗们而不是入侵计算器的人
黑客与画家
艺术作品(画作和程序)的评判标准不一,唯一有效的外部考核就是时间,优美的东西生存发展的机会会更大。“人们对一个作家的评价,需要一百年才能达到一致,你得等他那些有影响力的朋友都死了,然后在等他的追随者都死了,才能对他有一个公正的评价”——等敌人和朋友都走进了坟墓,对作着的喜爱既不能产生虚名,又不会带来恶意的攻击,人们阅读这些作品的时候,只有一个理由:那就是欣赏作品本身。
(但是实际上还是会有影响力的人产生喜恶,因为一些残留的印象带来关注)
编程语言是用来帮助思考的程序的,而不是用来表达你已经思考好的程序。
大学和实验室强迫黑客成为科学家,企业强迫黑客成为工程师。大公司这样做是因为了减少标准差。
大公司为了避免设计上的灾难,选择减少设计标准差,排斥差异,排斥可能性。但是大公司不用特别优秀来获胜,他们只要做到不太烂,就能赢。
所以,黑客的出发点是原创,最终得到一个优美的结果,儿科学家的出发点是别人优美的结果,最终得原创。
创业者学习的一个途径是通过范例。——临摹迫使你仔细观察一幅画是如何完成的。作家也是这样写作的,富兰克林魔拜爱迪生和斯提尔的文章,雷蒙钱德勒也如此学会了写侦探小说。
所以黑客要看源码而不是软件——开源重要性。
几乎所有伟大的作品都是画人的,因为人类总是对自身感兴趣,也为人类一直在看人,稍微的偏差都会被察觉。
换位思考很重要,所以要关注用户的需求和操作习惯而不是自己技术的表达——判断一个人是否具有“换位思考能力的好办法,就是看他怎样向没有技术背景的人解释技术问题”
“技术是写出来给人看的,顺带能在机器上运行”
现在是编程的黄金年代,就是编程年代的文艺复兴的画画戏剧和文学——一种新出现的媒介,短短几代人就探索清楚了这种媒介的大部分可能性,并把它的能量发挥到极致。
不能说的话
作者在这一结探讨了统治和盲从,秩序和自由,社会主流认知正确与否,我们如何保持独立,不被诱导不盲从。
流行一时的不仅有衣服,还有道德观念。流行道德的观念不是善而是恶。(你不穿流行衣服会被嘲笑,但是你不遵守流行道德,就会被解雇流放渐进残杀),历史的常态是,任何一个年代的人们,都会对一些荒谬的东西深信不疑。我们现在言之凿凿的东西,在未来人眼中确实荒诞不经。
你和别人都一样其实是一件很危险的事情。(为了防止他人复制,古代制作地图的工匠会故意在地图上画错一个小地方,如果你的地图与他人一样,就说明不太可能是你自己独立制作的),所以你和别人一样的时候,很可能你的想法是被灌输而不是自己得来的。
要想知道社会上哪些言论被操控,哪些意识被灌输,比较好的方式是:找出这些不能说的话和禁忌,然后去自己思考他们的对错。
找出的方式:
1. 关注“异端学说”
历史每一个年代都会给“异端学说”贴一个标签,目的是在人们思考他是否为真之前就把他们封杀。以前的标签有:“亵渎神明,冒犯神灵,异教徒,投机倒把,封建迷信“,现在标签有”有伤风化,不得体,破坏国家利益,没有责任感,不思进取”。
但是对错的谈论终归会落到结论性的标签上,比如屠杀民众会被贴上反人类这个标签,所以标签不是重点,重点是那些没有侵犯古今中外(长时间,多地域的普适性)共同认知对错的标签——比如杀人无论在哪个年代都是错的,所以反人类这个标签是对的。但是投机倒把就只有部分时空是错的,所以是个错的标签。
找到这些被些当代人们不赞同,却又不算错的观点,找到这些标签,关注他们,思考他们。
很多人文社会科学都是软科学,不想数学物理一样属于硬科学。
2. 关注禁忌是如何产生的
流行的道德观念往往不是偶然而是刻意创造出来。
伽利略因为宣传日系说被审判,但是日系说的提出者哥白尼却安然无恙因为他不反对教廷,反而把自己的著作先给教皇,但是伽利略恰逢教会反对派上台从而遭到宗教审判(没有任何人被烧死!!)
大多数斗争,不管实际上争的是什么,都会以思想斗争的形式表现出来。思想斗争更容易争取支持者(阶级斗争,反帝反封建)
我们要清晰的思考。必须远离人群甚至远离自己。但是你走的越远,你的处境就会很苦难,收到的阻力和也会越大,因为你没有迎合社会习俗,而是一步步与他背道而驰。
流行的思想/道德观念和流行的衣服很产生不尽相同,但是传播过程却很相似,遵循“引爆点”描述规律 :第一批人很强爆堵心,自觉精英意识,想把自己和普通人分别开来,第二批人追随-不是为了不同,而是唯恐不同。
所以思考哪些团体势力强大却高度紧张,喜欢压制什么思想挂念,进来有没有社会斗争,失败的是哪一方,收到他们牵连的是什么思想观念。
发现了这些后,作者建议“什么也别说”或者至少也要挑选个适合的场所说。只打那些值得打的仗。
与笨蛋辩论,你也会变成笨蛋,自由思考比畅所欲言跟重要。我承认,守口如瓶看上去是一种怯懦的行为。但是为了与他人论战,你不得不变成一个语言学家。
(佛教说不可说不可说也是这个道理,不盲目灌输而是顺其自认,不可言)
守口如瓶最大的缺点是:你无法享受讨论带来的好处了,讨论会产生新的观点。所以你要选择朋友,一起讨论异端学说而不会气急败坏。
一个好的方式是:把辩论提升到一个抽象 层次 阿瑟密勒的搜捕女巫 带有幽默和比喻去探讨
图穷匕见,作者讲了所有引出了他关于主流思考保护版权,政府职能的“异端学说”:
保护支持产权不能促进发展。因为他威胁了黑客们的“思想自由”,计算机历史上,新技术都是由外部人员开发的:新计算机是乔布斯而不是IMB发明,权威们的下一代操作系统Multics没有流行反而两个年轻人发明的Unix
(为了讽刺Mul-多的名字而起名-uni-单一)
自由是国家富强的原因,专制国家会变成腐败国家,腐败国家会变成贫穷国家。经济学里有一套拉弗曲线,认为随着税率的上升,税收会先增加再减少。
极权主义一旦形成,就很难废除。这就是为什么黑客感到担忧:政府会侵犯公民自由。他们远远就能感到极权主义威胁。美国开国元勋杰弗逊:反抗政府精神在某些场合是如此珍贵,我希望他永远保持活跃。
另一条路
作者着重写了创业公司要存活之道和自己创业的心得:
人数越多效率越慢,因为人与人时间沟通呈现指数增长。
第一年后就不用分分钟盯着服务器担心出问题,只有当新的东西添加时才需要特别关注,所以一定不要半夜发布代码。
好的销售和市场团队很有帮助,但是客户拿到的价格会因此而增加,所以好的安排是把个人和小企业客户放在第一位,其他客户该来的时候就会来
管理企业很简单,记住两点:做出用户喜欢的产品,保证开支小于收入。
迅速做出产品推向市场,并且不断加以反馈和改进,用户总是对的。
如何创造财富
作者探讨了财富本质,财富由来,大大的为有钱人们说了一堆好话。
想致富就是最好自己创业。创业公司就是解决了某个技术问题的小公司。创业不是变模式,不能改变创造财富规则:产生价值。只是创业中:1. 产生的价值会更直接返回给你个人而不会被剥削 2. 创业后你的工作强度增大你要干在公司里干的10-30倍努力来得到财富。
大公司无法准确测量每个员工获得的贡献,所以你的劳动容易被平均。
所以要想赚钱,你的工作应该具有:可测量性和可放大性。
销售比后勤的工作就要更可测量。电影明星工作就具有更放大(全世界都会看到)。
小团队=可测量 乔布斯说创业公司成败取决于最早加入公司那十个人
高科技=可放大
创新,一次开发,普遍使用。所以创业要解决的问题越难越好,比如一只狗在追你,你要楼上跑而不是往平底跑(因为同样是上楼,大狗比你更难)
创业的本质就是集中努力把后面好几年的钱都挣了。但是你不能左右到底会付出多少(可能你只想付出10倍,却付出了50倍)
创业公司大起大落,但是我们常常宁愿100%赚100万也不愿意20%概率赚1000万,所以被收购不错,可以有专业人来维持公司后续管理运转。财务上也很明智。但是收购很有学问。
促成买家掏钱的最好办法不是让买家看到获利,而是让他们感到失去机会的恐惧。次强的动机是让他们担心如果现在不买你,你的高速成长是的未来收购耗资巨大,甚至你本身就会成为他们的竞争对手。
不要让技术顽童掌控公司,因为他们不在意用户需求。收购时用户数量很重要。
财富的获得手段:赌博,投机,婚姻集成,偷窃,敲诈,诈骗,垄断,行贿,造假,开矿
财富和金钱不一定,金钱只是计量财富流动的工具。也是工具,方便大家更方便获得自己想要的东西。
作者的核心思想是现在财富不再是一个大蛋糕而是可以被创造和增加出来的。码农们写出了代码便捷了生活创造了价值,所以获得财富来犒赏他们就是应该的,这样他们才会继续写代码方便生活。
人们会需求不正确的东西(但是问题是你写出的那些通过层层剥削真正付出代价的不一定是使用服务的人,而且你写代码得到的真的值那些钱么-你可能说因为有人有需求,而且这种需求比较少的人可以提供,所以供需导致你得的多,但是要知道,大家的需求真的是需求的么,还是你用了你的资本,影响力,人性的弱点,就像制毒贩毒的也可以认为自己提供了享受服务,可以创造并享受服务么? 我们所谓的发明优化其实有限,更多我们在攫取自然资源和劳苦人民的劳作。且为了让人们产生并享受,有那些需求,我们把人民引导的那么趋同,多样性没有了。)
创造出来的财富不一定要通过出售实现价值。至少最近,科学家一直把他们创造的财富捐献给社会。
(所以资本和商人就捡着用来赚钱。这是不是意味着不公平,或者说,经商能力比真正意义上创造财富能力更能获得财富)
以前财富的来源都是矿石,奴隶,农奴,土地,牲畜。而快速获得财富的方法只有继承,婚姻,征服,没收。
以前有钱人才有马车,不管什么马车。但是工业化生产使得批量成本降低,不用很有钱就能有汽车,所以怎么体现有钱人?那就用品牌。不同牌子的汽车。技术无法使其变得便宜的唯一东西,就是品牌。夫人和穷人指尖生活差异的鸿沟正在缩小,品牌就是这种差距的遗留物。
编程相关
作者描述了软件领域各种语言层次,不遗余力的背书lisp语言,提及统计学的人工智能相关。
统计学相关处理和机械智能自己学习可以发现很多我们发现不了的,不再需要用逻辑而是统计来发现。例如:找寻关键词阻止垃圾邮件可以自己分析,但是很累,而且要像那些人一样思考,用统计独臂就很高效智能准确。
关于设计/软件设计的几点高屋建瓴:
好的设计要简单,启发性,趣味性,艰苦的(反复修改,包豪斯学派-功能决定形式),再设计
编程语言:
机器语言指的是及其读得懂的,如加法是11001101
汇编语言指是对机械语言一种简单更好理解的等效;例如加法是add (目标码)
高级语言:更高的等效:例如你可以写下:蜂鸣器响十次。然后有一个助手会把这句话翻译成汇编语言,这个助手就是编译器。你写下的蜂鸣器响十次就是高级语言的源码。转换过去的是目标码。
我们开源指的是开方高级语言的源码而不是目标码,因为源码可读。
几种高级语言都可以用,各有优劣(抽象程度排列为:lisp-ruby-perl / python- java - C/C++ - )越不抽象,越贴近机器语言,运行效率越高(所以寄出系统都是不抽象语言写的)但是作者认为越抽象语言越能体现变成思路,帮助思考。所以力挺Lisp
大部分入侵计算机手法都是利用了C语言某些特点——缓冲区溢出攻击-黑客猜出你输入缓存字节字符,多提交占据,然后他就能让自己剩下的数据提成为操作代码。(就像劫持飞机带领所有人坐满了自己就到了驾驶室)
编程语言静态/动态语言争论:静态必须制定变量类型,动态可以把任意变量设为任意值。前者可以防止bug,后者编写自由。
面向对象变成与否:比如要写程序求几何图形面积,不面向对象思路是先写代码判断什么图形,再根据相应公式求面积。面对对象是写出两个类:圆形类和方形类,先问是哪个类,再计算。虽然听起来很像,但是代码差别巨大。
面向对象的优点在于,如果你要修改程序计算其他,只要增加一块代码就可以了,甚至不用修改其他部分。对于面向对象,语言有两种思路:你可以面向对象,强迫你一定要面向对象。