zoukankan      html  css  js  c++  java
  • 现代软件工程 第一章 第4题 --缪东旭

    4.  “写程序这个活动大多数情况下是个人行为。 我们听说的优秀程序员似乎都是单打独斗地完成任务。同学们在大学里也认识一些参加ACM 比赛的编程牛人,  他们写的ACM 比赛的程序是软件么?   “写程序做软件有区别么? 请采访这些学生。 

    Dijkstra曾经提到:“Software engineeringof coursepresents itself as another worthy causebut that is eyewash: if you carefully read its literature and analyse what its devotees actually doyou will discover that software engineering has accepted as its charter ‘How to program if you cannot.’”[i]

    软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?

    ACM 比赛的程序是软件么?   “写程序” 和 “做软件” 有区别么?

     

      只代表个人观念,并没有采访他人(周边没有太多坚持做 ACM 的同学)。ACM 比赛大都是给定问题,尽力将它做好然后优化在优化,对时间空间复杂度的要求都很高,甚至会包含一些编程 trick,但对算法的高度重视是非常可取的。

     

      软件包括数据、文档和程序。因此相较于程序,一般意义上会“更大” -- 更多的代码,更丰富的功能,更具象的服务。软件更注重的是提供可持续的服务,对程序的优化相较于提供可用的服务可以向后放一放。花费过长的人月想要做到“完美的软件”和软件并不完美甚至有一些 BUG 但可以迭代地变得更好肯定是后者是软件开发人员需要追求的。特别是对于目前的环境,同质的产品更早地进入、更快地更新迭代、提供更人性化的服务才能更好的占领市场。

     

     

    软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?

     

     这个问题就像是在问“数学是不是教不会算数的人算数”,数学肯定是要教人算数的,不然也就失去了其存在的意义;但是若只是教人算数,数学大概早就变成了中学便可结业,而人类大概还是在用手指头来算今天打了一只羊,摘了 10 个苹果,要是想找个老婆还需要些什么 :)

     

    数学更多的要教会人用更加抽象的东西来模拟世界,1 可以代表的是一个人,一棵树,一朵花 ...,要教会人“建模”的能力,要给人提供科学的视界,要 ...

     

    更多的就不再举例。回到软件工程,教不会写程序的人开发软件是其必须要做到的(很遗憾并不是完全做到了)。但还要做到更多,我们不可能跟上所有领域的发展,所以需要涉猎计算机科学以及软件工程中更本质的东西(鉴于本人水平有限,不在此详说),相较于“学会”,更多地要学到“会学” -- 当然这不限于软件工程了,是教育的目标。

  • 相关阅读:
    evernote100个做笔记的好方法
    平衡二叉树的调整模版
    晨间日记的奇迹
    hdu 2952 Counting Sheep
    hdu 1535 Invitation Cards
    poj 3259 Wormholes(spfa)
    poj 2263 Heavy Cargo(floyd)
    poj 3268 Silver Cow Party(SPFA)
    hdu 1690 Bus System
    hdu 3631 Shortest Path(Floyd)
  • 原文地址:https://www.cnblogs.com/msec2016/p/5859462.html
Copyright © 2011-2022 走看看