记得以前在大学老师曾经讲过:程序=算法+数据结构,后来在工作中也没有体会到算法的重要性,所有的代码开发都是按照业务流程通过if/else等串联起来,大学曾经学过的各种算法都几乎无用武之地,什么迪杰特拉斯算法、动态规划算法、哈希散列算法、排序算法、广度优先/深度优先算法,有些算法逻辑还是比较复杂,记得大学还是花了点功夫学习才保证考试通过。
在十几年的工作中,有时也会思考:大学的这些知识为何工作中用不到?我没用到,也没见过比我厉害的程序员用到,直到近期工作需要才有所感悟:算法注重的是时间和空间复杂度,就是用最少的内存和时间来完成目标。这在嵌入式系统中尤其重要,在刀片服务器的大型应用中,内存足够大,CPU处理速度足够快,所以算法不是主要矛盾,保证业务处理正常运行最重要。而在嵌入式系统中,内存资源和处理不够强大的SoC是主要矛盾,因此对算法要格外重视。
算法使用的是否合适也是一个牛逼程序员和普通程序员的区别,用更少的代价换来同样的收益,好算法的魅力就在于此。
所以,数据结构和语法固然重要,但是核心还是算法,希望积极向上的程序员们都能成为算法大牛!
网友评论