zoukankan      html  css  js  c++  java
  • 黑客与画家

    黑客的行为必须包含三个特点:好玩、高智商、探索精神。

    每天读书半个小时,一个月应该可以读2本书左右。在快节奏的生活中,抽出时间来读书真的是一件非常美妙的事情。公司9点钟开始上班,但是我家离得比较近,所以我就8点钟就到公司门口旁的天台坐着。拿出我的Kindle,沉浸在书的海洋里,品味书中的百态。就这样开始我一天的生活...

    2016年8月30日

    黑客的行为必须包含三个特点:好玩、高智商、探索精神

    传统意义上的黑客才能被称为hacker,而那些恶意入侵计算机系统的人应该被称为cracker(入侵者)

    黑客理论:

    1.使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制。任何事情都应该亲手尝试。

    2.信息应该全部免费。

    3.不信任权威,提倡去中心化。

    4.判断一名黑客的水平应该看他的技术能力,而不是看他的学历、年龄或者地位等其他标准。

    5.你可以用计算机创造美和艺术。

    6.计算机使生活更美好。

    黑客价值观的核心原则:分享、开放、民主、计算机的自由使用、进步。

    黑客只是怀有一门特殊手艺、有创造天赋的普通人。

    2016年8月31日

    在任何社会等级制度中,那些对自己没自信的人就会通过虐待他们眼中的下等人来凸显自己的身份。

    学校是一个很奇怪的、人为设计出来的体系,一班像是无菌室,一半像是野蛮洪荒之地。它就像人生一样,里面无所不包,但又不是事物的真实样子。它只是一个暂时的过程,只要你向前看,你就能超越它,哪怕现在你还是身在其中。

    聪明的小孩读中学时往往是不快乐的。他们有其他的兴趣,没有多余的精力用来使自己更受欢迎。你在其他地方有所得,就会在这个地方有所失。

    14岁的孩子开始抽大麻,并不是因为他们听说这样有助于忘记烦恼,而是因为他们想要加入一个不同的团体。

    2016年9月1日

    黑客与画家的共同之处,在于他们都是创作者。

    但是,我认识的黑客,没有一个喜欢用静态类型语言编程。我们需要的是一种可以随时涂抹、擦擦改改的语言,我们不想正襟危坐,把一个盛满各种变量类型的茶杯,小心翼翼放在自己的洗盖上,为了与一丝不苟的编译器大婶交谈,努力的挑选词语,确保变量类型匹配,好让自己显得礼貌又周到。

    大学喝实验室强迫黑客成为科学家,企业强迫黑客成为工程师。

    正真竞争软件设计的战场是新兴领域的市场,这里嗨没有人建立过防御工事。只要你能做出大胆的设计,由一个人或一批人同时负责设计和实现产品,你就能在这里战胜大公司。

    黑客通过实践学习编程。创作者另一个学习的途径是通过范例学习。

    如果可以的话,最好把文档说明写的像编程语言规范那样清晰。

    普通黑客与优秀黑客的所有区别之中,会不会“换位思考”可能是最重要的单个因素。

    判断一个人是否具备“换位思考”的能力有一个好的方法,那就是看他怎么样向没有技术背景的人解释技术问题。

    程序写出来是给人看的,附带能在机器上运行。 --《计算机程序的结构与解释》

    2016年9月2日

    要是能坐上时间机器回到过去,不管哪一个年代,有一件事都是不会改变的,那就是“祸从口出”。

    为了防止他人复制,古代制作地图的工匠会故意在地图上画错一个小地方,如果你的地图与他的地图一样,就说明不太可能是你自己独立制作的。

    做一个异端是有回报的,不仅实在科学领域,在任何有竞争的地方,只要你能看到别人看不到或不敢看的东西,你就有很大的优势。

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

    ”守口如瓶,笑脸相迎“。

    逐步把辩论提升到一个抽象的层次。(对事不对人)

    所有反击方法之中,最好的一种可能就是幽默,狂热分子都有一个共同点:缺乏幽默感。

    如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。问自己,什么话是我不能说的?为什么?

    2016年9月3日

    公民自由是国家富强的原因,而不是结果。

    专制国家会变成腐败国家,腐败国家会变成贫穷国家,贫穷国家会变成弱小国家。

    黑客对于公民自由是非常敏感的,因为这对他们至关重要。他们远远地就能感到极权主义的威胁,好比动物能够感知即将来临的暴风雨。

    2016年9月5号

    网页程序的bug要比桌面程序要少一个或几个数量级。

    在发布前测试的时候,你知道应该最仔细地测试哪个部分——显然就是你修改过的部分。

    互联网软件的发布规则是:它运行不了,你就无法发布;一旦它运行了,你就可以立即发布。

    版本这个概念不是用于互联网软件。

    2016年9月6日

    解决新代码的bug要比解决历史遗留代码的bug容易。

    随着软件规模的增大,开发成本指数式上升。这可能是因为修正旧bug的原因。如果bug都能被快速发现,成本的上升形态就能基本保持线性。

    最难修补的是复合式bug,两个bug是互相弥补的,好比“负负得正”,软件反而能够运行。当你修正了其中的一个bug,另一个bug才会暴露出来。这时对你来说,你会觉得刚才修正错了,因为那是你最后修改的地方,你就怀疑自己在那里做错了,但是你其实是对的。

    “函数式编程”(funcational programming)可以避免复合式bug。

    所谓“人月”就是一个人在一个月内所能完成的工作量。假如某个项目预估需要12个人月,那么派4个人处理这个项目,理论上需要3个月,派6个人则只需要2个月。但是,布鲁克斯认为这种换算机制在软件行业行不通,是一个神话。因为软件项目是交互关系复杂的工作,需要大量的沟通成本,人力的增加会使沟通成本急剧上升,反而无法达到缩短工期的目的。在本质上,软件项目的人力与工期是无法交换的,当项目进度落后时,光靠增加人力到该项目中,并不会加快进度,反而有可能使进度更加延后。

    随着参与人数的增加,人与人之间需要的沟通呈现指数式增长。人数越来越多,开会讨论各个部分如何协同工作所需的时间越来越长,无法预见的互相影响越多越大,产生的bug也越来越多。幸运的是,这个过程逆向也成立:人数越来越少,软件开发的效率将指数式增长。

    不要在半夜里发布代码,然后回家睡觉。

    2016年9月7日

    没有盗版是一种“优势”,但也是一个问题。一定数量的盗版对软件公司是有好处的。不管你的软件定价多少,有些用户永远都不会购买。如果这样的用户使用盗版,你并没有任何损失。事实上,你反而赚到了,因为你的软件现在多了一个用户,市场影响力就更大了一些,而这个用户可能毕业以后就会出钱购买你的软件。

    只要有可能,商业性公司就会采用一种叫做“价格歧视”(price discrimination)的定价方法,也就是针对不同的客户给出不同的报价,使得利润最大化。

    如果某样东西易于购买,你就会多买一些。

    个人和小企业决策比较灵活,有需要低成本的新技术,所以他们更愿意尝试新事物。

    帕金森定律:因为你必须做到,所以你能够做到。

    桌面软件迫使用户变成系统管理员,互联网软件则是迫使程序员变成系统管理员:用户压力变小了,程序员的压力变大了。

    2016年9月8日

    财富才是你的目标,金钱不是。

    交换媒介的优点是,它使得交易可以进行下去。缺点是,它往往模糊了交易的实质。人们觉得做生意就是为了挣钱,但是金钱其实只是一种中介,让大家可以更方便地获得自己想要的东西。大多数生意的目地是为了创造财富,做出人们正真需要的东西。

    公司一切行为的目地都是盈利,从而生存下去。

    如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。

    大公司就像巨型的古罗马战舰,一千个划船手共同划桨,推动它前进。但是,两个因素使得它快不起来。一个因素是,每个划船手看不到自己更努力划桨有何不同;另一个因素是,一千人的团队使得任何个人的努力都被大大地平均话了。

    我们不需要小村庄的那种“小”,而需要全明星第一阵容的那种“小”。

    2016年9月9日

    技术的发展是否加剧了贫富分化?

    今日的社会身份的差异也要比100年前来的小。

    垃圾邮件过滤器:对单词进行贝叶斯判断。即使用贝叶斯算法来屏蔽垃圾邮件。

    2016年9月12日

    好设计是简单的设计。

    好设计是永不过时的设计。

    好设计是解决问主要问题的设计。

    好设计是启发性的设计。

    好设计通常是有点趣味性的设计。

    好设计是艰苦的设计。

    好设计是看似容易的设计。

    好设计是对称的设计。

    好设计是模仿大自然的设计。

    好设计是一种再设计。

    好设计是能够复制的设计。

    好设计是成批出现的。

    好设计常常是大胆的设计。

    在大多数领域,看上去容易的事情,背后都需要大量的练习。

    (1)一百年后的编程语言再理论上今天就可能设计出来;
    (2)如果今天真能设计处这样一种语言,很可能现在就适合编程,并且能够产生更好的结果。

    如果我们把这两种观点联系起来,那就得出了一些有趣的可能性。为什么不现在就动手尝试写出一百年后的编程语言呢?

    当你设计语言的适合,心里牢牢记住的原则就是要把车开直,不适通过将车身对齐画在地上的分割线,而是通过瞄准远处的某个点。即使你的目标只在目标现在几米开外,这样做也是正确的。我认为,设计编程语言时,我们也应该这样做。

    2016年9月13日

    《呆伯特》漫画

    Lisp很值得学习。你掌握它以后,会感到它给你带来的极大启发。这会大大提高你的编程水平,使你成为一个更好的程序员。尽管再实际工作中极少会用到Lisp。

    到了一定年龄之后,程序员极少主动更换自己的编程语言。不管习惯使用的是哪一种语言,他们往往认为这种语言已经足够好了。

    技术的变化通常是很快的。

    那些经理奇迹般的同事具备了两种很常见但很难结合再一起的特点:(a)对技术一无所知;(b)对技术有强烈的个人观点。

    Lisp是一种很特别的编程语言。

    2016年9月14号

    使用一种不常见的语言会出现的问题我想到了三个:你的程序可能我发很好地与使用其他语言写的程序协同工作;你可能找不到很多的函数库;你可能不容易雇到程序员。

    选择更强大的编程语言会减少所需要的开发人员数量。因为:(1)如果你使用的语言很大,可能会减少一些编程的工作量,也就是不需要那么多黑客了;(2)使用更高级语言的黑客可能比别的程序员更聪明。

    对于同一个软件,如果用一种语言写出来的代码比另一种语言长三倍,这意味着你开发它耗费的时间也会多三倍。而且即使多雇人手,也无助于缩短开发时间,因为当团队规模超过某个门槛时,再增加人手只会带来净损失。《人月神话》中描述中描述了这种现象。

    在大型组织内部,有一个专门的属于描述这种跟随大多数人的选择的做法,叫做”业界最佳实践“。

    第一:不同语言的编程能力不一样;第二:大多数经理故意忽视第一点。

    本文由个人 hexo 博客 co2fe.com 迁移
    date: 2016-09-09 21:04:13

  • 相关阅读:
    信息安全系统设计基础实验五:通讯协议设计
    信息安全系统设计基础实验三:实时系统的移植 (135317、135337)
    信息安全系统设计基础实验四:外设驱动程序设计
    信息安全系统设计基础实验二:固件设计(135317、135337)
    20135337——信息安全设计基础第十周学习笔记
    信息安全系统设计基础实验一:Linux开发环境的配置和使用(135317、135337)
    20135337——信息安全设计基础第九周学习笔记
    20135337——信息安全设计基础第八周学习笔记
    20135337——信息安全设计基础第七周复习笔记
    20135337——作业
  • 原文地址:https://www.cnblogs.com/manastudent/p/10190761.html
Copyright © 2011-2022 走看看