今天是4月23日了,是联合国教科文组织规定的“世界读书日”。大淘宝技术的工程师们精心挑选出7本技术类书籍, 有机器学习方面的、推荐系统方面的,分布式领域的,等等。每一位工程师都根据自己真实的阅读心得写了推荐语,希望能帮大家更快挑选到对自己有用的书籍。
《Pattern Recognition and Machine Learning》 [英] Christopher Bishop
工程师阅读心得
这本书是机器学习经典书籍之一, 同时也是共认的十分难啃的大部头书籍之一。机器学习经过近些年的快速发展和演进,各种新的理论、各种花式的模型结构层出不穷。作为这一领域的从业者或者爱好者,除了追赶技术热潮和工程技巧,可能也需要回归基础和机器学习的底层原理,思考各种方法的本质原理。推荐本书是希望能和大家一起,重视对算法理论的学习。
我一直坚持一个观点: 模型的设计不是天马行空或用已有的结构搭积木,任何现实可行的技术方案,基本都是详实的数据发现和理论实践逐步演化出来的。恰好,这本书是一本十分重视理论的书籍,对机器学习的基础理论进行了较为系统介绍和推理,同时尝试从概率和数学性质等的角度串联起机器学习的基础知识体系,为我们学习和掌握机器学习的理论支持提供了一个不一样的视角。比如在介绍神经网络章节,本书对神经网络前向网络、反向传播、梯度更新等各个环节进行了拆分讲解和函数性质说明,让我们在实际使用的时候,可以知其然知其所以然。
建议将本书作为一个工具类的书籍,不必强求通篇学习,而是在学习其他材料或者实践的过程中穿插学习,了解对应的细节,慢慢建立起通过概率等数学基础理解和设计模型的方法思路。
《深度学习推荐系统》 [中] 王喆
工程师阅读心得
这是一本比较适合工业界推荐系统入门的书籍。本书作者在工业界推荐系统领域经验丰富,因此书中介绍的深度学习方法、冷启动等场景问题、推荐系统架构等知识,都和实际的工业推荐系统比较贴切。通过本书的学习,可以对实际的推荐系统常用方法、需要关注的核心问题等建立一个初步的认识和知识体系。因此,本书更加侧重于实践层面。工业界推荐系统的设计更强调可行和实用,因此对和实际业务贴近的问题,比如冷启动问题、推荐多样性问题等。本书在介绍算法模型的同时,也重点介绍了一些切实有效的机制策略方法,而不是盲目推崇一切问题"模型至上",这也是我想推荐这本书的重要原因。此外,本书还列举了部分优秀公司的实际工程实践方案,让我们能够结合具体的问题来了解一个技术方案的设计动机和落地方式。当然, 工业界推荐系统方法也在不断迭代,书中提到的模型方法有的也慢慢淡出舞台,阅读本书重在对推荐系统建立一个全局的概念,然后在此基础上通过技术论文等更前沿方法以及具体的实践,来逐步提升我们优化推荐系统具体问题的能力。
《深入理解Java虚拟机》 [中] 周志明
工程师阅读心得
作为一名Java开发工程师,JVM是工作中“朝夕相处”的伙伴。为了给大家带来极致顺滑的购物体验,我们需要深入了解JVM中的各种底层原理并基于此进行性能的优化,每到这种时刻,我总会先翻一翻老朋友《深入理解Java虚拟机》,巩固下相关的知识再下手。
整书从Java技术体系、自动内存管理、高效并发、程序编译与代码优化和虚拟机执行子系统5个维度全面分析JVM。
自动内存管理部分详细介绍了Java的内存分区和G1等常见垃圾收集器的原理,熟悉这一块知识点对大家日常工作中 OOM、FullGC等问题分析排查和GC性能调优都有着极大的帮助。
高效并发部分先从内存模型和线程原理出发介绍了JVM如何实现多线程,多线程之间由于共享和竞争数据而导致的一些列问题,并由此引出相关的解决方案,帮助大家在并发场景下编写出高性能高可靠的代码。
程序编译和虚拟机执行子系统部分则带着大家更上一层楼,完整的解释了普通Java代码经过编译器编译生成字节码后被类加载器加载的过程。让大家理解Java程序的执行过程。
同时,本书每一块知识点背后都带了实战环节帮助大家更快理解和掌握,属实是一本用心的高质量好书。相信大家啃完这本书后对JVM的理解会更上一层楼,后续在工作上应对各种疑难杂症也会更得心应手。十分推荐!
《凤凰架构》 [中] 周志明
工程师阅读心得
读完《凤凰架构》,有种啃完了一部分布式领域百科全书的感觉。全书先详细介绍了应用架构是如何从单体一步步向微服务、serverless的方向演进。然后逐渐由浅入深,讲解了共识算法、服务发现、流量治理、可靠通信、链路追踪与观测等分布式理论的基石和虚拟化、容器、服务网格、资源调度与编排等云原生基础设施。
对技术人来说,足够了解相关的知识体系,才能在工作中快速选择正确的技术去解决问题。而这本书一定能帮助你拓宽技术视野,让自己更上一层楼。
在阅读过程中,很多分布式相关的知识都让我感同身受。比如为了优化用户的访问体验,我们会引入内容分发网络(CDN)和预渲染等技术去加速请求。再比如我们在设计面向双十一大促的系统时,请求的分级分流、服务的熔断降级、异常的容灾兜底都是需要仔细考虑的问题。
此外,这本书除了全面的知识体系,更让我钦佩的是作者背后深刻的思考与对软件架构的理解。
技术世界中没有银弹,有的只有权衡与选择。本书的字里行间,一直牢牢把握着这个原则。对于任何技术,都辅以详细的优缺点分析,对于火热的新兴技术不过分鼓吹,对于过去相对落后的技术也不贬低,而是能看到他们之后的设计思想和适用场景。这种有思考、认真务实的精神也值得我们学习,能帮助我们更准确的做技术选型和判断。
《深入浅出React和Redux》 [中] 程墨
工程师阅读心得
虽然这本书已经出版六年,但它仍然非常适合作为初学者的第一本 React 书籍。本书由浅入深地介绍了 React 的心智模型、状态管理与性能优化等概念。作为有着十余年经验的开发工程师,作者程墨非常擅长将 React 生态中繁杂的概念抽丝剥茧,包括 React 的生命周期、性能优化、单元测试、服务端渲染等等。你不仅能够掌握这些技术,更能够理解这些技术的诞生原因与适用场景,真正做到知其然知其所以然。
由于出版时间的问题,这本书并不包括我们今天司空见惯的 React Hooks 相关概念,这也是为什么我说它适合作为初学者的第一本 React 书籍。作为初学者,直接学习 JSX、Hooks、状态管理是相当痛苦的,而相比于其它书籍,这本书从为什么我们需要 React 开始,循序渐进地提出问题,再依次引入新的概念。结合实际的应用场景进行解析、对比、编码、优化,让学习曲线尽可能平滑。同时,理解了这些“过时”的概念,反而能够帮助你在学习 React 今天这些纷繁的概念时事半功倍。
《React 设计原理》 [中] 卡颂
工程师阅读心得
在我们熟练使用一项技术栈后,很自然就会开始探究它的实现方式以及工作原理。对于 React 来说,探究它的架构设计以及各种 API 的实现细节,对我们的日常开发也能有一定的帮助,比如如何操作 DOM 才是最合适的?批量更新会在哪些情况下发生?如何使用 Suspense 和 useTransition 进一步优化代码中的异步场景?
这本书主要分为三个部分,理念篇、架构篇、实现篇。作者卡颂从前端框架这个庞大的命题开始,介绍了 React 之于其他前端框架的特点与定位,然后分析 React 的实现架构,包括 render、commit、schedule 阶段。最后在实现篇中,作者从零实现了 React 中的大部分能力,包括事件系统、更新与 Hooks 等。
《React 设计原理》一书,旨在帮助你深入探索 React 背后的架构设计与工作原理,感同身受地体会 React 团队的设计思考。
《淘宝交付之道》 [中] 大淘宝技术
工程师阅读心得
大淘宝业务的不断发展,在规模、体验、迭代速度等方面给技术带来了很大挑战。在本书中,大淘宝技术团队带来了从实际问题解决中沉淀的高效交付方法、机制和产品,展望了云等新趋势带来的挑战和机遇。实践出真知,这些从实战炮火中总结出来的经验不仅有很大的参考价值,也体现了技术人面对挑战求真务实、极致创新的精神。