算法?什么算法?

cai posted @ 2012年9月17日 03:01 in 思维碎片 with tags unix 算法 思想 , 2503 阅读

闲来上网,看到了 http://coolshell.cn/articles/8138.html 在反对算法面试。

他说的对也不对。他认为算法很重要,但是不应该出纯算法题目。不应该出算法题目,我赞成,但是如果说算法很重要,我就要哈哈大笑了。

算法什么也不是。

软件是一种艺术。如果艺术能用算法描述那他也就不能称为艺术了。没错,有时候确实需要算法。排序么?恩,需要一些排序算法。

 

但是就这样理解为软件为算法的推切就大错特错了。这就和把油画理解为油墨的堆砌一样可笑。

艺术需要东西去表现,对于绘画,是墨水和纸张。对于程序,是代码和机器。

算法不过是将那个驱动机器的代码进行了抽象,使得不会写程序的人也可以来凑热闹而已。

 

真正的程序,一定是一种思想。这种思想借助具体的硬件去表现。用具体的代码去驱动硬件。

但是程序本身从来也不是算法的堆砌。

 

程序是人类思想的机器描述。背下康熙字典一样写不出红楼梦。背下牛津词典也写不出莎士比亚戏剧。会各种算法也写不出好的程序。

 

唯有思想才能助你写出完美的程序。

 

UNIX就是一种思想。就算UNIX的代码最终被AT&T扼杀,UNIX的思想仍然传播下去,在Linux的土壤中再次发芽。

 

算法是轮子,是我们快速表达思想的工具。最好的优化的是思想,其次是算法,最烂的是在指令层面进行优化,当然,比没有强。

 

寄希望于算法的人,是没有思想的代码生成工具而已。

 

 

Avatar_small
cai 说:
2012年9月17日 03:04

对了,指令的优化有编译器帮我们做

算法的优化有 STL/boost 之类的库帮我们做

唯有思想,是需要我们去创造。

Avatar_small
Wayne 说:
2012年9月20日 09:52

讲的东西不是同一个层面。 算法跟画画的技法一样,基本功还是要有的。能背字典的只是可能写不出红楼梦,但是不识字的肯定写不出。酷壳的文章说的是面试,面试嘛,自然是要测一测基本功的。

Avatar_small
cai 说:
2012年9月22日 10:19

明显不是基本功嘛!


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter