今天的主角是以下三本书中的第一本和第三本:

第一本是《程序员面试金典》,第二本是《算法导论》,第三本是《Python数据结构与算法分析》,中文版都已经由国内出版社引进出版。其中这第一本和第三本你肯定有些意外吧?

今天我们就来跟大家简单分享下第一本和第三本书,它们好在哪里,为什么如此受欢迎。

1. 程序员面试金典(第6版)

这本书凭什么常年霸榜各类图书第一名?

你看啊,其实不止是我们在文章标题里提的「数据结构与算法」第一书,还是「求职面试指南」第一书,还是「计算机编程语言」第一书。而且,人家第一的地位那是相当稳固,从前几个版本开始就一直如此。怎么说呢,大概这就是实力上的「异常优秀」了。

首先,这本书的作者 Gayle Laakmann McDowell 曾经担任多个互联网巨头公司的面试官,她目前在全球超级受欢迎,她的个人网站因为解答面试相关问题而备受关注 http://careercup.com/。

但是注意了,作者虽然是面试官,但是并不是 HR,而是软件工程师。正因如此,她深知要在面试现场迅速想出精妙算法并在白板上写下完美代码的感受。而这种感同身受,还源于她与无数优秀的工程师有过同样的经历:参加过谷歌、微软、苹果、亚马逊以及其他诸多公司的面试,而且强势拿到了  Offer。

作者在顶尖公司积累的第一手面试经验和随后在辅导求职者面试过程中提炼而成的精华成就了这本书,可以说,它是作者真刀真枪面试过几百位求职者之后的结晶。书中囊括了 189 道世界上最好的程序员面试题,它们都是从数以千计的好问题中挑选出来的,这些面试题本身就出自知名互联网公司。

哎,你可能有点奇怪,我们一直在强调「面试」啊.......是啊,接下来就来突出一下「算法」。这本书重点关注算法、编程和设计问题。为什么?尽管面试中也会有行为面试题,但是答案会随个人的经历而千变万化。同样,尽管许多公司也会考问细节(例如,“什么是虚函数”),但通过演练这些问题而取得的经验非常有限,更多的是涉及非常具体的知识点。本书虽然只会涉及其中一些问题,但会让大家真正了解它们及其变种“长”什么样。对于那些可以拓展技术技能的问题,作者还会给出更详细的解释。

你看啊,书中第 6 章、第 7 章、第 9 章、第 10 章和第 11 章的大部分内容均为数据结构与算法。另外在前面的软技能讲解中也多处强调算法与数据结构思维的重要性。我们来看一下第 9~ 11 章的目录,你立马就会明白这本书的设计了。

其实前面软技能的讲解也非常惊艳,是一本拿到手里一看目录就爱不释手的好书。当然,最关键的是,它既是面试宝典,也是巩固算法和数据结构的基础知识宝典。

需要的朋友们,扫码购买读起来

2. Python数据结构与算法分析(第2版)

算法是程序员的基础必修课,此处自然不必多语为何学习算法了。我们先来简单看下为何使用 Python 学习算法

Python 是一门非常适合于讲解算法的语言,语法干净简洁,用户环境直观,基本的数据类型十分强大和易用。其交互性在不需要额外编写驱动函数的情况下为测试数据结构单元提供了直观环境。而且,Python 为算法提供了教科书式的表示法,基本上不需要再用伪代码。这一特性有助于通过数据结构与算法来描述众多与之有关、相当有趣的现代问题。

那么,我们为何要用这本书来学习算法呢?

这本书既会介绍抽象数据类型及数据结构,也会介绍如何编写算法和解决问题。大家会学习一系列的数据结构,并且解决各种经典问题。随着学习的深入,会反复应用在各章中掌握的工具与技术。

具体而言,这本书有以下特色:

  • 通过简单易读的文字而不引入太多编程语法,重点关注如何解决问题,从而向大家介绍基本的数据结构与算法;

  • 较早介绍基于大 O 记法的算法分析,并且通篇运用;

  • 使用 Python 讲解,让初学者更方便使用和掌握数据结构与算法。

大家将首先学习线性数据结构,包括栈、队列、双端队列以及列表,然后用Python 列表以及链表实现这些数据结构。接下来大家会学习与树有关的非线性数据结构,了解连接节点和引用结构(链表)等一系列技术。最后通过运用链式结构、链表以及 Python 字典的实现,学习图的相关知识。对于每一种结构,本书都尽力在使用 Python 提供的內建数据类型的同时展现众多的实现技巧。这种讲法在向各位揭示各种主要实现方法的同时,也强调 Python 的易用性。

这本书的学习路线图如何?

第 1 章做一些背景知识的准备,回顾计算机科学、问题解决、面向对象编程以及 Python。基础扎实的可以跳过第 1 章,直接学习第 2 章。

第 2 章介绍算法分析的内在思想,重点讲解大 O 记法,还将分析本书一直使用的重要 Python 数据结构。这可以帮助大家理解如何权衡各种抽象数据类型的不同实现。第 2 章也包含了在运行时使用的 Python 原生类型的实验测量例子。

第 3~7 章全面介绍在经典计算机科学问题中出现的数据结构与算法。尽管在阅读顺序上并无严格要求,但是许多话题之间都存在一定的依赖关系,所以应该按照本书的顺序学习。比如,第 3 章介绍栈,第 4 章利用栈解释递归,第 5 章利用递归实现二分搜索。

第 8 章是选学内容,包含彼此独立的几节。每一节都与之前的某一章有关。正如前面的组织结构图所示,你既可以在学习完第 7 章以后再一起学习第 8 章中的各节内容,也可以把它们与对应的那一章放在一起学习。例如,希望更早介绍数组的教师,可以在讲完第 3 章以后直接跳到 8.2 节。

喜欢用 Python 入门数据结构与算法

推荐选择这本书

当然了,图灵的算法图书很多,如果你读完文章,依然觉得这两本书不对你的味儿,那么点击「阅读原文」,算法书单里有多种算法图书,供你精挑细选。

推 荐 阅 读

最好的算法书

终于找到了一篇文章!通俗地讲解面向对象的工作原理

豆瓣 9.3 分,日漫风格的机器学习数学书

图 灵 社 群

求「在看」

☟ 「阅读原文」图灵算法书单

常年霸榜 Amazon 数据结构与算法领域 TOP3相关推荐

  1. 五项挑战获四项第一,地平线霸榜Waymo自动驾驶算法挑战赛

    美国当地时间6月15日,Alphabet(Google母公司)旗下的自动驾驶公司Waymo在CVPR 2020自动驾驶Workshop上揭晓Waymo开放数据集挑战赛的结果,边缘AI芯片企业地平线斩获 ...

  2. 入选《数据结构与算法领域内容榜》第1名 ?

    虽然是暂时的,不过挺好 ~

  3. Panoptic SegFormer:全景分割第一名!南大港大英伟达提出新算法,霸榜全景分割...

    点击下方卡片,关注3D视觉工坊公众号 3D视觉干货第一时间送达 今日分享论文『Panoptic SegFormer』全景分割第一名!由南大&港大&NVIDIA 联合提出 Panopti ...

  4. 霸榜 GitHub:去你丫的算法!

    公众号关注 "视学算法" 设为 "星标",每天带你逛 GitHub! 本文首发自公众号:GitHubDaily 大家好,我是小 G. 今天跟大家分享下,前不久我 ...

  5. Panoptic SegFormer:全景分割第一名!南大港大英伟达提出新算法,霸榜全景分割

    今日分享论文『Panoptic SegFormer』全景分割第一名!由南大&港大&NVIDIA 联合提出 Panoptic SegFormer,霸榜全景分割. 话不多说,先放Leadb ...

  6. Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程

    Interview之AI:人工智能领域岗位求职面试-人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础.ML算法简介.DL算法简介)来理解技术交互流程 目录 一.A ...

  7. 邓勇 北大计算机,他是成电大四学霸,成绩专业霸榜第一,研究领域很霸气,保研北大...

    大学本科四年时间,对于那些随波逐流的友友,就是风花雪月.放飞自我的四年,沦为学渣:而对于那些志存高远.奋力进取的友友,就是厚积薄发.放飞梦想的四年,继续学霸之路.这里为大家分享的孙壬梁同学就是这样志存 ...

  8. 中国AI芯片公司霸榜谷歌Waymo自动驾驶算法挑战赛!五个赛道,四项冠军

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 当今之世,最新证明自动驾驶实力的方法是什么? Waymo开放数据集挑战赛上一较高下,肯定是最具说服力的一种. 这不,作为全球自动驾驶公司王者 ...

  9. ICML 2021论文接收大排行!谷歌霸榜,国内北大第一、清华第二,华人学者表现亮眼.........

    来源:AI科技评论本文约2000字,建议阅读5分钟本文介绍了ICML2021的论文接受情况. 在一个月之前,ICML 2021的论文接收结果已经公布,今年一共有5513篇有效投稿,其中1184篇论文被 ...

最新文章

  1. maven添加本地jar包依赖
  2. 电大计算机一级b考试试题,电大计算机考试本科试题
  3. OpenGL基础17:颜色
  4. Html5 学习系列(二)HTML5新增结构标签
  5. sqlalchemy入门记录
  6. python支持双向索引_python3 deque 双向队列创建与使用方法分析
  7. 深度学习中的激活函数导引
  8. 跨境电子商务营销策略分析以速卖通为例
  9. 再谈微软复兴,纳德拉与库克、马斯克、皮查伊在管理上有什么不同
  10. 五大主流浏览器及四大内核1
  11. java实时获取android网速_Android实现网速实时监测工具类
  12. 虚拟机中的计算机名称,如何获取VMware虚拟机主机的名称和IP?
  13. EMUI/MIUI卸载系统预装软件,开启上帝模式无需ROOT权限
  14. 中山大学软件工程c语言,2017年中山大学085212软件工程考研参考书目推荐
  15. jquery遍历得到的 Map 数据,
  16. 携程编程大赛预赛第二场
  17. EasyDSS视频直播点播平台无法播放4K视频的原因排查与解决
  18. 巨头押注医疗 | 论XR与医疗的不解之缘
  19. 以太网远程MQTT IO模块在IIOT工业物联网项目中的应用
  20. CSS-transform 平面/空间(移动、旋转、缩放、过渡)略解以及示例

热门文章

  1. mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园
  2. java automapper 使用_19.AutoMapper 之开放式泛型(Open Generics)
  3. python把文字矢量化_这个python函数可以被矢量化吗?
  4. 循环输入正整数,求其平均值
  5. node上传资源到又拍云
  6. SendEmail使用TLS发送邮件
  7. php创建多级目录完整封装类操作
  8. 99%的项目经理都不了解项目群管理!
  9. master线程的主循环,后台循环,刷新循环,暂停循环
  10. Ext JS 6正式版的GPL版本下载地址