为什么学习算法很重要

为什么学习算法很重要

为什么我们都忽视算法,觉得它没啥用?

对于多数程序员来说,恐怕都有这样一种感受,会花大量时间去学最新的技术,去研究最新的开源代码,去模仿如何使用它。而技术更新快又很多,自己学习的方向不知不觉变得漫无目的,导致花大量的时间学习而效果却很差。

热爱学习最新技术固然是好事,但是我们应该在有限的时间里找出重点。现在网上各种技术太多了,没有那么多精力也没有必要去学习。俗话说,万变不离其宗,我们要把精力放在最基础的知识上面,也即所谓的内功,范围缩小一点,也就是最基本的数据结构和基础算法,当然也包括计算机体系里的一些基石,如 OS、计算机原理和网络原理,它们也同样重要。

为什么学习算法很重要

会各种不同的编程语言固然很酷,但是算法才是解决问题的基石,编程语言本身也有其艺术的特质,而不仅仅是语言的语法,反应的是组织万物的一种法则,是一种思想,是一种通用的法则。剥除编程语言自身的语言,提炼出来的就是数据结构 + 算法。

编程语言能帮助我们做的事情是如何组织我们改变世界的语言体系,简化操作机器的过程,包含了如何实现做事情的约束和规则,而算法恰恰做了补充,帮助我们一步步理解清楚如何完成一件事情,算法的优劣直接关乎效率,这种影响往往是跨量级的。要知道在一些复杂的场景下用什么手段去解决问题,这就需要你对算法的把控力,包括算法的时间和空间复杂度、开发的时间、投入的人力和成本等等。

为什么学习算法很重要

算法包含哪些

算法涵盖的内容非常广泛,包含了我们学过和经常听到的经典算法(如各种排序、查找、hash、基础树算法、基础图算法等),针对特定问题的算法(贪婪、分治、动态规划、随机化、回溯算法、图论、最优化问题、最小生成树、单源路径最短、近似算法等);另外一大部分就是 AI 领域的自学习算法。和算法关系密切的就是数据结构,一个合格的工程师,应该熟练掌握算法,才能练就扎实的内功,有了那种高度才能解决哪些比较复杂困难的场景,这是不变的道理。

为什么学习算法很重要

想国内外一些知名的互联网公司,如国内 BAT、国外谷歌等,面试的时候都将算法掌握熟练程度作为主要的考查指标,一般都会让你手写算法程序。

如何学习算法

算法是需要大量练习的,首写我们需要选择基本比较好的教材来加强我们的理论知识,然后需要在这里理论基础上进行上机练习。

为什么学习算法很重要

算法书籍推荐

这里我们为大家罗列了一些经典书籍:

  • 数据结构与算法分析 -- C 语言描述
  • 微软的梦工厂
  • 算法设计与分析基础
  • 算法导论

感兴趣的小伙伴们也可以参考我们往期精彩内容:


分享到:


相關文章: