注册 登录
爱吱声 返回首页

code_abc的个人空间 http://aswetalk.net/bbs/?2769 [收藏] [复制] [分享] [RSS]

日志

目前编程最基础的能力需求——抽象能力

热度 11已有 1263 次阅读2012-3-23 02:57 |个人分类:随笔| 编程, 抽象能力

编程最基础的能力是抽象能力,也就是把实际问题转换成数学问题的能力。因为我们日常用的数学大多只需要小学算术能力,所以这绝大多数的转换确实不超过小学数学知识。这样就解释了为何小学数据都不及格的人也可以写程序。FF

另 外,在许多程序员眼中,数学物理问题可以抽象成神秘的模块,只需要知道怎么调用就可以了,不需要了解内部机制。这些年成长起来的程序员尤其如此——现在还 有谁是从空白的CPU开始写程序的?举一个抽象的例子:让一个小学数学不及格的程序员写开平方程序(sqrt函数)能行吗?当然可以!我们只需要告诉他一 个迭代公式,然后让他明白只要不断地循环计算这个公式,直到前后差别小于某值就可以了。然后别忘了给那个函数取一个叫sqrt的名字。F大多数程序员会说:哇哦,原来只用加减乘除就可以算平方了,真神奇!而更大多数的程序员则只需要从标准库调用就好了,开平方函数和一个能在Word文档中加水印的函数没有区别。这恰恰就是编程最基础的能力要求——抽象能力。

1

膜拜
1

鸡蛋
1

鲜花
1

路过
1

雷人
1

开心
1

感动
1

难过

刚表态过的朋友 (8 人)

发表评论 评论 (9 个评论)

回复 霜迹板桥 2012-3-23 04:22
想到那个费伯纳切数列的NB战例
double x = (1 + sqrt(5))/2;
Fib(n) = (x^n - (1-x)^n)/sqrt(5);
不过我很好奇,程序员怎么写来保证运算速度,公式一样,我写的运算总要花个几秒钟,调用函数基本就是瞬间
回复 Highway 2012-3-23 04:37
事情要都这么简单就好了。

要知其然知其所以然才能写好程序。比如最简单的List吧,说白了就是一串东西,但是哪个适合你的问题呢,可能很多人并不知道。Java的List有一堆:ArrayList, CopyOnWriteArrayList, LinkedList, Stack, Vector。他们都实现了List功能,你选哪个呢?为什么呢?就是看了文挡可能很多人还是不清楚。Vector和ArrayList基本一致,一个是thread safe,一个不是,那用哪个呢?啥是thread safe,跟我的问题有关系吗?这些问题搞不懂,怎么写程序。
回复 老兵帅客 2012-3-23 07:19
Highway: 事情要都这么简单就好了。

要知其然知其所以然才能写好程序。比如最简单的List吧,说白了就是一串东西,但是哪个适合你的问题呢,可能很多人并不知道。Java的Li ...
这个就是职业和业务的区别了
回复 code_abc 2012-3-23 07:53
Highway: 事情要都这么简单就好了。

要知其然知其所以然才能写好程序。比如最简单的List吧,说白了就是一串东西,但是哪个适合你的问题呢,可能很多人并不知道。Java的Li ...
当然不是所有事情都这么简单,完全不懂数学、算法的比较极端。不过程序员有自己特有的思路,除了理解原理把前因后果整明白之外。好的程序员应该保持自己代码的灵活性,在实践中(比如测试)可以很方便地选择适合的数据结构。也就是我可以不理解那几个List的区别,但是我能让代码独立于List的选择。这就是我所说的抽象能力。
回复 code_abc 2012-3-23 07:55
霜迹板桥: 想到那个费伯纳切数列的NB战例
double x = (1 + sqrt(5))/2;
Fib(n) = (x^n - (1-x)^n)/sqrt(5);
不过我很好奇,程序员怎么写来保证运算速度,公式一样,我写的 ...
这个通常是你把不必要的运算放在内层循环的结果。
回复 霜迹板桥 2012-3-23 08:07
code_abc: 这个通常是你把不必要的运算放在内层循环的结果。
目前的程序大小是最优的么?总感觉如果全面统筹有大幅度压缩的余地
回复 code_abc 2012-3-23 08:19
霜迹板桥: 目前的程序大小是最优的么?总感觉如果全面统筹有大幅度压缩的余地
目前大多数程序空间利用率不是最优的,因为目前商用软件行业强调的多是开发效率、管理效率、用户体验等等。
回复 如有神助 2012-3-23 08:46
我觉得要允许低手的存在啊,低手干苦力,高手指导
回复 绿葱头 2012-3-25 06:14
应约而至,求啥得啥:)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2024-5-16 02:04 , Processed in 0.030003 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部