算法?什么算法?
闲来上网,看到了 http://coolshell.cn/articles/8138.html 在反对算法面试。
他说的对也不对。他认为算法很重要,但是不应该出纯算法题目。不应该出算法题目,我赞成,但是如果说算法很重要,我就要哈哈大笑了。
算法什么也不是。
软件是一种艺术。如果艺术能用算法描述那他也就不能称为艺术了。没错,有时候确实需要算法。排序么?恩,需要一些排序算法。
但是就这样理解为软件为算法的推切就大错特错了。这就和把油画理解为油墨的堆砌一样可笑。
艺术需要东西去表现,对于绘画,是墨水和纸张。对于程序,是代码和机器。
算法不过是将那个驱动机器的代码进行了抽象,使得不会写程序的人也可以来凑热闹而已。
真正的程序,一定是一种思想。这种思想借助具体的硬件去表现。用具体的代码去驱动硬件。
但是程序本身从来也不是算法的堆砌。
程序是人类思想的机器描述。背下康熙字典一样写不出红楼梦。背下牛津词典也写不出莎士比亚戏剧。会各种算法也写不出好的程序。
唯有思想才能助你写出完美的程序。
UNIX就是一种思想。就算UNIX的代码最终被AT&T扼杀,UNIX的思想仍然传播下去,在Linux的土壤中再次发芽。
算法是轮子,是我们快速表达思想的工具。最好的优化的是思想,其次是算法,最烂的是在指令层面进行优化,当然,比没有强。
寄希望于算法的人,是没有思想的代码生成工具而已。
2012年9月17日 03:04
对了,指令的优化有编译器帮我们做
算法的优化有 STL/boost 之类的库帮我们做
唯有思想,是需要我们去创造。
2012年9月20日 09:52
讲的东西不是同一个层面。 算法跟画画的技法一样,基本功还是要有的。能背字典的只是可能写不出红楼梦,但是不识字的肯定写不出。酷壳的文章说的是面试,面试嘛,自然是要测一测基本功的。
2012年9月22日 10:19
明显不是基本功嘛!
2024年1月16日 16:58
I personally use them exclusively high-quality elements : you will notice these folks during