讲得很好,数学和算法是有区别的,算法是实现软件功能,属于软件设计管理范围。
面向过程程序=算法+数据
面向对象程序=对象+消息
可能由于国内过于强调数学对软件重要性,我提出一些理性思考。下面我多谈些个人对数学认识,屁股决定脑袋,只是我的角度:
数学可以培养抽象和逻辑能力,但应该不是唯一方式。
数学是支撑西方科学重要工具,牛顿提出万有引力,如果不用数学推导出来,那么就和中医一样,如果有人用数学公式把中医或易经一些结论推导出来,结果怎样?哈哈。
数学很强大,但也有其局限,中国古代有象数之争,象就是凭借直观外部特征判断,是使用它;而数就是数术,用今天话说,就是用数学表达事物,甚至能从事物无到有推导出来,但是因为数学粒度可能太细,表达或推导相当繁琐,一些人毕其一生推导一个公式,能成功已不简单,跨几个世纪没有结果是正常的,那是不是没有推导解剖之前不能用它呢?
当然不是,中医等数学推导出来可能人类都不存在,但是我们在用它,这就是象数之道,要灵活使用,炒股票也是,是不是股票走势没有被经济学家推导出来,我们不能赚钱?否定的,凭借中国的大象之道,从外界观察它,趋势第一;同样,软件建模也是从外部分析事物,四色原型,实体和值对象都属于从事物外部认识其象行。