Sep 17

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

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

算法什么也不是。

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

 

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

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

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

 

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

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

 

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

 

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

 

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

 

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

 

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