图源:Pexels
很多读者都怕读TAOCP,笑称买完只能用来垫显示器,或装饰门面。但其实,可能你选读这本书的真正动机是给Bill Gates 发邮件找工作。
著名编辑人艾德勒曾说过:“任何实用性的书都不能解决该书所关心的实际问题。”当你的实际问题是如何找一份微软的工作时,相信没有一本算法书能帮你解决工作问题,或许《程序员面试金典(第6版)》能给到你一些不错的建议。
你为什么“啃不动”你手中的技术书?很有可能你在“选书”这个环节出了岔子。在阅读完几十篇相关主题的文章,细读完《如何阅读一本书》后,关于“选书”我想和大家谈谈。
1.选书前,如何略读?
先看书名页,如果有序先看序。
快速地过一遍,主要是了解这本书的主题,以及作者的选题角度,判定图书的类型。比如,《第一行代码(第3版)》是Android初学者的入门必备书籍,主要使用Kotlin语言进行讲解,对于还在用Java的开发者算是一次不错的尝鲜。
这里引用查理•芒格一句话,“如果想要快速地了解一个学科的知识,并形成一种对应的思维方式,最行之有效的方法就是找来入门教材”。事实证明,郭老师的书做到了这一点。
研究目录页,对这本书的基本架构做概括性的理解。
这就好比你出发旅行前,要先看一下地图一样。比如,《流畅的Python》是在讲Python语言一些特性和设计原理,还是仅仅在讲一些高级的实践应用呢?事实上,Ramalho大叔在序言为每一篇都写了解释纲要。其实,像Ramalho一样,许多作者花了很多时间来创作目录页。
看图书卖点图。
大多时候,大家可能对广告文案的印象无非是些吹牛夸张的文字。但这往往失之偏颇,许多书的宣传文案都是作者在出版公司企宣部门的协助下亲自写就的,你甚至不用看序言,就能很快了解这本书的主题方向。当然,如果宣传文案什么重点也没写到,只是在瞎吹牛,你也可以很容易看穿。
挑几个与主题相关的篇章进行试读。如果这些篇章在开头或结尾有摘要说明(很多会有),就要仔细地阅读这些说明。
最后,随便联系翻几页——留意书中的基本脉络是否和目录想要表述的内容一致。
2.看推荐、评分(读者口碑)
找这个领域的专家、学者,或者优秀的人(上司、同事、朋友等),请他们推荐。同时,亚马逊、京东都会有相应类别书目的榜单、链接,还有推荐阅读,可作为参照。豆瓣读书上虽然有大量的水军,但其书目评分也可算作一个参考标准。
3.看作者
总有些人总是绕不过去,比如写《计算机程序设计的艺术》和《具体数学》的高德纳,写《重构》和《企业应用架构模式》的马丁·福勒,还有写《编码》和《Windows程序设计》的Charles Petzold……这些人是里程碑式的人物,这些人的著作可能晦涩难懂,但一定是值得阅读和学习的。
4.看奖项
各种奖项,本质上是对作品的认可,比方说《发布!设计与部署稳定的分布式系统(第2版)》获得了第18届Jolt生产效率奖,你知道这本书,这个奖项,但是你对迈克尔·尼加德并不是很熟悉。
关于Jolt大奖,这句推荐语对它行业地位的描述最为贴切:“一项技术产品只有在获得了Jolt奖之后才能真正成为行业的主流,一本技术书籍只有在获得了Jolt奖之后才能真正奠定经典的地位。”
5.看出版社
大出版社为了维护多年形成的口碑,在挑选作品时会相对慎重、仔细,好的作家也会优先将作品交给名气更大的出版社,国内的出版社自不必说了,这里主要说下国外出版商。
行业里,最为敏捷就数Manning,其知名的系列图书是 In Action,其次是 In Depth 和 In Practice。
O'Reilly出版书的速度比较慢,动物封面技术书是它家涵盖图书种类最多、最具代表性的一个系列。
培生,老牌出版商,全球领先的出版与教育企业。畅销超过 20 年的图书大都是它家的,比如《计算机程序设计的艺术》《UNIX环境高级编程》《设计模式:可复用面向对象软件的基础》《重构:改善既有代码的设计》等。
……
这里不过多赘述出版社内容,想要了解更多,推荐策划编辑英子写的《程序员最喜欢的技术书大都出自这 20 家出版社》。
下面的书单,我会按照出版社的不同依次选出图灵引进的一些经典畅销的图书。
(特别说明:文中只列举以上三家出版商的部分引进图书,当然我们还有很多经典的日系书、花书和其他出版商的书也值得阅读。)
■Manning
豆瓣评分9.5分
Keras之父、Google人工智能研究员François Chollet执笔,深度学习领域力作
《Python深度学习》
作者:弗朗索瓦•肖莱
译者:张亮
本书详尽展示了用Python、Keras、TensorFlow进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。在学习完本书后,读者将了解深度学习、机器学习和神经网络的关键概念,具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力,学会解决现实世界中的深度学习问题。除此之外,本书还深刻剖析了当前的“人工智能热”,从理性的视角展望了深度学习在未来的可能性。
面向日常任务的高效实战内容
介绍并实现机器学习的主流算法
《机器学习实战》
作者:Peter Harrington
译者:李锐 李鹏 曲亚东 王斌
全书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,读者可从中学会机器学习的核心算法,并能将其运用于一些策略性任务中,如分类、预测、推荐。另外,还可用它们来实现一些更高级的功能,如汇总和简化等。
豆瓣评分8.5
像小说一样有趣的算法入门书
《算法图解》
作者:Aditya Bhargava
译者:袁国忠
本书示例丰富,图文并茂,以简明易懂的方式阐释了算法,旨在帮助程序员在日常项目中更好地利用算法为软件开发助力。前三章介绍算法基础,包括二分查找、大O 表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如何时采用贪婪算法或动态规划;散列表的应用;图算法;K 最近邻算法。
R语言统计必备入门读物
《R语言实战(第2版)》
作者:Robert I. Kabacoff
译者:王小宁 刘撷芯 黄俊文
本书注重实用性,是一本全面而细致的R指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。新版做了大量更新和修正,新增了近200页内容,介绍数据挖掘、预测性分析和高级编程。
高分经典《Java 8实战》全新改版升级
通过示例全面讲解Java 8、9、10新特性
《Java实战(第2版)》
作者:Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft
译者:陆明刚 劳佳
本书全面介绍了Java 8、9、10版本的新特性,包括Lambda表达式、方法引用、流、默认方法、Optional、CompletableFuture以及新的日期和时间API,是程序员了解Java新特性的经典指南。全书共分六个部分:基础知识、使用流进行函数式数据处理、使用流和Lambda进行高效编程、无所不在的Java、提升Java的并发性、函数式编程以及Java未来的演进。
掌握高效Java开发利器,快速构建微服务
全面分析Spring Boot核心功能和特性
《Spring Boot实战》
作者:克雷格·沃斯
译者:丁雪丰
本书是Spring Boot的终极指南,以自动配置、起步依赖、命令行界面和Actuator这四个核心特性为基础,深入介绍Spring Boot的用法,让所有Java开发人员不费吹灰之力就构建出满足生产需求的服务,真正享受技术达人的乐趣!
Node.js核心框架贡献者力作
展示Node核心技巧
《Node.js实战(第2版)》
作者:亚历克斯•杨 等
译者:吴海星
本书是Node.js的实战教程,涵盖了为开发产品级Node应用程序所需要的一切特性、技巧以及相关理念。从搭建Node开发环境,到一些简单的演示程序,到开发复杂应用程序所必不可少的异步编程。第2版介绍了全栈开发者所需的全部技术,包括前端构建系统、选择Web框架、在Node中与数据库的交互、编写测试和部署Web程序,等等。
■PEARSON
计算机科学经典巨著
入选《美国科学家》20世纪最重要的12部学术专著
《计算机程序设计艺术》
作者:高德纳
译者:李伯民 贾洪峰 巫斌 范明 蒋爱军
《计算机程序设计艺术》系列是公认的计算机科学领域权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。
与高德纳TAOCP一脉相承
涵盖所有程序员必须掌握的50种算法
《算法(第4版)》
作者:Robert Sedgewick, Kevin Wayne
译者:谢路云
本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了书中内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。
豆瓣评分9.6分
顶级数学家和计算机科学家合著的经典著作
《具体数学》
作者:Ronald L.Graham,Donald E.Knuth等
译者:张明尧 张凡
本书是当代计算机科学方面的一部重要著作,TAOCP 的前奏曲。不仅讲述数学问题和技巧,更侧重教导解决问题的方法。讲解了许多计算机科学中用到的数学知识及技巧,教你如何把一个实际问题一步步演化为数学模型,然后通过计算机解决它,特别着墨于算法分析方面。其主要内容涉及和式、整值函数、数论、二项式系数、特殊的数、生成函数、离散概率、渐近式等,都是编程所必备的知识。
全球热销超过1 000 000册
有大师指导,人人都能成为设计师
《写给大家看的设计书(第4版)》
作者:Robin Williams
译者:苏金国 李盼
在这部畅销全球多年、影响了一代设计师的经典著作中,Robin Williams将优秀设计的秘诀归纳为对比、重复、对齐和亲密性四条基本原则,并用简洁通俗、幽默生动的文笔,同时配以大量经过修改进行前后对比的实例图解和设计练习(并提供解答),直观清晰地传授给读者。通过本书,普通读者很快就能够自信地设计出专业级别的作品,而专业设计师也将从中获得灵感和解决问题的途径。
■O'Reilly畅销动物书单
豆瓣评分:9.4
知名PyCon演讲者心血之作
《流畅的Python》
作者:Luciano Ramalh
译者:安道 吴珂
本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道Python风格的代码。本书尤其深入探讨了Python语言的高级用法,涵盖数据结构、Python风格的对象、并行与并发,以及元编程等不同的方面。
HTTP及其相关核心
Web技术方面的权威著作
《HTTP权威指南》
作者:David Gourley, Brian Totty,Marjorie Sayer, Sailu Reddy,Anshu Aggarwal
译者:安道 吴珂
本书主要介绍了Web应用程序是如何工作的,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户端和服务器等。本书适合所有想了解HTTP和Web底层结构的人阅读。
从设计到实现讲透彻
一本不错的微服务扫盲书籍
《微服务设计》
作者:Sam Newman
译者:崔力强 张骏
本书全面介绍了微服务的建模、集成、测试、部署和监控,通过一个虚构的公司讲解了如何建立微服务架构。主要内容包括认识微服务在保证系统设计与组织目标统一上的重要性,学会把服务集成到已有系统中,采用递增手段拆分单块大型应用,通过持续集成部署微服务,等等。
Web开发入门经典教材“狗书”
全面介绍Python微框架Flask
《Flask Web开发:基于Python的Web应用开发实战》
作者:米格尔•格林贝格
译者:安道
本书共分三部分,全面介绍如何基于Python微框架Flask进行Web开发。第一部分是Flask简介,介绍使用Flask框架及扩展开发Web程序的必备基础知识。第二部分则给出一个实例,真正带领大家一步步开发完整的博客和社交应用Flasky,从而将前述知识融会贯通,付诸实践。第三部分介绍了发布应用之前必须考虑的事项,如单元测试策略、性能分析技术、Flask程序的部署方式等。第2版针对Python 3.6全面修订。
-END-
图灵社区
读好书,让代码更高效!
技术|交流|图书|社群