针对入门的趣味书

入门的同学,我建议你不要过度追求上去就看经典书。像《算法导论》《算法》这些书,虽然比较经典、比较权威,但是非常厚。初学就去啃这些书肯定会很费劲。而一旦啃不下来,挫败感就会很强。所以,入门的同学,我建议你找一些比较容易看的书来看,比如《大话数据结构》和《算法图解》。不要太在意书写得深浅,重要的是能不能坚持看完。

《大话数据结构》 这本书最大的特点是,它把理论讲得很有趣,不枯燥。而且每个数据结构和算法,作者都结合生活中的例子进行了讲解, 能让你有非常直观的感受。虽然这本书有 400 多页,但是花两天时间读完,应该是没问题的。如果你之前完全不懂数据结构和算法,可以先从这本书看起。

《算法图解》 跟《大话数据结构》走的是同样的路线,就像这本书副标题写的那样,“像小说一样有趣的算法入门书”,主打“图解”,通俗易懂。它只有不到 200 页,所以内容比较少。作为入门,看看这本书,能让你对数据结构和算法有个大概的认识。

这些入门书共同的问题是,缺少细节,不够系统,也不够严谨。所以,如果你想要系统地学数据结构和算法,看这两本书肯定是不够的。

针对特定编程语言的教科书

讲数据结构和算法,肯定会跟代码实现挂钩。所以,很多人就很关心,某某书籍是用什么语言实现的,是不是自己熟悉的语言。市面大部分数据结构和算法书籍都是用 C、C++、Java 语言实现的,还有些是用伪代码。而使用 Python、Go、PHP、JavaScript、Object-C 这些编程语言实现的就更少了。

我这里推荐《数据结构和算法分析》。国内外很多大学都拿这本书当作教材。这本书非常系统、全面、严谨,而且又不是特别难,适合对数据结构和算法有些了解,并且掌握了至少一门编程语言的同学。而且,这个作者也很用心。他用了三种语言,写了三个版本,分别是:《数据结构与算法分析 :C 语言描述》《数据结构与算法分析:C++ 描述》《数据结构与算法分析:Java 语言描述》。

如果你熟悉的是 Python 或者 JavaScript,可以参考《数据结构与算法 JavaScript 描述》《数据结构与算法:Python 语言描述》 。至于其他语言的算法书籍,确实比较少。如果你有推荐,可以在留言区补充一下。

面试必刷的宝典

算法对面试很重要,很多人也很关心。我这里推荐几本有益于面试的书籍,分别是:《剑指 offer》《编程珠玑》《编程之美》。

从《剑指 offer》这本书的名字就可以看出,作者的写作目的非常明确,就是为了面试。这本书几乎包含了所有常见的、经典的面试题。如果能搞懂这本书里的内容,应付一般公司的面试应该不成问题。

《编程珠玑》这本书的豆瓣评分非常高,有 9 分。这本书最大的特色就是讲了很多针对海量数据的处理技巧。这个可能是其他算法书籍很少涉及的。面试的时候,海量数据处理的问题也是经常会问的,特别是校招面试。不管是开拓眼界,还是应付面试,这本书都很值得一看。

《编程之美》这本书有多位作者,其中绝大部分是微软的工程师,所以书的质量很有保证。不过,这里面的算法题目稍微有点难,也不是很系统,这也是我把它归到面试这一部分的原因。如果你有一定基础,也喜欢钻研些算法问题,或者要面试 Google、Facebook 这样的公司,可以拿这本书里的题,先来自测一下。

经典大部头

很多人一提到算法书就会搬出《算法导论》和《算法》。这两本确实非常经典,但是都太厚了,看起来比较费劲,我估计很少有人能坚持全部看下来。如果你想更加深入地学一学数据结构和算法,我还是强烈建议你看看。

我个人觉得,《算法导论》这本书的章节安排不是循序渐进的,里面充斥着各种算法的正确性、复杂度的证明、推导,数学公式比较多,一般人看起来会比较吃力。所以,作为入门书籍,并不
是很推荐。

《算法》这本书也是一本经典大部头,不过它比起《算法导论》来要友好很多,更容易看懂,更适合初学者入门。但是这本书的缺点也很明显,就是内容不够全面,比如动态规划这么重要的知识点,这本书就没有讲。对于数据结构的东西,它讲的也不多,基本就是偏重讲算法。

#殿堂级经典
说到殿堂级经典书,如果《计算机程序设计艺术》称第二,我想没人敢称第一。这本书包括很多卷。说实话,我也只看过比较简单的几卷,比如《基本算法》《排序和查找》。

这套书的深度、广度、系统性、全面性是其他所有数据结构和算法书籍都无法相比的。但是,如果你对算法和数据结构不是特别感兴趣,没有很好的数学、算法、计算机基础,想要把这套书读完、读懂是比较难的。你可以把它当作你算法学习的终极挑战。

闲暇阅读

算法无处不在。我这里再推荐几本适合闲暇时间阅读的书:《算法帝国》《数学之美》《算法之美》。

这些书共同的特点是,都列举了大量的例子,非常通俗易懂。夸张点说,像《算法帝国》,文科生都能读懂。当你看这些书的时候,你常常会深深感受到算法的力量,被算法的优美之处折服。即便不是从事 IT 工作的,看完这几本书也可以开拓眼界。

每节课中有需要代码实现的数据结构和算法,我都另外用 Java 语言实现一遍,然后放到 Github 上,供你参考。Github 的地址我放在这里,你可以收藏一下:代码实现。

至于其他语言的同学,比如 C、C++、Python、Go、PHP、JavaScript、Object-C 等,我想了一个 crowd sourcing 的方法。

我希望基础较好的同学,参照我的 Java 实现,用你熟悉的编程语言再实现一遍,并且将代码留言给我。如果你写得正确,我会将你的代码上传到 Github 上,分享给更多人。

留言区经典评论

  1. 老师推荐的书80以上都看过,总结一下:
    1:《算法第四版》Java语言写的,不过动态规划(没记错的话)没有涉及、很厚!这本书挺推荐的、特别是javaer!
    2:《剑指offer》个人觉得题目经典都是老题!但是难度好像很一般啊(还是学生 不太清楚面试内容)、然后里面确实讲了一些很细的东西值得学习!还有本书所有题目作者都提供了C代码和大量的测试案例!nice;
    3:编程珠玑:国外作者,这本书我看了不多 但是初步觉得好像是对超大量数据处理的算法!
    4:编程之美:微软的书、难度较高、题目很深!这本书里面的题 代码不超过2页的估计作者都不会选上!!!!书不厚 、一般般
    5:数据结构和算法分析:我们大学教材!我们老师教的书里都有、代码是伪代码!
    6:算法导论:这本书我用来垫电脑!很厚 很无聊0.0!!!

  2. 老师推荐的书大部分我都了解过,写一写我个人的感受吧。
    如果是Java程序员的话,强烈推荐《算法》,书中的代码特别的简洁,水准特别高。书的配套资源也相当不错,B站有教学视频、Github有官方代码、还有专门的测试数据。
    至于轻松一些的《大话数据结构》,代码和书的基本源于严蔚敏老师的《数据结构》。代码是C语言,但因为作者没有考虑工程上的抽象,代码的水准并不是特别高,至少,我个人是不太喜欢那种编码方式。
    《算法图解》很薄,图的风格我也很喜欢,非常基础,小白入门首选。代码实现是基于Python。
    《算法导论》能啃下来,就够了。但是全书伪代码,如果能把公式搞懂、代码自己实现一次,基本上足以秒杀绝大多人了。如果想读懂这本书,必要的级数、概率还是要学一下的。
    接下来,垫笔记本电脑的《计算机程序设计艺术》。这套书非常伟大,据说高德纳老爷子刚写了两卷就拿到了图灵奖。时间复杂度理论分析算法也是高德纳老爷子奠定的,大半个算法领域的结论几乎都是高德纳老爷子证明的。如果你真想读这本书,首先我要告诉你,书中代码是古老的MIX汇编,其次,你可能需要更多的数学基础。就如同书中所说,必要的复变函数的基础是必要的。
    如果你想提高一下个人的计算机数学功底,为了算法的话,可以读《离散数学及其应用》。当然,如果你想要啃《算法导论》或者近距离膜拜《计算机程序设计艺术》,推荐高德纳老爷子参与编著的《具体数学》。
    我自己觉得,掌握《算法导论》一书的90%,就已经是非常、非常优秀的程序员了。殿堂级的书买回来收藏、垫笔记本电脑或者显示屏,实在不行,镇宅辟邪也是极好的,就没必要费力地读了。?

插入篇 |程序员进阶之推荐书目相关推荐

  1. java中怎样导入图片6_java程序员进阶篇之必须掌握的6张思维导图!

    原标题:java程序员进阶篇之必须掌握的6张思维导图! <java程序员的自我修养>的作者是MindMaster思维导图社区用户芒果,作者整理了一系列学习java程序的笔记,方便java程 ...

  2. 从Java程序员进阶架构师,必看的书单推荐!

    算法与数据结构: 数据结构(严蔚敏) java数据结构和算法(美:拉佛) 算法导论 大话数据结构 剑指Offer 程序员面试金典 编程珠玑 编程之美 程序员笔试面试最优解 数据结构与算法经典问题解析( ...

  3. 从Java程序员进阶到架构师,6大核心技能要领详解

    " java架构师技能将分为如下6大环节:数据结构和算法,Java高级特性,Java web核心,数据库,Java框架与必备工具,系统架构设计. 希望能真正帮助到从程序员进阶到架构师之路的朋 ...

  4. java程序员进阶必读书单

    以下是我推荐给Java开发者们的一些值得一看的好书,从java基础开始到高级,以及从高级进阶到架构等的书单. 基本都是经典之作,可以利用工作闲暇的时间,系统阅读. [外链图片转存失败,源站可能有防盗链 ...

  5. 阿里年薪70w+级程序员,强烈推荐阅读

    阿里年薪70w+级程序员,强烈推荐阅读 之前在钉钉"Spring Cloud Alibaba 开源讨论群"官方群里认识了一位大佬,群里讨论的时候发现这位大佬和我住在一个地方的不同小 ...

  6. 程序员进阶之路 --- 如何超过大多数人?

    点击上方 "程序猿杂货铺" ,选择"置顶公众号" 每天 0 点准时推文,我们不见不散! 本文来源 | coolshell.cn 当你看到这篇文章的标题,你一定对 ...

  7. 程序员进阶架构师路线

    作者简介:曾任职于阿里巴巴,每日优鲜等互联网公司,任技术总监,15年电商互联网经历. 下面是作者根据自己15年的互联网电商经验总结的,Java程序员进阶架构师的路线图,希望对初入职场的同学和对自己技术 ...

  8. 从Java程序员进阶为架构师,全套16张图概括最全技能!建议收藏!

    如何从程序员进阶到架构师?今天完整的把我积累的经验和技能分享给大家! 作者:陈睿|优知学院创始人 数据结构+算法=程序 数据是一切能输入到计算机的信息总和,结构是指数据之间的关系,数据结构就是将数据及 ...

  9. Windows程序员进阶应该看的那些书

    Windows程序员进阶应该看的那些书 业内有一个普遍的现象,一般Windows程序员在写了3-5年的代码的时候会有一段迷茫期,因为这个时期的程序员已经掌握了常用的一些编程技巧,对某种编程语言已经比较 ...

最新文章

  1. Spring事务管理的底层逻辑—源码解析
  2. oracle 优化器 失效,oracle 优化器 不走索引原因
  3. error: jump to label ‘XXXX’ [-fpermissive]
  4. 轮询没有收到的可能性_轮询(Polling)是什么?
  5. SAP系统和微信集成的系列教程之八:100行代码在微信公众号里集成地图搜索功能
  6. Antd Table树形展示,分页后有时候数据渲染不出的问题
  7. 简单的Postman,硬是玩出花!我能咋办
  8. for循环之性能优化
  9. 关于websocket兼容IE版本
  10. SVN图标丢失解决方法
  11. 梦幻西游html源码,index.html
  12. MPLS之LDP的工作原理和配置
  13. 【Proteus仿真】【51单片机】音乐盒电子琴设计
  14. pg高可用之repmgr(一)
  15. 基础算法一一股神问题
  16. Nginx反向代理http和https
  17. c++第二次作业-定期存款利息计算器
  18. 恶意代码分析实战Lab3-2
  19. 伪时序分析文献阅读——PAGA
  20. linux系统桌面权限怎么恢复,教你恢复冻结的XFCE4 Linux桌面方式

热门文章

  1. 《一问一世界》 杨澜
  2. oracle网络认证,Oracle网络应用开发人员认证简介
  3. Linux v4l2框架分析
  4. 史上最全虚拟现实VR(视景仿真/系统仿真/可视化)工作站硬件配置方案
  5. 每周3课:电机、舵机、LM35温度传感器的使用方法 | Mixly纯干货课程
  6. 非常非常好用的在线翻译网站
  7. 莫生气---经典打油诗
  8. Java蓝桥杯 小b的宿舍
  9. 前端:实现各样的验证码
  10. 事业单位固定资产管理系统软件解决方案