什么叫失败的无关性和设计的冗余设计是什么意思性?

《道德经》中说“治大国若烹小鲜”,其实编写一个计算机程序、煮一道菜或者治理一个国家,本质上都具有某些相同或者至少相似的逻辑。编程过程中所涉及到的思维方法林林总总,可以肯定,这些思维方法和我们在其他领域所使用到的思维方法有不少重叠之处。那么,在面对“编程思维”这样一个新鲜的名词时,其实我们更应该关注的是这样一个问题:编程思维和传统思维(即我们在解决编程之外的其他事务时所用到的思维)有什么区别?编程思维为传统思维注入了何种新鲜血液?我相信,这才是“编程思维”这个被生造出来的概念赖以存在的基础。&br&&br&首先,以下思维方法(或者套路、模式等)是编程所必需的,但我认为不应该被阐释为编程思维的内涵:&br&1.框架思维&br&写一个软件,需要搭架构;写一段程序,需要有一个大体框架。如同建一栋楼,需要首先搭脚手架。显然,框架思维不是程序员独有的。&br&2. 拆解思维&br&一个复杂的问题,看起来千头万绪没有思路,这时需要将复杂的问题拆解成一个个简单的问题,再各个击破。显然,拆解思维也不是程序员独有的。&br&3. 函数思维。许多会被重复使用到的运算过程被储存为标准化的函数,下次再有需要就直接调用,只需要改动输入的自变量即可。这就是函数思维,但这也不是程序员的专利。工厂里的流水生产线往往被划分成若干个工位,每一个工位执行标准化、程序化的动作,这不就是工业生产中的函数思维(或者说自动化思维)吗?&br&4.……(肯定还有很多,就不列举了)&br&&br&那么,问题来了,究竟什么思维方法是程序员们首创的呢?编程思维区别于传统思维的独特内涵是什么呢?&br&&br&个人的一点粗浅看法:&br&计算机编程的三种控制结构中,顺序结构和条件结构显然是别的领域也都广泛使用的,而循环结构在我们的生活中或者编程之外的其他工作里似乎比较少见。另外,在解决“0—内有多少个素数?”这样的问题时,靠人手算是不现实的,而计算机编程则能通过最简单粗暴的穷举法来筛选出答案。&br&&br&——坐等大神前来!
《道德经》中说“治大国若烹小鲜”,其实编写一个计算机程序、煮一道菜或者治理一个国家,本质上都具有某些相同或者至少相似的逻辑。编程过程中所涉及到的思维方法林林总总,可以肯定,这些思维方法和我们在其他领域所使用到的思维方法有不少重叠之处。那么,在面对“编程思维”这样一个新鲜的名词时,其实我们更应该关注的是这样一个问题:编程思维和传统思维(即我们在解决编程之外的其他事务时所用到的思维)有什么区别?编程思维为传统思维注入了何种新鲜血液?我相信,这才是“编程思维”这个被生造出来的概念赖以存在的基础。首先,以下思维方法(或者套路、模式等)是编程所必需的,但我认为不应该被阐释为编程思维的内涵:1.框架思维写一个软件,需要搭架构;写一段程序,需要有一个大体框架。如同建一栋楼,需要首先搭脚手架。显然,框架思维不是程序员独有的。2. 拆解思维一个复杂的问题,看起来千头万绪没有思路,这时需要将复杂的问题拆解成一个个简单的问题,再各个击破。显然,拆解思维也不是程序员独有的。3. 函数思维。许多会被重复使用到的运算过程被储存为标准化的函数,下次再有需要就直接调用,只需要改动输入的自变量即可。这就是函数思维,但这也不是程序员的专利。工厂里的流水生产线往往被划分成若干个工位,每一个工位执行标准化、程序化的动作,这不就是工业生产中的函数思维(或者说自动化思维)吗?4.……(肯定还有很多,就不列举了)…
面向过程,面向对象,FP,解耦模块化,DRY, KISS……这些算吗?
【转载】分享大名鼎鼎的周以真(Jeannette M. Wing)教授的一篇论文《计算思维(Computational Thinking)》。个人觉得计算思维的覆盖面更广,足以回答题主关于编程思维的疑问。英文原文在&a href=&///?target=http%3A//www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cmu.edu 的页面&i class=&icon-external&&&/i&&/a&,翻译版本如下:&br&&br&计算思维【作者:周以真】【翻译: 王飞跃 徐韵文】&br&&br&它代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用。&br&&br&计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。计算方法和模型给了我们勇气去处理那些原本无法由任何个人独自完成的问题求解和系统设计。计算思维直面机器智能的不解之谜:什么人类能比计算机做得更好?什么计算机能比人类做得更好?最基本的是它涉及这样的问题:什么是可计算的?今天,我们对这些问题的答案仍是一知半解。&br&&br&计算思维是每个人的基本技能,不仅仅属于计算机科学家。在阅读、写作和算术(英文简称3R)之外,我们应当将计算思维加到每个孩子的解析能力之中。正如印刷出版促进了3R的传播,计算和计算机也以类似的正反馈促进了计算思维的传播。&br&&br&计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。&br&&br&当求解一个特定的问题时,我们会问:解决这个问题有多困难?怎样才是最佳的解决之道? 计算机科学根据坚实的理论基础来准确地回答这些问题。表明问题的困难程度是为了考量机器——就是用来运行其解的计算工具之基本能力。我们必须考虑机器的指令系统、它的资源约束和它的操作环境。&br&&br&为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就足够了,是否可以利用一下随机化,以及是否允许误正或误负。计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。&br&&br&计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由推广量纲分析进行的类型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处。对于间接寻址和程序调用的做法,它既知道其威力又了解其代价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。&br&&br&计算思维采用了抽象和分解来迎战浩大复杂的任务或者设计巨大复杂的系统。它是关注的分离。它是选择合适的方式去陈述一个问题,或者是选择合适的方式对一个问题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为。它是我们在不必理解每一个细节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信心。它就是为预期的多个用户而进行的模块化,它就是为预期的未来应用而进行的预置和缓存。&br&&br&计算思维是通过冗余、堵错、纠错的方式,在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结,叫合同为界面。它就是学习在谐调同步相互会合时如何避免竞争的情形。&br&&br&计算思维是利用启发式推理来寻求解答。它就是在不确定情况下的规划、学习和调度。它就是搜索、搜索、再搜索,最后得到的是一系列的网页,一个赢得游戏的策略,或者一个反例。计算思维是利用海量的数据来加快计算。它就是在时间和空间之间,在处理能力和存储容量之间的权衡。&br&&br&考虑这些日常中的事例:当你女儿早晨去学校时,她把当天需要的东西放进背包;这就是预置和缓存。当你儿子弄丢他的手套时,你建议他沿走过的路回寻;这就是回推。在什么时候你停止租用滑雪板而为自己买一对呢?这就是在线算法。在超市付账时你应当去排哪个队呢?这就是多服务器系统的性能模型。为什么停电时你的电话仍然可用?这就是失败的无关性和设计的冗余性。完全自动的大众图灵测试是如何区分计算机和人类(简称CAPTCHA)的,即CAPTCHAs是怎样鉴别人类的?这就是充分利用求解人工智能难题之艰难来挫败计算代理程序。&br&&br&计算思维将渗入到我们每个人的生活之中,那时诸如算法和前提条件已成为每个人日常词汇的一部分,非确定论和垃圾收集已含有计算机学家所指的含义,而树已常常被倒过来画了。&br&&br&我们已见证了计算思维在其它学科中的影响。例如,机器学习已经改变了统计学。就数据尺度和维数而言,统计学习用于各类问题的规模仅在几年前还是不可想象的。各种组织的统计部门都聘请了计算机科学家。计算机学院系正在联姻已有或开设新的统计部门。&br&&br&计算机学家们近来对生物科学的兴趣是由他们坚信生物学家能够从计算思维中获益的信念驱动的。计算机科学对于生物学的贡献决不限于其能够在海量时序数据中搜索寻找模式规律的本领。最终的希望是数据结构和算法——我们的计算抽象和方法——能够以阐释其功能的方式表示蛋白质的结构。计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式。&br&&br&这种思维将成为不仅仅是其他科学家,而且是其他每一个人的技能组合之部分。普在计算之于今天就是计算思维之于明天。普在计算是已变为今日之现实的昨日之梦,计算思维就是明日之现实。&br&&br&它是什么,又不是什么?&br&&br&计算机科学是计算的学问——什么是可计算的,怎样去计算。因此,计算思维具有以下特性:&br&&br&概念化,不是程序化。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计算机编程。它要求能够在抽象的多个层次上思维。&br&&br&基础的,不是机械的技能。基础的技能是每一个人为了在现代社会中发挥职能所必须掌握的。生搬硬套之机械的技能意味着机械的重复。具有讽刺意味的是,只有当计算机科学解决了人工智能的宏伟挑战——使计算机像人类一样思考之后,思维才会变成机械的生搬硬套。&br&&br&人的,不是计算机的思维。计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样地思考。计算机枯燥且沉闷;人类聪颖且富有想象力。我们人类赋予计算机以激情。配置了计算设备,我们就能用自己的智慧去解决那些计算时代之前不敢尝试的问题,就能建造那些其功能仅仅受制于我们想象力的系统。&br&&br&数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,因为像所有的科学一样,它的形式化解析基础筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统。基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够超越物理世界去打造各种系统。&br&&br&是思想,不是人造品。不只是我们生产的软件硬件人造品将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动之计算性的概念;而且,&br&&br&面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实。&br&&br&许多人将计算机科学等同于计算机编程。有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围。许多人认为计算机科学的基础研究已经完成,剩下的只是工程部分而已。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。我们特别需要走进大学之前的听众,包括老师、父母、学生,向他们传送两个主要信息:&br&&br&
1) 智力上极有挑战性并且引人入胜的科学问题依旧亟待理解和解决。这些问题的范围和解决方案的范围之唯一局限就是我们自己的好奇心和创造力;同时一个人可以主修计算机科学并且干什么都行。一个人可以主修英语或者数学,接着从事各种各样的职业。计算机科学也一样。一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。&br&&br&
2) 计算机科学的教授应当为大学新生开一门称为“怎么像计算机科学家一样思维”的课,面向非专业的,而不仅仅是计算机科学专业的学生。我们应当使大学之前的学生接触计算的方法和模型。我们应当设法激发公众对于计算机领域中的科学探索之兴趣,而不是悲叹对其兴趣的衰落或者哀泣其研究经费的下降。所以,我们应当传播计算机科学的快乐、崇高和力量,致力于计算思维的常识化。
【转载】分享大名鼎鼎的周以真(Jeannette M. Wing)教授的一篇论文《计算思维(Computational Thinking)》。个人觉得计算思维的覆盖面更广,足以回答题主关于编程思维的疑问。英文原文在,翻译版本如下:计算思维【作者:周以真】【翻译: …
编程思维是看问题一种思维方式。&br&&br&小时候去亲戚朋友家,妈妈事先交代,进了门,要叫叔叔阿姨好。编程也是做差不多的事情,程序说到底,是一连串的指令,告诉电脑什么条件下做什么事情。&br&&br&编程不过是把人要做的事情,翻译成电脑听的懂的话罢了。但同一件事情,有的人可以说的妙趣横生,有的人说得冗长乏味,有人说的言简意赅,有人说的意味深长,和人说话的技巧是口才,和电脑说话的技巧就是编程了。&br&&br&魔方在我的眼里是方块,在别人眼里可能是公式和组合。软件在别人眼里可能是窗口和菜单,而在我眼里是一本复杂的说明书,只不过是写给电脑看的。&br&&br&而所谓编程思维,不过是怎么把说明书写的更简单些。
编程思维是看问题一种思维方式。小时候去亲戚朋友家,妈妈事先交代,进了门,要叫叔叔阿姨好。编程也是做差不多的事情,程序说到底,是一连串的指令,告诉电脑什么条件下做什么事情。编程不过是把人要做的事情,翻译成电脑听的懂的话罢了。但同一件事情,有…
已有帐号?
无法登录?
社交帐号登录做网络冗余的时候口字形设计和叉性设计有什么区别_百度知道
做网络冗余的时候口字形设计和叉性设计有什么区别
提问者采纳
交叉设计其可靠性和可用性较口子型要高,是网络设计中常用的冗余方法。
交叉设计为什么可靠性和可用性高呢,口子型在哪些有缺点呢?
采纳率100%
其他类似问题
为您推荐:
网络冗余的相关知识
其他1条回答
故障处理,可靠性有区别
不同的情形应用什么样子的模型啊
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁君,已阅读到文档的结尾了呢~~
冗余设计技术与可靠性关系研究
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
冗余设计技术与可靠性关系研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口「编程思维」究竟是一种什么思维?
《道德经》中说“治大国若烹小鲜”,其实编写一个计算机程序、煮一道菜或者治理一个国家,本质上都具有某些相同或者至少相似的逻辑。编程过程中所涉及到的思维方法林林总总,可以肯定,这些思维方法和我们在其他领域所使用到的思维方法有不少重叠之处。那么,在面对“编程思维”这样一个新鲜的名词时,其实我们更应该关注的是这样一个问题:编程思维和传统思维(即我们在解决编程之外的其他事务时所用到的思维)有什么区别?编程思维为传统思维注入了何种新鲜血液?我相信,这才是“编程思维”这个被生造出来的概念赖以存在的基础。&br&&br&首先,以下思维方法(或者套路、模式等)是编程所必需的,但我认为不应该被阐释为编程思维的内涵:&br&1.框架思维&br&写一个软件,需要搭架构;写一段程序,需要有一个大体框架。如同建一栋楼,需要首先搭脚手架。显然,框架思维不是程序员独有的。&br&2. 拆解思维&br&一个复杂的问题,看起来千头万绪没有思路,这时需要将复杂的问题拆解成一个个简单的问题,再各个击破。显然,拆解思维也不是程序员独有的。&br&3. 函数思维。许多会被重复使用到的运算过程被储存为标准化的函数,下次再有需要就直接调用,只需要改动输入的自变量即可。这就是函数思维,但这也不是程序员的专利。工厂里的流水生产线往往被划分成若干个工位,每一个工位执行标准化、程序化的动作,这不就是工业生产中的函数思维(或者说自动化思维)吗?&br&4.……(肯定还有很多,就不列举了)&br&&br&那么,问题来了,究竟什么思维方法是程序员们首创的呢?编程思维区别于传统思维的独特内涵是什么呢?&br&&br&个人的一点粗浅看法:&br&计算机编程的三种控制结构中,顺序结构和条件结构显然是别的领域也都广泛使用的,而循环结构在我们的生活中或者编程之外的其他工作里似乎比较少见。另外,在解决“0—内有多少个素数?”这样的问题时,靠人手算是不现实的,而计算机编程则能通过最简单粗暴的穷举法来筛选出答案。&br&&br&——坐等大神前来!
《道德经》中说“治大国若烹小鲜”,其实编写一个计算机程序、煮一道菜或者治理一个国家,本质上都具有某些相同或者至少相似的逻辑。编程过程中所涉及到的思维方法林林总总,可以肯定,这些思维方法和我们在其他领域所使用到的思维方法有不少重叠之处。那么,在面对“编程思维”这样一个新鲜的名词时,其实我们更应该关注的是这样一个问题:编程思维和传统思维(即我们在解决编程之外的其他事务时所用到的思维)有什么区别?编程思维为传统思维注入了何种新鲜血液?我相信,这才是“编程思维”这个被生造出来的概念赖以存在的基础。首先,以下思维方法(或者套路、模式等)是编程所必需的,但我认为不应该被阐释为编程思维的内涵:1.框架思维写一个软件,需要搭架构;写一段程序,需要有一个大体框架。如同建一栋楼,需要首先搭脚手架。显然,框架思维不是程序员独有的。2. 拆解思维一个复杂的问题,看起来千头万绪没有思路,这时需要将复杂的问题拆解成一个个简单的问题,再各个击破。显然,拆解思维也不是程序员独有的。3. 函数思维。许多会被重复使用到的运算过程被储存为标准化的函数,下次再有需要就直接调用,只需要改动输入的自变量即可。这就是函数思维,但这也不是程序员的专利。工厂里的流水生产线往往被划分成若干个工位,每一个工位执行标准化、程序化的动作,这不就是工业生产中的函数思维(或者说自动化思维)吗?4.……(肯定还有很多,就不列举了)…
按投票排序
【转载】分享大名鼎鼎的周以真(Jeannette M. Wing)教授的一篇论文《计算思维(Computational Thinking)》。个人觉得计算思维的覆盖面更广,足以回答题主关于编程思维的疑问。英文原文在,翻译版本如下:计算思维【作者:周以真】【翻译: 王飞跃 徐韵文】它代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用。计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。计算方法和模型给了我们勇气去处理那些原本无法由任何个人独自完成的问题求解和系统设计。计算思维直面机器智能的不解之谜:什么人类能比计算机做得更好?什么计算机能比人类做得更好?最基本的是它涉及这样的问题:什么是可计算的?今天,我们对这些问题的答案仍是一知半解。计算思维是每个人的基本技能,不仅仅属于计算机科学家。在阅读、写作和算术(英文简称3R)之外,我们应当将计算思维加到每个孩子的解析能力之中。正如印刷出版促进了3R的传播,计算和计算机也以类似的正反馈促进了计算思维的传播。计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。当求解一个特定的问题时,我们会问:解决这个问题有多困难?怎样才是最佳的解决之道? 计算机科学根据坚实的理论基础来准确地回答这些问题。表明问题的困难程度是为了考量机器——就是用来运行其解的计算工具之基本能力。我们必须考虑机器的指令系统、它的资源约束和它的操作环境。为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就足够了,是否可以利用一下随机化,以及是否允许误正或误负。计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由推广量纲分析进行的类型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处。对于间接寻址和程序调用的做法,它既知道其威力又了解其代价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。计算思维采用了抽象和分解来迎战浩大复杂的任务或者设计巨大复杂的系统。它是关注的分离。它是选择合适的方式去陈述一个问题,或者是选择合适的方式对一个问题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为。它是我们在不必理解每一个细节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信心。它就是为预期的多个用户而进行的模块化,它就是为预期的未来应用而进行的预置和缓存。计算思维是通过冗余、堵错、纠错的方式,在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结,叫合同为界面。它就是学习在谐调同步相互会合时如何避免竞争的情形。计算思维是利用启发式推理来寻求解答。它就是在不确定情况下的规划、学习和调度。它就是搜索、搜索、再搜索,最后得到的是一系列的网页,一个赢得游戏的策略,或者一个反例。计算思维是利用海量的数据来加快计算。它就是在时间和空间之间,在处理能力和存储容量之间的权衡。考虑这些日常中的事例:当你女儿早晨去学校时,她把当天需要的东西放进背包;这就是预置和缓存。当你儿子弄丢他的手套时,你建议他沿走过的路回寻;这就是回推。在什么时候你停止租用滑雪板而为自己买一对呢?这就是在线算法。在超市付账时你应当去排哪个队呢?这就是多服务器系统的性能模型。为什么停电时你的电话仍然可用?这就是失败的无关性和设计的冗余性。完全自动的大众图灵测试是如何区分计算机和人类(简称CAPTCHA)的,即CAPTCHAs是怎样鉴别人类的?这就是充分利用求解人工智能难题之艰难来挫败计算代理程序。计算思维将渗入到我们每个人的生活之中,那时诸如算法和前提条件已成为每个人日常词汇的一部分,非确定论和垃圾收集已含有计算机学家所指的含义,而树已常常被倒过来画了。我们已见证了计算思维在其它学科中的影响。例如,机器学习已经改变了统计学。就数据尺度和维数而言,统计学习用于各类问题的规模仅在几年前还是不可想象的。各种组织的统计部门都聘请了计算机科学家。计算机学院系正在联姻已有或开设新的统计部门。计算机学家们近来对生物科学的兴趣是由他们坚信生物学家能够从计算思维中获益的信念驱动的。计算机科学对于生物学的贡献决不限于其能够在海量时序数据中搜索寻找模式规律的本领。最终的希望是数据结构和算法——我们的计算抽象和方法——能够以阐释其功能的方式表示蛋白质的结构。计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式。这种思维将成为不仅仅是其他科学家,而且是其他每一个人的技能组合之部分。普在计算之于今天就是计算思维之于明天。普在计算是已变为今日之现实的昨日之梦,计算思维就是明日之现实。它是什么,又不是什么?计算机科学是计算的学问——什么是可计算的,怎样去计算。因此,计算思维具有以下特性:概念化,不是程序化。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计算机编程。它要求能够在抽象的多个层次上思维。基础的,不是机械的技能。基础的技能是每一个人为了在现代社会中发挥职能所必须掌握的。生搬硬套之机械的技能意味着机械的重复。具有讽刺意味的是,只有当计算机科学解决了人工智能的宏伟挑战——使计算机像人类一样思考之后,思维才会变成机械的生搬硬套。人的,不是计算机的思维。计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样地思考。计算机枯燥且沉闷;人类聪颖且富有想象力。我们人类赋予计算机以激情。配置了计算设备,我们就能用自己的智慧去解决那些计算时代之前不敢尝试的问题,就能建造那些其功能仅仅受制于我们想象力的系统。数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,因为像所有的科学一样,它的形式化解析基础筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统。基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够超越物理世界去打造各种系统。是思想,不是人造品。不只是我们生产的软件硬件人造品将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动之计算性的概念;而且,面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实。许多人将计算机科学等同于计算机编程。有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围。许多人认为计算机科学的基础研究已经完成,剩下的只是工程部分而已。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。我们特别需要走进大学之前的听众,包括老师、父母、学生,向他们传送两个主要信息:
1) 智力上极有挑战性并且引人入胜的科学问题依旧亟待理解和解决。这些问题的范围和解决方案的范围之唯一局限就是我们自己的好奇心和创造力;同时一个人可以主修计算机科学并且干什么都行。一个人可以主修英语或者数学,接着从事各种各样的职业。计算机科学也一样。一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。
2) 计算机科学的教授应当为大学新生开一门称为“怎么像计算机科学家一样思维”的课,面向非专业的,而不仅仅是计算机科学专业的学生。我们应当使大学之前的学生接触计算的方法和模型。我们应当设法激发公众对于计算机领域中的科学探索之兴趣,而不是悲叹对其兴趣的衰落或者哀泣其研究经费的下降。所以,我们应当传播计算机科学的快乐、崇高和力量,致力于计算思维的常识化。
编程思维是看问题一种思维方式。小时候去亲戚朋友家,妈妈事先交代,进了门,要叫叔叔阿姨好。编程也是做差不多的事情,程序说到底,是一连串的指令,告诉电脑什么条件下做什么事情。编程不过是把人要做的事情,翻译成电脑听的懂的话罢了。但同一件事情,有的人可以说的妙趣横生,有的人说得冗长乏味,有人说的言简意赅,有人说的意味深长,和人说话的技巧是口才,和电脑说话的技巧就是编程了。魔方在我的眼里是方块,在别人眼里可能是公式和组合。软件在别人眼里可能是窗口和菜单,而在我眼里是一本复杂的说明书,只不过是写给电脑看的。而所谓编程思维,不过是怎么把说明书写的更简单些。
编程思维这个命题太大,只说一点个人感受,关于编程中的确定性。所有的程序都建立在严密的逻辑基础之上。所以,尽管程序员编写出的程序总是会发生一些“诡异”的问题,但这些问题一定都有确定的原因。有足够的能力和耐心,最终都可以找到问题的根源。而其他领域就未必了,更别说日常生活中,各种逻辑混乱、颠倒因果。宇宙的本质,“上帝”掷不掷骰子,这不好说。但现在的计算机肯定不掷,它甚至都没法产生一个随机数。
高大上的回答好多 我来个屌丝级别的观点吧...我不认为有"编程思维"这种东西 最多就是理性思考 理性思考肯定不是编程人员的专利 只不过在这里更突出而已有一个笑话:一家大公司引进了一条肥皂生产线。这条生产线能将肥皂从原材料的加入直到包装装箱自动完成。 但是销售部门反映有的肥皂盒是空的,经理要求工程师们解决这个问题。于是成立一个以几名博士为核心、十几名研究生为骨干的团队。在耗费数十万后,工程师们在生产线上一套X光机和高分辨率监视器,当机器对X光图像进行识别后,一条机械臂会自动将空盒从生产线上拿走。 另外一家乡镇企业也遇到了同样的情况,管理生产线的小工找来一台电风扇,摆在生产线旁。装肥皂的盒子逐一在风扇前通过,只要有空盒子便会被吹离生产线,掉在箩筐里。 从拣空肥皂盒看,博士后和民工的区别 ,博士后研究技术有时连民工都不如!这个虽然黑了部分开发人员的死板 但是也突出了开发的特点:1.专注于表面需求的实现 大多情况不怀疑问题本身的问题开发们根据表面需求制定的步骤是"得知箱子是否是空的 如果为空 做一些事情 不为空 做另一些事情" 这套解决方案是基于问题存在的 而问题提供的表面参数 让开发人员无法联想到"风扇"这种东西 而开发人员在思考问题的过程中 是不会考虑问题以外的参数的 (换言之 甚至都没考虑如何修复会出现空箱子的情况)2.基于问题能够发现新的问题并且一定要先设计后执行我们现在看到后面那个"小工"的解决方案的时候 都会觉得他聪明 但是也会觉得这个解决方案很临时性 只能解决目前的需求 回头看那些"研究生们"的解决方案 我们能联想到其他问题 比如我们可以通过计算空箱子的出现率来决定是否继续要使用这个流水线 (日志统计)我们支持对箱子的回收(GC?如果把箱子看成内存的话)因为我们是靠透视来判断容器是否有货物 所以可以摆脱对容器类型的依赖(减少与环境的耦合程度)后期可以让机械臂自动将肥皂扔进去(高可用 而且失败后掉在地上还能衍生其他的故事..)开发成功后 可以卖回给流水线的生产厂家 说不定有赚呢~嘛..我认为还是有可挖掘的点的 但是脑洞也就到这里了 创造过多的价值不被认同 反而被多数人觉得是浪费资源 啧啧3.有的时候过度执着于"武器" 缺乏实际的运用能力 或因为对某个知识的运用能力过强 出现了"如果你只会用锤子 那么问题在你眼里都是钉子"的情况"研究生们"第一时间就把"透视"和"X光"绑定到了一起 把"箱子移动"与"机械臂"绑到了一起 不同人的cache是不同的 没办法..4.看到一个笑话 我们都要忍不住去思考、吐槽 而不是享受笑话本身带给我们的乐趣 还真是悲哀啊..
automation.
聊斋里有个故事,说有一只虎抓了一只鹿,把它埋在土里面,被某个人看到了,他就把鹿挖走了。过些时候,他看见老虎带来一个黑的大怪物,准备请它吃鹿,但往下挖,没挖到,那个黑的大怪物很生气,打老虎,而老虎也不还手,最后老虎被打死了。然后作者评论说,这是一个“理而不解”的状态,虽然他知道“一物降一物”,虎是物,必被他物所压制,但他物是什么,有什么本领,他一点都不了解。所以他懂那个理,却难以理解。学哲学的,容易说大空话,就是这种状态,“万物普遍联系”,“对立统一”,说得都漂亮,但怎么联系,为什么会联系,几乎一无所知。人总是得到了答案就忘了曾经的问题,却不去思考答案是否合理,是对是错。
老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。”当晚,程序员老公手捧一个包子进了家门。。。老婆怒道:“你怎么就买了一个包子?!”老公答曰:“因为看到了卖西瓜的。”
软件的目标,就是某些工作自动化,从而让某些人可以更懒。1。 比如打车软件,可以帮你自动化找车。可以帮司机自动化找乘客。2。 比如财务软件,可以帮助财务人员结算、统计。任何有人认为麻烦的事情,都可能被自动化。比如煮咖啡,比如热水器,比如公交车上的自动刷卡机,比如家庭机器人。所谓编程思想,本质上来说,就是思考如何把这些原来需要很麻烦的事情,自动化执行。当然编程就要少挖坑,就要有合理的框架,合理的编码,设计要高内聚低耦合,这些应该称之为编程方法。
编程思维是个很高深的东东。如果说什么思维是程序员独创的话,我觉得就是面向对象的思维了,真的以为程序员没女朋友?no,因为程序员要对象太简单了,只需要new一个!!面向对象的编程思维,区别于传统思维的独特内涵是:让找对象变的无比简单!!
我也不知道是啥,我都是这么学编程的。。。写代码就和玩 一样,不是么?
这两天思考了下,谈下自己看法:谈编程不可避免的要谈到编程语言,而编程语言之所以出现,其最终的目的仍然是提供一种抽象方法来解决现实中的问题,问题本身的复杂程度往往取决于抽象的种
类和质量。从汇编语言的出现解决了最初的抽象,而类似c或fortran语言出现则可以看做是对汇编语言的进一步抽象。这一步抽象的完成其实是很重要的一
个进步,既我们在解决问题的时候不再需要关系复杂的机器模型或机器码,而是可以更多的关注问题和解决方案本身。
在这个阶段,从编程本身来说最核心的还是算法和数据结构。这也是任何程序最重要的两个基本要素。既把问题域本身涉及到的数据映射到合适的数据结构,把通过程序解决问题的过程映射为具体的算法逻辑。那么编程实际的难点在哪?不是算法本身或数据结构本身,而是当你拿到问题域的时候知道如何理解和分解问题,并将其映射到最适合的算法或数据结构上。这个映射其实本身不是程序解决的问题,还是人脑在思维,程序本身仅仅是在实现自动化的过程。
那么程序在算法实现过程中最基本的是什么?我们看不同的程序片段可以看到的还是if/else,或者for/while,然后才是数据或数据类型定义。而前者即写任何一个程序中最重要的控制逻辑。那么编程里难的实际上不是控制语句本身,而是在把问题域分解后知道如何理解判断逻辑,如何将问题域中重复的东西抽象为循环,如何从问题域中抽象出数据结构。一个人编程能力本身的好坏,或者说编程思维能力,重点其实是体现在这种映射能力,也可以称这种映射能力为数学
建模能力。举个例子来说,如果一个问题你已经知道了可以映射到构建二叉树,然后通过遍历的方式来解决了,那么可以说然后一个掌握了语言语法的人都可以写出
程序来。那么实际编程思维或能力的强弱则在于前面谈到的映射和建模。
面向对象思想和面向对象编程语言的出现,可以说也是编程思维本身的第二次重大提升。既原有的编程语言可以看到我们关注更多的已经是抽象后的解决方案,而面向对象的编程语言则首先关注的是通过对象和类,通过继承,通过接口定义等首先对现实世界进行很好的抽象描述,其次才是如何去解决问题。现实世界中所有的一
切都是对象,而面向对象语言中的类本身就是对现实世界中对象的很好的抽象。
对于面向对象的核心特征谈的比较多的是封装,继承和多态。这些可能比较偏技术词汇,那么再简单点来说面向对象编程思维其核心则是找到问题域中的对象,将其抽象为类,识别类应该有的属性和方法特征,同时去理清类和类之间的关联和交互关系,将问题本身的解决过程映射到类和类之间的方法交互上。如果从这个意义上
来说,好像也不是很复杂,那么实际面向对象编程的难点实际在为了保持代码足够的健壮性,可维护性,可扩展性而做出的各种抽象,包括接口的提取和组合,控制或逻辑类的增加等,这些本质已经转换到技术域类本身。
除了上面谈到的,再谈下其它的一些内容。编程里面有一个重要的思想即是复用,从最简单的函数,到模版库,类库,再到更上层的公共组件等,都在体现复用的思
想,而复用本身的目的则主要是提升开发效率,提升可维护性和代码的可读性等。复用可以理解为编程过程中的编程思想更加恰当。
编程的思想是自动化,不要简单的理解为编程语言能够帮助你解决建模和映射的难题,编程的自动化更多的还是体现在机器可以自动化的进行大量计算和运算,而这个运算是通过我们的程序进行的。程序中体现的一个重点我更喜欢把它理解为循环,从抽象中去发现和发觉一种可自动化的循环,这种循环的处理正是程序的强项。
任何人都应该有这种自动化的编程思维,即懒人思维,重复的事情一定不要自己手工重复完成。
带着镣铐跳舞环境给了我们严重的限制(语法错误都不可以,还有权限限制等),这是镣铐; 但也给我们一些方法(只要我们遵从语法遵从接口), 我们就是在这重重限制下充分发挥聪明才智编排最美丽的舞蹈(PS我其实没有艺术细菌看不懂舞蹈语言).黑客, js前端 等等从业者都尤其擅长在极度受限的空间里充分利用资源创造新天地.编程思想就是心里永远这么想 : "这些都难不倒我,我能在这荆棘丛中找到出路"
排号从0开始。
这个问题可以从计算机可以算得很快说起。问:现代计算机有多快呢?答:现在的CPU大多有2GHz的速度。2GHz有多快?你打开书桌上的台灯。在光从灯出发打到地面的时间内,CPU大概可以做10次计算。在这么快的速度面前,你所想到的让计算机好好干活的方式就编程思维吧。所以:When in doubt, use brute force. — Ken Thompson框架思维,拆解思维,函数思维什么的,都是因为计算机算得太快,可能扯到了蛋才出现的吧。
题主。我现在只是一个测试员。所以只能按照之前对编程的理解来答了。你说的所谓的编程思维中出现的大部分思维都是在传统思维方式中出现过的。我认为这是理所当然的事。在我看来,编程就是在计算机中模拟现在的现实世界。所以这个世界里面所包含的一切,出现在编程世界中,都是理所当然。反过来说,如果有现实世界中的事物不能在编程世界中重现。才说明编程世界还需要进一步的完善。说到底,我们到底为什么要编程?计算机的优势在哪里?计算度快,存储比人脑稳定。比人类更适合计算这项工作。所以编程思维应该是如何最大限度的将我们所生活的这个纷杂的世界变成计算机可以理解的,可以为我们输出一个「计算结果」的思维。我一直觉得懒人最适合学编程。因为越懒,越愿意用程序帮自己分析一切。很可惜,我认为我最应该学的那门课,不在计算机学院。数学建模。一旦我们决定了要把这件事引入计算机,我们才需要题主所说的那些思维。软件工程决定了先是构造设计,再是详细设计。在一个模块中熟练地运用控制结构,将操作流程化。或者为了提高效率,将共同的操作抽象成函数,再进行调用。这些都是编程思想的工具。你要利用它们来让计算机理解。但最最开始的时候,你每天百无聊赖的做着同样的工作,突然间想到;「这个东西可不可以由计算机替我完成呢?」的那一刻。那才是编程思维区别于传统思维的地方。交给计算机。解放自己。
编程思维就是:屁都还不会放就敢于hello world!(你看人家堂堂总统奥巴马也才Hello Chicago)干我们程序猿这一行就是要胆子大一些,底气足一些,不然怎么跟产品狗狗吵需求?
编程思维只是逻辑思维的一种,就是利用已有的工具,将自身的思路转化成计算机需要运算的步骤,从而达到自己的目的!
数学题:a=3 b=1 a=b*c 求c程序员不会做这道题//我曾经就在做题时候把等号当做赋值导致题做不出来,还好你们看不见这些
谢邀。嗯,这是个好问题。题主理解女朋友的思维应该会更有用。
站在机器的角度想问题
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 冗余设计是什么意思 的文章

 

随机推荐