美文网首页
黑客与画家系列之2-----黑客与画家

黑客与画家系列之2-----黑客与画家

作者: DeepCode | 来源:发表于2018-04-28 00:07 被阅读0次
    创造者
    • 在一些人的观念中,计算机是冰冷的、神秘的,而画画是某种原始欲望热烈狂放的表达方式。其实,在所有行业中:黑客与画家最像。“因为黑客与画家都是创造者。他们都在试图创造出优秀的作品”
    • 黑客并不属于”计算机科学“,对于黑客来说,计算机只是一种表达的媒介。“”计算机科学“中还包括科学家,计算机博物学家,他们的使命是研究某些原理,而黑客的使命是创造。
    • 黑客的最高境界是创造规格,而不是单纯得去实现某种规格。
    关于工作
    • 黑客真正想做的是设计优美的软件,这个工作不应该以标准化测试模型去考核,考核这种工作是非常困难的,这要求考核的人有非常好的设计感,而设计感更不好考量。唯一有效的外部考核是时间.达到这样一种考核是十分漫长的。但在岁月的洗礼中,优美的东西总会生存下来,丑陋的东西会被淘汰。有意思的是,如果达到真正客观的评价不是很有可能,首先你得等他的朋友都死了,等他的追随者都死了之后才有可能对其有一个公正的评价。所以黑客对名望只能是听天由命了。
    • 别人无法考核你的工作,甚至误解你的工作,都不是最糟糕的事情,最糟糕的事情是你也会误解你的工作。如果你在学术上过于接近“计算机科学”,可能会浪费很多时间。作为黑客来说,搞懂“计算机理论的必要性”与画家搞懂颜料化学成分的必要性差不多大。一般来说,你需要知道如何计算”时间复杂度“和”空间复杂度“就足够了。
    关于编程
    • 黑客新想法的来源并非计算机领域,而是其他创作领域。
    • 大学中所教授的编程方法都是错的。你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前。抛弃那种”打草稿“式的编程思维吧,这会让你的编程看起来是像在调试。明白这一点对软件设计有重大的影响。它意味着,编程语言首要的特性应该是允许动态拓展。编程语言是用来帮助思考程序的,而不是用来表达你已经想好的程序。它应该是一支铅笔,而不是一支钢笔。当然,如果你想小心翼翼的应对编译器大婶的话当我没说。
    • 创作者不同于科学家,明白这一点有很多好处。除了不用为静态类型烦恼之外,还可以免去另一个折磨科学家的难题,就是“对数学家的妒忌。”这样你就不会受到那繁琐的数学公式处理问题的诱惑,而是去解决真正重要的问题。
    创业与竞争
    • 大学和实验室强迫黑客成为科学家,企业强迫黑客成为工程师。在大多数公司看来,黑客的工作就是用软件实现某个功能,而不是设计软件。
    • 大公司这样安排的原因是为了减少结果的标准差。因为实际上只有很少一部分黑客懂得如果正确设计软件,公司的管理层很难正确识别到底应该把设计软件的任务交给谁。所以,大部分公司不把设计软件的职责交给一个优秀的黑客,而是交给一个委员会。黑客的作用仅仅是实现那个委员会的设计。
    • 这也是创业公司能够成功的原因之一,大公司为了避免设计上的灾难选择了减少设计结果的标准差。但是当你排斥差异的时候,你不仅将失败的可能性排除在外,也将高利润的可能性排除在外。这对大公司来说不是问题,大公司只要做到不是太烂,就能赢。但是徒手攻入一个已经形成垄断的堡垒是不现实的,你很难单单依靠软件的设计去与大公司展开竞争,它甚至都不会注意到你的存在。
    • 真正竞争软件设计的战场是新兴领域的市场,这里还没有人建立过防御工事。只要你能做出大胆的设计,由一个人或一批人同时负责设计和实现产品,你就能在这里战胜大公司。
    • 开发优秀软件的发方法之一就是自己创业。但是,这样做会遇到两个问题。一个是自己开公司的话,必须处理许许多多与开发软件无关的事情。另一个问题是赚钱的软件往往不是好玩的软件,两者的重叠度不高。如果你想赚钱,你可能不得不去干那些很麻烦很讨厌的事情,因为这些事情没人愿意义务来干。
    • 价格是由供给和需求共同决定的。
    黑客如何才能做自己喜欢的事情?
    • 我认为这个问题的解决办法是一个几乎所有创作者都知道的方法:找一份养家糊口的“白天工作”。一般的说,就是你有一份为了赚钱的工作,还有一份为了爱好的工作。几乎所有创作者在职业生涯的早期都有一份白天工作。如果幸运的话你能找到一份与你真正工作非常相关的白天工作。
    • 但是很多公司都不愿意手下的黑客为开源软件项目工作。所以这些公司很难雇到一流的程序员。但是一些开明的公司会愿意。因为如果你不热爱一件事,你就不可能把它做到真正优秀,要是你很热爱编程,你就不可避免地会开发你自己的项目。
    应该如何学习编程?
    • 大多数黑客不是通过大学课程学会编程的,它们从实践中学习。黑客学习编程依然主要通过自己写程序。
    • 可以借鉴画家的作法:每幅画所用的技巧都是建立在上一幅作品所学到的东西之上。对于黑客,采取像画家这样的做法是很有好处的:应该定期从头开始,而不要长年累月地在一个项目上不断工作,不要试图把所有的最新想法都以修订版的形式包括进去。
    • 黑客的另一个学习的途径是通过范例。黑客可以通过观看优秀的程序学会编程,不是看它们的执行结果,而是看它们的源代码。开源运动最鲜为人知的优点之一,就是使得学习编程变得更容易了。
    关于过早优化

    相关文章

      网友评论

          本文标题:黑客与画家系列之2-----黑客与画家

          本文链接:https://www.haomeiwen.com/subject/mbailftx.html