黑客与画家

<黑客与画家> 的一些笔记和理解:

  • 什么是黑客: “出于兴趣而解决某个难题, 不管有没有用, 这就是黑客.” 由此可见黑客的核心不在于技术高超, 而在于自我驱动.
  • 什么是创业公司: “经济学的观点就是, 可以让人更快速工作的地方.” 所以当你发现一家公司办一件事情很困难, 那可能是部门或小组太大了, 需要将它继续分割成更小的团队甚至是个人.
  • “大公司的生产效率是小型创业公司的十分之一, 没有任何一家大公司能够做得更好.” 这还是相对于雅虎微软这种高效率的大公司,
  • “乔布斯曾说过, 创业成功的成败取决于最早加入公司的那十个人. 而我<作者>觉得, 是5个.”
  • “创业有两条”潜规则”: 1. 很多事情由不得你. 2. 创业的付出与回报在个体上不成比例.”
  • “创业公司不能有任何防御, 他们必须只有进攻, 要么赢得一切, 要么彻底消失.” 不要在乎竞争对手的诋毁, 抄袭, 恶意竞争, 这都只是他们在拖延你成长的手段, 当你花时间和精力打赢了官司, 你会发现市场已经丢失.
  • “技术的发展在加大贫富差距和收入差距, 但却在减小其他方面的差距.” 例如波音747飞机驾驶员的收入大概是超市收银员的40倍, 这种差距可能大于奴隶社会的奴隶和奴隶主, 但他们在生活质量上可能并没有多大的差距, 一个智能手机就能享受到所有人都能享受到的乐趣.
  • “‘语言只是工具, 其实没什么不同’, 这种观点是不对的”. 语言的不同不仅仅是语法的不同, 更在于思维模式的不同, 使用C会专注内存回收释放, 指针指向, 使用java会关注封装,多态以及各种类之间的组织关系, 使用python会不自然的想方设法让语句更短更优雅, 让类型更加不可见, 让参数更加动态多样, 使用golang会更专注于线程之间的并发效率, 线程间通信的可行性, 服务的扩展性和部署的快捷性. 尽管绝大多数的语言可以做到其他语言也能做到的事情, 但在编写的过程中往往不会去思考其他的问题, 而只关注核心问题, 这就是不同编程语言的带来的思维上的不同. 如果硬要找一个共同点, 那可能就是他们都能够让你在解决某一类问题上特别高效.
  • “但是事实上, 我们的思想可能往往会受限于某些现存的语言, 只采用在这种语言看起来更简单的形式, 他对我们的思想的束缚作用会大得令人震惊. 新语言必须靠你自己去发现, 不能依靠那些让你自然而然就沉下去的思维定势.””他们都满足于自己碰巧用熟了的那种语言, 他们的编程思想都被那种语言主宰了.” 要跳出编程语言的固定思维模式, 知道它们善于解决怎样问题而又不善于解决其它问题, 这样才能不局限于永远使用同一种编程语言解决问题.
  • “你要选择的是最高效的编程语言解决问题, 而不是最流行的, 但一个’优秀’的编程语言如果很长时间都无法流行, 那它就还不够优秀”
  • “如果你想在软件业获得成功, 就使用你知道的最强大的语言, 用它解决你知道的最难的问题, 并且等待竞争对手的经理做出自甘平庸的选择”
  • “先做出原型, 在逐步加工成品, 这种方式有利于鼓舞士气, 因为它使得你随时都可以看到工作的成效. 开发软件的时候, 我有一条潜规则: 任何时候, 代码都必须能够运行.”
  • “做出优秀成果的人, 在做的过程中常常觉得自己做的不够好. 其他人看到他们的成果觉得棒极了, 而创造者本人看到的都是自己作品的缺陷. 这种视角的差异并非偶然, 因为只有对现状不满, 才会造就杰出的成果.”
  • “一心让臣民行善的暴君可能是最专制的暴君. —-C.S.LEWIS (1898-1963, 英国小说家) “