秋风对《黑客与画家》的笔记(3)

黑客与画家
  • 书名: 黑客与画家
  • 作者: [美] Paul Graham
  • 副标题: 来自计算机时代的高见
  • 页数: 265
  • 出版社: 人民邮电出版社
  • 出版年: 2013-10
  • 第2页
    博客--再谈黑暗创投圈:从《黑客与画家》看创业之道:
    http://developer.51cto.com/art/201406/444009.htm
    1 为什么书呆子不受欢迎
    他们的心思在别的地方。
    青少年的暴力、伤害、疯狂等等一系列问题出现的原因是什么?作者给出一个见解,青少年在生产活动中几乎毫无用处,因此在他们无法参与社会活动中并扮演积极的角色;学校的监管和教育也仅仅只是做做样子走个过场,因为无论教授还是考核的内容很多都没有意义,那些成年人也没有想过这些给青少年设置的活动与学习内容的真正意义,似乎想当然地将成人觉得有意义的观念强加给青少年,并通过学校将他们圈禁起来以免在社会上到处乱窜。因此,校园生活真正的问题是空虚。
    为了逃避空虚、孤独,他们就会想尽办法加入某个集体,模仿、跟风、叛逆甚至做出其他各种疯狂的事情。
    *************************************************************************************************
    2 黑客与画家
    黑客也是创作者,与画家、建筑师、作家一样。
    黑客真正想做的是设计优美的软件,也是在创作,而创作出的作品的质量是很难衡量的,即黑客的工作量也是很难考核。
    黑客新想法的最佳来源,并非那些名字里有“计算机”三个字的理论领域,而是来自于其他创作领域。
    雇主不愿意手下的黑客为开源软件工作,但是如果你不爱一件事情,你就不可能把它做得真正优秀,如果你热爱编程,那么你就不可避免地开发自己的项目。
    大多数黑客不是通过大学课程学会编程的,他们从实践中学习。即使上了大学,黑客学习编程依然主要通过自己写程序。 像创作者一样工作,定期地从头开始,不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法都以修订版本的形式包括进去。 创作者的另一个学习途径是通过范例。开源运动最鲜为人知的优点之一,是使得学习编程变得容易了。
    坚持一丝不苟,就能取得优秀的成果。同样地,优秀的软件也要求对没狂热的追求。
    正确的合作方法是将项目分割成严格定义的模块,每一个模块由一个人明确负责。模块与模块之间的接口经过精心设计,如果可能的话,最好把文档说明写得像编程语言规范那样清晰。
    判读一个人是否具备“换位思考”的能力有一个好办法,就是看他怎样向每一技术背景的人解释技术问题。
    *************************************************************************************************
    3 不能说的话
    如果你的想法是社会无法容忍的,你怎么办?
    历史的常态似乎就是,任何一代年轻的人们,都会对一些荒谬的东西深信不疑。他们的信念还很坚定,只要有人稍微表示一点怀疑,就会惹来大麻烦。
    如果别人告诉你该相信什么,你就真的相信了,那么你就会和别人一样犯下同样的错误。
    对于“要根据社会需要改造自己的思想”这句话,很值得质疑。
    不能说出口的话需要满足两个条件,一、不能说出口;二、正确或者可能正确需要进一步讨论。 我猜想,最令人暴跳如雷的言论,就是被认为说出了真相的言论。
    当一个政治家说对手是错的,这是直截了当的批评,但是,如果他不谈论对错,而是以某些标签攻击对手,这就值得注意了。
    找出不能说出的话:1.判断言论真伪;2.关注标签;3.将当代观念与古代观念diff一下,或者将我们的观念与其他文化的观念diff一下;4.看看那些一本正经的卫道士到底在捍卫者什么(孩子的大脑是我们所有“不能说的话”的一面反射镜。);5.查看禁忌是如何产生的(道德禁忌的最大制造者可能是那些权力斗争略占上风的一方:有实力推行禁忌,但是又软弱到需要禁忌保护自己的利益。)
    不受传统观念束缚的人往往也不会穿流行的衣服。
    与笨蛋辩论,你也会变成笨蛋。自由思考比畅所欲言更重要。
    "我还没有想好!"
    *************************************************************************************************
    4 良好的坏习惯
    与其他美国人一样,黑客的成功秘诀就是打破常规。
    不服从管教,其实是黑客之所以成为优秀程序员的原因之一。
    黑客反对版权,崇尚思想自由,只有深入了解当前的技术,黑客才能构想下一代技术。 在计算机工业的历史上,新技术往往是由外部人员开发的。
    公民自由是一个国家富强的原因。
    *************************************************************************************************
    5 另一条路
    互联网软件是微机诞生后的最大机会。
    “你的电脑”这个概念正慢慢成为过去时,取而代之的是“你的数据”。</原文结 束> <原文开始>对于互联网软件,你可以使用任何你想用的语言。
    把发现bug的任务交给客户去完成;客户支持实际上就是质量监控,开发人员与客服人员应该保持密切联系。
    2015-07-03 11:31:06 回应
  • 第90页
    6 如何创造财富
    致富的最好方法就是为社会创造财富。创造财富的最好方法就是创业。
    创造有价值的东西就是创造财富。 金钱不等于财富,金钱只是专业化的副产品,是交换媒介(用来转移财富所有权的东西),交易的实质是让大家可以获得资金想要的东西,金钱只是一个方便交易的中介;生意的目的是创造财富,做出人们真正需要的东西。
    破除大饼谬论,世界上的财富总额是增长的。
    创造出来的财富不一定非要通过售卖实现价值--黑客开发开源软件,将自己的价值捐献给社会。
    要创造财富,需要可测量性和可放大性。小团体=可测量性;高科技=可放大性
    作者的观点:近代欧洲为什么变得如此强大,一个可能答案是欧洲人接受了一个威力巨大的观点--允许赚到大钱的人保住自己的财富;一旦自己的财产有了保证,那些想致富的人就会愿意去创造财富,而不是偷窃。由此导致的新技术不仅被转化为财富,还被转化为军事力量。
    只要懂得藏富于民,国家就会变得强大。让书呆子保住他们的血汗钱,你就会无敌于天下。
    ***********************************************************************************************
    7 关注贫富分化
    “收入分配不平等”的危害,会不会没有我们想的那样严重?
    “不公平三个字”是“老爹模式”的独门标志。财富不是从某个口子里流出来被大家分享的东西,而是来源于满足他人需求的创造活动。
    为什么财富分配引起如此多的争议?部分原因是反对声最大的人当中,很多人都少有创造财富的经验:大学生、专家、教授、政客、新闻记者、继承人。
    “奥卡姆剃刀”原则--简单的解释就是最好的解释。每个人的技能不同,导致收入不同,这才是贫富分化的主要原因。
    战争和政治斗争导致财富配备变化,本质上都属于偷窃。在集权社会,统治者通过税收以强权进行搜刮掠夺,其致富的方法不是创造财富。
    巴尔扎克说过:“每一笔巨大财富的背后,都隐藏着罪行。”这句话被广泛引用,但是他其实说的是另一个意思,如果巨大财富没有明显的来源,那可能就来源于精心安排的犯罪活动,由于掩盖得太好,使得罪行被人遗忘了。
    技术应该会引起收入差距的扩大,但是似乎能缩小其他差距。一百年前富人与穷人过着截然不同的生活,但是现在由于技术的发展,富人的生活与普通人的差距缩小了,而品牌是这种差距的一种遗留物。 今天人们还有一些相互隔离的趋势,但是主要是因为教育层次的差别,而不是财富的差别。
    作者提出一个观点:现代社会的收入差距扩大是一种健康的信号。只要压制收入差距的扩大,不管是用偷窃私人财产的做法(封建社会),还是用高额税收的做法(某些现代政府),最终结果看来都是一样的,那就是社会作为一个整体变得贫穷了。
    2015-07-05 17:31:43 回应
  • 第157页
    11 一百年后的编程语言
    一百年后,人类怎样编程?为什么不从现在开始就这样编程呢?
    Java的进化之路已经走到尽头。 基本运算符是一种语言能否长期存在的最重要因素。 那些内核最小,最干净的编程语言才会存在于进化的主干上。
    关于面向对象语言:除了某些特定的领域,这种编程方法其实没有为优秀程序员带来好处,但是它对大公司有不可抗拒的吸引力。面向对象编程使得你有办法对面条式代码进行可持续开发。通过不断地打补丁,它让你将软件一步步做大。大公司总是倾向于采用这样的方式开发软件。
    ************************************************************************************************
    12 拒绝平庸
    别忘了你的对手与你一样,能用任何想用的语言编写互联网软件。
    LISP 值得学习的理由——最终掌握了它时你会得到丰富的启迪和经验。虽然你实际上很少会用到 LISP,但这些经验会使你在以后的日子里成为一个更好的程序员。
    Lisp语言是目前最强大的编程语言,它没有得到广泛应用的原因就是因为编程语言不仅仅是技术,也是一种习惯性思维,非常难于改变。
    编程语言的特点之一就是它会使得大多数使用它的人满足于现状,不想改用其他语言。
    如果只是在自己服务器上运行的软件,这意味着你想用什么语言就能用什么语言。
    ************************************************************************************************
    13 书呆子的复仇
    在高科技行业,只有失败者采用“业界最佳实践”。
    约翰·麦卡锡,设计的Lisp语言本质上不是一种技术,而是数学。 Common Lisp
    Lisp语言包含的9种思想:
    1)条件结构;
    2)函数也是一种数据结构;
    3)递归;
    4)变量的动态类型;
    5)垃圾回收机制;
    6)程序由表达式组成;
    7)符号类型;
    8)代码使用符合和常量组成树形表示法;
    9)无论什么时候,整个语言都是可用的;
    经理其实不关心公司是否真的能获得成功,他真正关心的是不承担决策失败的责任。因此产生“业界最佳实践”这种专门性术语。
    技术本来就应该是尖端的,编程语言的所谓“业界最佳实践”,实际上不会让你变成最佳,只会让你变得很平常。
    结论:一、不同语言的编程能力不一样;二、大多数经理故意忽视第一点。
    ************************************************************************************************
    14 梦寐以求的编程语言
    一种好的编程语言,是让黑客可以随心所欲使用的语言。
    ************************************************************************************************
    15 设计与研究
    研究必须是“新”的,而设计必须是“好”的。
    大多数优秀设计都是这样产生的,它们关注目标用户,并且以目标用户为中心。
    如果设计某种新东西,应该尽快拿出原型,然后听取用户的意见。(Worse is Better)
    “程序时写出来给人看的,附带能在机器上运行。”
    2015-07-05 20:36:29 回应