0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员需要知道的那些定理和法则

电子工程师 来源:fqj 2019-05-17 17:20 次阅读

摩尔定律知道么?

帕金森定律讲的又是啥?

作为一名合格的开发人员,除了本身码力超强外,或多或少要知道几条“”潜规则”,例如依赖倒置原则、鲁棒性原则......

关于开发人员必须要知道的定义、原则以及理论,一位名叫Dave Kerr的小哥哥在Github上专门开了个科普帖子,为广大程序员介绍必备的定理。

他将这个项目称为:黑客信条(hacker-laws)。

阿姆达尔定律

一个计算机科学界的经验法则,因吉恩·阿姆达尔而得名。它代表了处理器并行运算之后效率提升的能力。

并行计算中的加速比是用并行前的执行速度和并行后的执行速度之比来表示的,它表示了在并行化之后的效率提升情况。

程序员需要知道的那些定理和法则

可以看出,即使是一个50%可并行的程序,在超过10个处理单元的情况下也几乎没有什么提高,而一个95%可并行的程序,在超过1000个处理单元的情况下,仍然可以显著提高速度。

炒作周期和阿马拉定律

“人们总是高估一项科技所带来的短期效益,却又低估它的长期影响。”

—— Roy Amara

Hype Cycle(技术成熟度曲线)是制技术兴奋度度和发展成熟度的直观表现,最初由Gartner公司提出,如下图所示:

程序员需要知道的那些定理和法则

简而言之,这个周期表明,新技术及其潜在影响通常会引发一阵高度关注。技术团队经常马不停蹄进入这些技术领域,但往往无功而返。这可能是因为该技术还不够成熟,或者现实应用还没有完全实现。经过一段时间后,技术的能力提高,使用它的实际应用机会增加,团队最终可以取得成功。Roy Amara最简洁地总结了这一点——“人们总是高估一项科技所带来的短期效益,却又低估它的长期影响。”。

霍夫施塔特定律

表面上和帕金森定律截然相反的霍夫施塔特定律表明:“即使将霍夫施塔特定律考虑在内,你在一件事上花费的时间总是要比想象得要多。”

该定律与帕金森定律看起来相互矛盾,但其实两者可以并行使用。霍夫施塔特定律表明,在给一个复杂的项目制定截止期限的时候,人们很容易自信过度。

帕金森定律

帕金森定律(Parkinson's Law)是官僚主义或官僚主义现象的一种别称,被称为二十世纪西方文化三大发现之一。也可称之为“官场病”、“组织麻痹病”或者“大企业病”。

帕金森得出结论:在行政管理中,行政机构会像金字塔一样不断增多,行政人员会不断膨胀,每个人都很忙,但组织效率越来越低下。这条定律又被称为“金字塔上升”现象。

将帕金森定律与霍夫施塔特定律结合会得出一个更加悲观的结论:你的工作范围会不断扩大,结项日期遥不可及。

The Unix Philosophy

这一理念表明的是:小即是美,程序做好一件事即可;程序员尽可能早地建立原型;可移植性比效率更重要。另外数据应该保存为文本文件,尽可能地榨取软件的全部价值。使用shell脚本来提高效率和可移植性、避免使用可定制性低下的用户界面,所有程序都是数据的过滤器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7496

    浏览量

    88000
  • 处理单元
    +关注

    关注

    0

    文章

    9

    浏览量

    6921

原文标题:Github一天标星1k+,程序员需要知道的那些定理和法则

文章出处:【微信号:BigDataDigest,微信公众号:大数据文摘】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    程序员的快乐:那些小细节

    近日,有人撰写了一篇文章,谈到了影响程序员快乐的各种因素,特别强调了那些不太为人所注意的小细节。除了薪水、晋升机会等显而易见的因素外,日常的工作中我们还需要注意一些小细节,也许程序员
    发表于 12-11 14:10

    为什么pickit3程序员不使用mplab进入模式?

    您好,我需要在不使用MPLAB的情况下使用程序员要去的PICkit3函数。我需要知道您是否有任何独立的程序或更简单的程序员在没有mplab的
    发表于 08-13 10:32

    程序员需要学什么,微软资深程序员学习手册面试宝典资料

    程序员是现在比较吃香的工作。程序员工资高还不需要和复杂的社会打交道。那么怎么成为一名程序员?当程序员需要
    发表于 03-22 11:54 30次下载

    程序员学算法的重要性

    算法是计算机科学领域最重要的基石之一,编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论。程序员需要知道的5大基础实用算法介绍。
    的头像 发表于 01-24 10:28 6341次阅读

    程序员的第一生存法则是什么

    程序员的职业生涯,第一生存法则是什么?
    的头像 发表于 10-26 15:14 1998次阅读

    为什么程序员是不能忽略的声音

    说到开发产品,没有人比程序员更了解产品。程序员知道产品的优点、缺陷、用途和潜在用途。说起这些,程序员了如指掌,如数家珍。
    的头像 发表于 10-23 10:30 1565次阅读

    程序员如何定义

    当了几年的程序员了,一直都在想一个问题,什么是程序员程序员应该做好那些事情,什么样的程序员是有素质的
    的头像 发表于 12-18 14:15 2632次阅读

    高级程序员需要学习哪些知识

    每个人都有大梦想,作为程序员当然是想做一个程序大牛,毕竟 不想当将军的厨子不是好裁缝!那么要想成为好裁缝,不好程序员,应该需要哪些知识呢?搜罗了一下,还真不少呢!
    的头像 发表于 05-30 16:16 4163次阅读

    什么是程序员

    当了几年的程序员了,一直都在想一个问题,什么是程序员程序员应该做好那些事情,什么样的程序员是有素质的
    的头像 发表于 06-04 16:21 9009次阅读

    Java程序员和.NET程序员的区别

    Java 程序员大多会一些设计,知道设计模式,知道 IoC;相反,.NET 程序员很多没有做过设计,也不知道什么叫设计模式 IoC。
    的头像 发表于 06-05 16:10 6434次阅读

    JAVA程序员和C程序员有什么区别

    1、知道JAVA程序员和C程序员的差别吗?食堂里,吃完饭就走的是JAVA程序员,吃完饭还要自己收拾的那就是是C程序员。至于为什么会这样,大家
    的头像 发表于 11-03 11:25 4321次阅读

    怎样成为顶尖的程序员

    在IT行业飞速发展的时代,有过的程序员,有些成为程序员心中的大神,那么那些成为大神的程序员们是因为什么成为大神的呢?今天小编就和大家说说,希望那些
    的头像 发表于 11-06 16:12 3001次阅读

    优秀程序员的标准有哪些

    每个程序员都想知道自己是不是一个优秀的程序员,那么,就参考一下下面这10 条,看看自己是否达到了一个优秀程序员的标准。
    的头像 发表于 11-15 16:15 3249次阅读

    牛逼的程序员是怎么样

    长期卧底各大程序员圈,总结出现实中那些牛逼程序员的主要表现症状,如下:
    的头像 发表于 12-01 11:51 3023次阅读

    嵌入式程序员知道的几个基本问题

    电子发烧友网站提供《嵌入式程序员知道的几个基本问题.pdf》资料免费下载
    发表于 11-20 11:21 0次下载
    嵌入式<b class='flag-5'>程序员</b>应<b class='flag-5'>知道</b>的几个基本问题