书来了 | 想进大厂,数据结构和算法有多重要?

程序员书库(ID:OpenSourceTop) 编译

整编自:https://hackernoon.com/10-data-structure-algorithms-books-every-programmer-should-read-d50487313127

yabo88亚博体育app下载地址算法和编程语言没有太大关系,任何一个优秀的程序员都应该能够将他们转换成编程语言的代码,但遗憾的是,我身边有很多十分擅长Java或Python等流行编程语言的程序员,他们精通各种语言特性和API,但对最基本的算法和数据结构却非常欠缺,因为他们认为这些东西只有在面试的时候用得着,并没有对它们引起重视。


但是,如果他们想要在亚马逊、谷歌、Facebook或者微软这样的企业工作,那么算法和数据结构就是一道必过的槛,如果你也像他们一样,并且有心想要了解更高级和更复杂的算法,那么本文提到的这些书,最好看一看



1. 《算法导论》



这是最流行的算法书籍之一,但要知道它包含了大量的理论。这本书的最新版本是第三版,我强烈建议每个程序员都应该在他们的书架上有这本书,


一次读完这本书是不可能的,你们中的一些人可能会发现它很难读,但是不要担心,你可以把你的学习和在线课程结合起来,这种学习方法是非常好的,你可以在网络课程中快速学习基本的算法,然后再通过书本进一步巩固知识。


我推荐这本书的另一个原因是,它是关于算法的第一批书籍之一,因为它与语言无关,并且配有网络视频(地址:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/index.htm



2. 《算法》



这是我最喜欢的算法书籍之一,通过这本书你可以学到很多关于算法的背景知识,这本书的不同版本对应了不同的编程语言,如Java和C++,这本书还有一些免费的Coursera在线课程,它们很好的补充了这本书,强烈推荐Java程序员看这本书


课程地址1:http://bit.ly/algorithms-part1

课程地址2:https://www.coursera.org/learn/algorithms-part2


此外,在Coursera上,它也有一些最好的数据结构和算法课程,涵盖了每一个重要的主题。



3. 《The Algorithm Design Manual》



这是另一本关于计算机算法的优秀书籍,它涵盖了大量的算法和大量的代码。我特别喜欢这本书的地方是,作者在书中给出了他在实践中使用的算法实例。


代码是用C语言编写的,但并不深奥,而且很容易理解。这本书我已经读了差不多10年了,现在还不时地看它



4. 《Algorithm for Interviews》



这是一本必读的算法书之一,或者说里面的编程面试你都应该烂熟于心,如果你仔细观察封面图,就会发现本书多么有趣,封面上的图片是用名人的缩略图绘制的,书中还解释了如何开发这样的算法。是不是很有趣?




5. 《算法技术手册》



简而言之,O 'Reilly的这本书是学习编程算好很好的书籍之一,尤其是对于Java程序员来说,所有的算法都以模式的形式呈现,并有使用它们的原因,图片和伪代码给出了一个高层次的概述,以及示例代码



6.《算法设计》



这是继Thomas Cormon之后又一本关于算法的好书,它更适合有经验的程序员,更多的是为熟悉基本算法的开发人员介绍如何设计算法,你应该先读完《算法》这本书,然后再读这本


值得一提的是,你也可以把这本书和在线课程相结合(课程地址:https://pluralsight.pxf.io/c/1193463/424552/7490)该课程并非免费,但是首次登录有10天的免费试用



7. 《算法引论》



《算法引论》是另一本自学算法的好书,因为里面涵盖了数百个问题和例子,这本书旨在提高读者解决问题的能力和对算法设计原理的理解,这将有助于你提高解决问题和编程技能的能力



8. 《算法设计与分析基础》



作者基于丰富的教学经验,开发了一套全新的算法亚博88娱乐城方法。算法设计与分析基础(第3版)》作为第3版,相对前版调整了多个章节的内容和顺序,同时增加了一些算法,并扩展了算法的应用,使得具体算法和通用算法设计技术的对应更加清晰有序;各章累计增加了70道习题,其中包括一些有趣的谜题和面试问题。



9. 《Data Structures and Algorithms》



这是一本任何不喜欢在算法上大量使用数学的程序员都会的书。但是,有很多程序员也表示这本书不好读,如果你也这样觉得,建议你读《漫画算法》,这是一本对初学者十分友好的书籍



10. 《Python算法教程》



这本书是为Python程序员设计的。作者Magnus Lie Hetland还出版了《Python基础教程》这一畅销书。


前面我说过算法是独立于编程语言的,学习Python算法,并不代表这些算法不能在Java和C++等其它编程语言里实现它。此外,这本书在解决实际问题当中帮助很大。


学习算法的成效并非是立竿见影的,但随着时间的推移,你就会发现你的思维、解决问题的能力和代码质量都有所提高,此外,顺便提一句,利用免费的网络视频教程配合书籍学习算法,效率会大大提升。

推荐↓↓↓
程序猿
上一篇:单调队列解决滑动窗口问题