CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

软件工程VS算法 大家来讨论

楼主sinotao(小小菜菜鸟)2001-06-01 20:58:00 在 专题开发/技术/项目 / 数据结构与算法 提问

问题点数:20、回复次数:19Top

1 楼wildboar(酷狗)回复于 2001-06-01 22:36:00 得分 0

如果是为了虚荣心和我的眼睛,我会选择算法;  
  但是如果为了职业和将来我会选择软件工程!!!!  
  我希望中国人要想灭了印毒最好学软件工程!!!!  
  遗憾!!!!居然没人讨论这个问题!!!!  
  希望STARFISH看到之后也能谈谈!!!!Top

2 楼zhangning111(比傻子还笨)回复于 2001-06-02 01:29:00 得分 0

算法好比汽车制造  
  软件工程好比交通管理  
  目的一样,都是为了汽车更快更安全Top

3 楼ahuacxh(阿华)回复于 2001-06-02 01:34:00 得分 0

关注Top

4 楼Fiven_Luo(小五)回复于 2001-06-02 08:45:00 得分 0

如果你只想做个程序员的话,学算法就行了。如果你想当个项目经理,不学软件工程行吗?Top

5 楼starfish(海星)回复于 2001-06-02 09:41:00 得分 0

Top

6 楼starfish(海星)回复于 2001-06-02 09:45:00 得分 0

两者并不矛盾,软件工程中也有很多算法,比如工期的安排问题,就是拓扑排序算法。事实上,算法渗透到生活的任何角落,根据强人工智能的观点,我们在这里讨论问题,也是遵循一定的算法,我们说话,写文章,都是按照一定的算法来做的,只不过人脑太厉害了,几乎感觉不到这种算法的计算过程。所以大家不要把算法单纯的理解成Dijkstra,Prim之类的具体算法,所谓算法就是解决问题的具体过程方法。Top

7 楼starfish(海星)回复于 2001-06-02 09:50:00 得分 0

还要说一句,学习算法主要是锻炼思维,培养解决问题的能力,了解那些经典的算法的目的不是仅仅记住那些算法,而是要通过学习经典算法,学会如何分析问题解决问题。学算法就和学数学一样,不是为了学算法而学算法,而是为了通过逻辑思维的锻炼培养分析解决实际问题的能力,所以学好算法以后,不管再学什么都会很轻松的,因为你的思维能力增强了(换句话说就是变聪明了)。所有的科学领域都需要数学,这点应该毫无疑问吧,而算法就是利用数学建立数学模型解决问题的具体方法。Top

8 楼sinotao(小小菜菜鸟)回复于 2001-06-02 11:52:00 得分 0

同意starfish.再补充几句:  
  软件工程无非是让我们的软件具有更好的:复用性,持久性,适用性  
  这也是我们写程序的目的(为了高薪?没有好的程序,或自认为好的程序,别人不认可,那就是梦)所以每个程序员都要学软件工程(尽管你不做项目经理)  
  Top

9 楼eagle_canfly(eagle)回复于 2001-06-02 12:13:00 得分 0

I   agree   on   starfish.  
  Top

10 楼sinotao(小小菜菜鸟)回复于 2001-06-02 12:27:00 得分 0

计算本身就是数学  
  数学构成了世界!  
  数学与算法的区别?Top

11 楼starfish(海星)回复于 2001-06-02 21:29:00 得分 0

软件工程是面向市场的,算法是面向技术的,要想发展软件事业,既要有技术,也要有市场Top

12 楼starfish(海星)回复于 2001-06-02 22:28:00 得分 20

TO:sinotao(涛)   
   
  数学研究的对象是数量和空间的关系,我觉得数学是一种用来表达人类对自然的认识,并互相交流这种认识的语言(这是我的看法,当然每个人对数学都有自己的理解)。而算法,就是一种机械地解决问题的方法,根据算法解决问题时不需要任何智慧(这里可能用词不当,因为强人工智能学派认为智慧就是一种复杂的算法),只要照着做就可以了,所以现在的计算机能够执行算法而且也只能执行算法。发明创造各种算法是为了让我们研究数学的时候不需要总是依据他的客观物理含义,比如我们做1987+1234567的时候,通常使用的是按位计算,这是按照一定的规则(算法)一步一步做下去的,而不是考虑它的物理含义:有1987个苹果,然后又拿来了1234567个,一共是多少个,但是小孩子刚学加法的时候要扳着手指头计算,从这点还可以看出加法的本来物理意义。    
   
  所以我觉得,数学是上帝创造的,它表现了一种客观实在;而算法是人类创造的,它是方便人类研究数学这种客观实在的工具。  
   
  算法的发展和形式系统是分不开的,数学发展到20世纪初的时候,数学家开始研究数学的本质(其实早就开始了,不过20世纪初是鼎盛时期),大家发现,我们的数学体系完全是基于一种符号的演算体系,所有数学体系都变成了“由几个基本公理奠基,然后规定几个规则,按照这些规则推导出来所有的定理”这种公理化体系。这就是形式系统。形式系统中的推导过程就是一个个的算法。比如求积分的方法,开根号的方法,加法,乘法,...etc。大家就提出疑问,是否存在一种算法,可以证明一个命题是对是错,如果存在的话,我们只要找到这种算法就一劳永逸了。这个问题是由希尔伯特在1900年巴黎国际数学家会议上提出的希尔伯特第十问题。但是可惜的是,天才的图灵证明了这种一劳永逸的算法是不存在的,这说明了算法不是一切,也不能够解决一切!后来大家又发现很多不可计算问题,这些问题根本不能用算法来解决。比如Pi的小数点后面是否存在1000个连续的7,要回答这个问题,必须不停地计算Pi,但是Pi是无限不循环小数,如果算到某一位发现了1000个连续的7,我们可以说命题成立;关键是,如果该命题确实不成立,我们却无法通过计算证明该命题不成立,还必须永远的算下去!这是一个很奇怪的现象,如果单纯靠算法,我们居然无法知道某个命题是否成立!后来大家又发现很多这类不可计算问题,这时候我们才知道,原来算法可以解决的只是自然中极少数的一部分问题,就像牛顿力学和相对论的关系一样,牛顿力学解决的完全是特殊的现象,算法解决的也是特殊的一类问题!更槽糕的是,伟大而“可恶”的天才哥德尔出现了,他在25岁就提出了一个震惊世界的定理:哥德尔不完备性定理。这个定理说明,任何的形式系统,要么存在着矛盾,要么存在着不可被证明是对还是错的命题,而这种不可证明性是可以证明的!!这就表明了我们从欧几里德时代开始建立起的公理化数学体系有着先天的缺陷!这个发现令数学家们想用数学和算法来描述世界的构想化为泡影。所以人类其实是很可笑的,企图接近上帝,但是上帝创造人类的时候就注定了让人类永远无法认清这个世界。顺便提一下,本世纪初的另一个伟大的而且是令人类沮丧的发现是物理中的不确定性,它和哥德尔的不完备性有点类似,说明了我们永远无法真正预测一个粒子的行为,原来物理学的重要意义之一就是“知道某个物体在某时刻的状态,并且知道他所受的所有力。根据运动方程,就能预测下个时刻他的位置”,但是不确定性却告诉我们这是不可能的,物理世界中也存在着人类永远无法认识的东西。数学上和物理上的双重打击令后来的纯理论科学家们低调了很多,更多的人开始研究具有实用价值的东西,而很少有人再幻想通过纯理论的研究找到一劳永逸的方法了。  
   
  一时有感而发,说的有点走题了:)Top

13 楼sinotao(小小菜菜鸟)回复于 2001-06-03 11:42:00 得分 0

To:starfish(海星)   
  谢谢!受益非浅!  
  无论是人工智能还是智能人工,人都是起决定作用的?幻想智能人工来代替人,是不是不可能?  
  我似乎倾向于“智能人工可以实现人的一切”的观点(看A片太多的缘故),尽管是人自己研究出来的,你不可能绝对完美(象写程序,有可能每一条语句都是错误的,尽管暂时认为正确),或许有一天影片上的故事成为事实!  
  人类总是试着偷懒,可总是没办法偷懒!  
  回过来,软件工程和算法的研究都是为了更好的软件诞生!总会不满意!  
  象你说的,我还是去学更有实用价值的东西吧!  
  谢谢!  
  Top

14 楼sinotao(小小菜菜鸟)回复于 2001-06-03 11:44:00 得分 0

starfish(海星)   
  果然好使!  
  永远支持你!Top

15 楼b_horse(盲马)回复于 2001-06-03 19:25:00 得分 0

Top

16 楼b_horse(盲马)回复于 2001-06-03 19:36:00 得分 0

不管是算法,还是软件工程,都是为解决问题而生,只不过它们的侧重点不同:  
  算法更强调细节,软工要求统观全局。两者的重要性不分仲伯,现在,人们讨论的多的往往是“技巧”——既不能算“算法”,又不是“软工”;我想,这与大家的实际工作背景有一定关系,  
  真正的“算法”或“软工”的探讨在CSDN上未必能引起“共鸣”。Top

17 楼sinotao(小小菜菜鸟)回复于 2001-06-03 20:57:00 得分 0

的确  
  有时恰恰是因为太重于技巧而忽略了软件工程的作用!  
  似乎程序员的任务只是写代码,至于软件需求只是项目经理一个人的事,致使到了开发的后期难以继续!Top

18 楼crazycsharp(编程浪子)回复于 2001-07-06 10:50:31 得分 0

是程序员者,比学软件工程。这是真理。Top

19 楼blackdragonnet(龙)回复于 2001-09-15 02:06:23 得分 0

工业vs农业,毅力vs智慧,内存vsCPU,硬盘vsUSB,电视vs随身听...   ...   ...   ...Top

相关问题

  • 软件工程VS算法?
  • 讨论: 软件工程的两个名词
  • “软件工程版”网友行为守则(讨论稿)
  • 【本周日沙龙讨论软件工程,欢迎光临】
  • 大家来讨论一下软件工程的学习吧。
  • 数学硕士 vs 程序员/软件工程师
  • 软件外包.对赴日软件工程师,欧美软件工程师培训了解,感兴趣的朋友进来讨论讨论吧!
  • 软件外包.对赴日软件工程师,欧美软件工程师培训了解,感兴趣的朋友进来讨论讨论吧!
  • 希望和高手讨论!VC,Delphi,TCP/IP,Linux,数据库,软件工程...........
  • 软件工程都使用一些什么工具啊,欢迎讨论!

关键词

  • 算法
  • 数学
  • 软件工程
  • 解决
  • 物理
  • 研究
  • 人工智能
  • vs
  • 程序员
  • 项目经理

得分解答快速导航

  • 帖主:sinotao
  • starfish

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo