大学四年,分享看过的优质书籍

人走茶凉 提交于 2019-11-25 19:53:13

数据结构与算法是我在大学里第一次接触到的,当时学了很多其他安卓、网页之类的,一开始就感觉纳闷,数据结构和算法学这个有啥用,再加上上的是一所野鸡大学,老师讲的也是模模糊糊,平时做项目、练习也几乎不用数据结构,所以考试应付应付就过了,也没太在意。

到了大三的时候,面临考研和就业了,突然看到学长考研的数据结构题和面试网站的要求,突然意识到数据结构和算法的重要性,真的很重要,重要的话说三遍,真的很重要,真的很重要。直到暑假出去面试,领略到了算法被面试官虐的感觉。

明人不说暗话,虽然我的专业方向是野路子出身的前端工程师,但是我对算法可谓是比前端都重视。

总结出一个结论,无论你是为了考研还是就业,越是提前学习越是优势,这是一个来自大四狗的深刻教训呀。为了能够顾忌到初学者入门、考研看哪些书籍以及面试前的准备,刷题等等吧,利用空余的时间,好好把书单整理了一遍,由浅入深,每本书的介绍以及内容涉及到了哪些,我大体都进行概括一下。

而且不同的人以及不同基础的人以及不同语言看同样的书籍难度都是不一样的,这需要根据自己的基础以及不同编程语言来记性选择,废话不多少,从入门书籍开始推荐。


一、入门类

要想学好数据结构和算法,首先我们要对它产生兴趣,就像是对你女朋友一样,产生兴趣,产生浓厚的兴趣,直接去看那种稍微难的数据结构书,会更加降低你的自信息,所以要选择一本产生兴趣的书籍,gongzhonghao:小鹿动画学编程,回复“电子书”,即可获取。


书籍一:《大话数据结构》

通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。这本书非常适合你完全不懂数据结构的小伙伴看。本书大约 400 多页,看起来挺多,但是不到一个星期就可以看完,看完之后,让你对数据结构有个大体的认识。


书籍二:《算法图解》

其实这本书和《大话数据结构》的趣味性都是差不多的,书中的“图解”为了让初学者更好的去了解认识数据结构,通俗易懂。本书大约 200 多页,内容上是相对上一本比较少的,毕竟是入门书籍嘛,重点是让你产生兴趣和读懂。

缺点:

这本书不够系统,很多细节没有讲到,所以想要进一步系统的学习数据结构和算法,这两本书还不够,需要看一些写的比较全面、深入的数据。

书籍三:《啊哈!算法》

这不过是一本有趣的算法书而已。和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。这是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。这本更基础,还是适合完全没有入门的同学。


二、编程语言类

之前在公众号,很多小伙伴和我说,买书有些和自己学的语言不一样怎么办?所以很多小伙伴关心特定语言的数据,我记得大学的时候,老师上课讲的书籍就是 C 语言版本的,我想肯定有其他版本,我就去网上找了找,卧槽,确实有其他版本,然后就整了下,网上购买对应的书籍就可以了,如果你资金紧张,小鹿也为你考虑到了,大学生没有经济来源,小鹿公众号准备了电子书PDF版本,文章最后有获取方式的。


书籍四:《数据结构与算法分析 :xxx 描述》

有的同学考研考 C 或 C++,那么对应购买《数据结构与算法分析 :C 语言描述》和 《数据结构与算法分析:C++ 描述》。如果你是想就业刷题,也许是前端的 JavaScript,后端的 Java、Python方向的,选择你对应方向书籍即可。

1、《数据结构与算法分析 :C 语言描述》

2、《数据结构与算法分析:C++ 描述》

3、《数据结构与算法分析:Java 语言描述》

4、《数据结构与算法 JavaScript 描述》

5、《数据结构与算法:Python 语言描述》


三、面试必刷类

算法对于面试来说太重要了,但是有一点要知道,学习算法和数据结构不单单为了应付面试,而是为了能够进一步提高自己的编程思想,能够有驾驭技术的能力,这是算法的精华之处所在。这一点我想我不能误解大家,不能单从一个方面说为了面试而面试。


书籍五:《剑指offer》

要想通过面试,必须以高标准的姿势去研究题型和总结面试官到底考你哪些东西。《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。

作者是微软的工程师,这本书,应付一般公司面试足以拿到offer。但是本书是用 C++ 语言写的,此书本人刷过两遍了,自己用 JS 把所有题型的解题思路、测试用例、代码、以及同一类型题的总结都进行整理了,放到了开源的 Github 上,供大家学习,后期会刷三遍,第三遍打算每一个面试题都用动画形式呈现给读者,这样同样兼顾到了初学者.。

【Github仓库地址】:地址戳这里~~

书籍六:《编程珠玑》

此书在豆瓣的评价非常高的,书的内容围绕程序设计人员面对的一系列实际问题展开,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。

