老生常谈:算法与数据结构究竟有多大用
不好意思又提出了这样一个可以有口水战的问题。很多人的答案是“有用”,大部分的理由是不懂算法就会限制“思维”。我觉得这种答案有点牵强。软件产业现在也是有蛮细的分工的。一个人精力多花在了算法之上,那他就少了精力放在更高层面的设计问题上。就好像读设计的大部分是不会碰到土木用的力学。我们能不能说算法就是土木工程师的活,而酸法以外的架构和设计则是设计师的活呢?对设计师而言,懂力学自然是好,但是即使不怎么懂,也会无伤大雅。
所以我觉得学了算法当然有用,但是学算法花的时间会不会不值得。当然我说的学算法是在看完introduction to algorithm大半本以后的学习---intro to algo是蛮基本的, 但是像The arts of computer programming或者concrete mathematics就有点过头了。
即便在现实生活中,很多情况下我们都不会碰到有难度的算法。如果碰到有难度的算法,整个开发团队只要有一个人有本事解决,问题就不算是问题了。
所以我蛮想知道这两件事的,
1. 在这个论坛的,究竟有多少人是每天工作要碰到算法的?具体而言是哪些算法(离散的,信号处理的或者图形的?)如果你需要设计算法,有多少时候是找开源代码能解决问题的?有多少时候要自己真正设计的?
2. 究竟有多少人读过"the art of computer programming"?我自己算是大概翻过了这本书,很多章节我都从其他地方看过类似的材料。但是我不觉得直接看teh arts of computer programming是学习那些课题的高效方式。