这本书的特点就是有关海量数据的处理涉及到很多,这是其他算法书籍不能比的,记得有个朋友学后台的去面试,面试官从 10 万数据的处理到 10 亿数据的处理,把它问懵逼了,所以对于海量数据面试中也是会经常问到的,尤其是大厂校招的时候。


书籍七:《编程之美》

这本书都是微软的大佬们出的面试合集,这本书收集了约 60 道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。如果想要面试 Google、Facebook 这本书是首选。

书的内容分为以下几个部分:

  • 游戏之乐:从游戏和其他有趣问题出发,化繁为简,分析总结。
  • 数字之魅:编程的过程实际上就是和数字及字符打交道的过程。这一部分收集了一些好玩的对数字进行处理的题目。
  • 结构之法:汇集了常见的对字符串、链表、队列,以及树等进行操作的题目。
  • 数学之趣:列举了一些不需要写具体程序的数学问题,锻炼读者的抽象思维能力。

四、 经典类

如果你去知乎等其他论坛网站去搜学习算法看什么书好,时不时的就给说《算法导论》和《算法》就来让你看,那么厚厚的一本书,初学者能看下去才怪呢,只会打击初学者的信心。这两本书籍确实是经典书籍,但是读起来苦涩、无味,如果你想进一步提高自己数据结构与算法能力的时候,那小鹿还是建议你去看的。


书籍八:《算法导论》

这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。如果别人让你作为入门书,那你就被坑了,哈哈!

缺点:本书写作的逻辑感觉不是那么循环渐进,里边的内容涉及到算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,这些东西确实学起来很吃力的。


书籍九:《算法》

《算法》这本书就比《算法导论》友好多了,它的内容学起来不是那么吃力,面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格

缺点:

内容不够全面,尤其是对数据结构与算法中的动态规划问题,这么重要的知识点都没有讲到,而且书籍主要注重讲算法。但是对于初学者是非常友好的。


五、地狱类

之所以我把这一类书籍称作为地狱类,它们的数据结构和算法都是分卷的,我们此时可以想到《西游记》最后取经完成获得的经卷,无论是在深度、广度、系统性、全面,都可以称上边那些书籍的“祖宗”级别的,也许这些书籍名字,在其他算法书中提到过。


书籍十:《计算机程序设计艺术》

这一本 No.1,我说它是数据结构与算法最牛批的书,没人敢反驳吧?要想完全战胜这本书,要求你的数据功底、算法功底、计算机基础功底要特别扎实,这本书是最有挑战难度的,如果你不服,可以看看第一卷,看完再来反驳,哈哈哈!


六、课外读物类

最后,小鹿再推荐基本适合课外阅读的算法书籍,如果你写代码写累了,可以泡杯咖啡,躺在阳台的躺椅上,晒着太阳,面对阳光,打开这一本书籍,不急不躁的享受着,多好,生活嘛,就是这样的。

《算法帝国》《数学之美》《算法之美》这三本书之所以作为课余阅读是因为书中的大量的举例,通俗易懂,不像是上边几本书籍一样深入思考。非计算机专业的人群都可以看懂,所以称为课余读物。


书籍十一:《算法帝国》

本书是《纽约时报》畅销书作者的又一力作,通过一个又一个引人入胜的故事,向读者介绍了算法掌控世界的真实情况,揭示了“机器人革命”是如何悄悄地在我们身边发生的。本书适合任何对科技史、信息革命、算法原理、数据分析感兴趣的读者。


书籍十二:《数学之美》

作者吴军博士几乎把所有文章都重写了一遍,为的是把高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。读者通过具体的例子学到的是思考问题的方式 —— 如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新。


书籍十三:《算法之美》

这本书告诉我们如何更有效地利用直觉、什么时候应该把选择权交给命运、无所适从的时候应该如何做出选择,以及如何有效地与他人保持联系。从找配偶到找停车位,从组织管理个人邮箱的收件箱到理解人类记忆的作用原理,这本书把计算机科学的智慧转化为人类生活的策略,引导我们做出明智的选择。


小结

数据结构和算法书籍我个人接触过的只有那么多了,这些书籍足以满足百分之 90 % 以上的人群啦。每个人的基础、学习能力都不一样,看了这些书籍掌握程度取决于你的努力程度,有些数据我来回看好几遍,每一遍都会给我新的收获,这就是阅读、学习的力量。


❤️ 不要忘记三连哦!点赞、收藏、评论。

重点来了,这些书,我都给你们准备好电子版的了,一本一本搜集过来的。获取的方式也非常简单。由于创建的链接有时候非常容易失效,我也不好及时编辑文章来更新,所以你可以关注我的微信公众号『小鹿动画学编程』,回复"电子书"即可获取。

作者Info:

【作者】:小鹿

【原创公众号】:小鹿动画学编程。

【简介】:和小鹿同学一起用动画的方式从零基础学编程,将 Web前端领域、数据结构与算法、网络原理等通俗易懂的呈献给小伙伴。先定个小目标,原创 1000 篇的动画技术文章,和各位小伙伴共同努力一起学习!

【转载说明】:转载请说明出处,谢谢合作!~

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!