当工作、生活的节奏越来越快,阅读充电似乎也成为了一件奢侈的事。为此,我们特地找来多位技术大牛为你精挑细选荐好书,相信有助你面试成功,获得心仪岗位。
面试攻略:掌握软件开发的“道”,让你在面试的时候,能够回答:“方案为什么要这么做?”
UNIX编程艺术
推荐人:李运华(阿里巴巴资深无线开发专家)
推荐理由:本书书名虽然指明是"UNIX"编程艺术,但事实上这不是说在UNIX平台上编程才需要理解的艺术,而是根据UNIX发展历程中的经验教训总结出来的"编程艺术",不管是服务器开发、客户端开发、前端开发、软件架构师、测试架构师、运维架构师……都可以从这本书获益良多!
本书是一本没有代码的编程书,作者从UNIX的发展历程中提炼出了17个设计原则,每个都是真知灼见且非常具有指导意义,遵守并实践这些原则能够让你事半功倍。例如简洁原则可以让你避免炫技式的设计和编码,优化原则可以让你避免落入过早优化的陷阱。而集大成的"KISS原则",不但成为了UNIX的编程哲学,也成为了乔布斯的产品设计哲学。
面试攻略:熟悉面试常用的算法,包括原理、应用场景、优缺点等,一书在手,算法无忧。
算法设计与应用
推荐人:李运华(阿里巴巴资深无线开发专家)
推荐理由:大部分的算法书,过于强调数学证明和代码实现,但对于具体实践应用中如何应用这些算法讲解不多,本书将算法与实际应用结合起来,从应用引出算法然后进行算法推理,对于算法的重点和优缺点都有详尽的讲述,如果你数学很牛,可以挑战一下这本书;如果你数学很菜,那我更加推荐这本书,因为其中的算法原理和应用场景分析得清晰易懂。
面试攻略:JVM原理是核心技术部门90%会深入问到的问题,是获得好 offer的必备条件之一。
深入理解Java虚拟机
推荐人:唐韧(阿里巴巴资深技术专家)
推荐理由:作者围绕内存管理、执行子系统、编译与优化、高效并发等内容,对JVM进行全面而深入的分析,揭示JVM的工作原理。同时,作者结合实践中的疑难问题,呈现了大量经典案例和最佳实践。在阅读这本书的过程中,不仅可以深刻理解JVM的工作原理,还可以领悟灵活运用各种基本原理的艺术,妙哉!
面试攻略:书中借助问题引出了许多经典的算法与解法,更重要的是过程中的分析方法与思考方式,掌握这些方法会让大家在面试中面对编程问题时更加游刃有余。
编程珠玑
推荐人:南笑(阿里巴巴资深技术专家)
推荐理由:这是读书时期对我影响较大的书籍之一,在书中接触到的很多观点和思考方式都让我长期受益;在书中,计算机科学大师Jon Bentley选取了许多具有典型意义的复杂编程和算法问题,生动描绘了大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。
这本书的一个优点是薄,页数不多也没有冗余的内容。所以读的时候建议同学们可以放慢节奏,多花时间去思考其中的问题,也能在更大程度上体会到读此书的乐趣。
面试攻略:熟悉分布式存储基本算法、原理和架构,在面试分布式存储技术岗位中做到心中有谱。
大规模分布式存储系统
推荐人:储道(阿里巴巴资深技术专家)
推荐理由:这本书系统地讲解了大规模分布式存储系统的核心技术和原理,对Google、Amazon、Microsoft和阿里巴巴的几个重要的分布式存储系统进行了分析和原理讲述。
通过本书的学习,可以了解到分布式存储中的分布式协议、数据一致性保证、单机存储引擎、容错机制等存储基础知识,并且可以对分布式文件系统、KV缓存、表格存储、分布式数据库等云计算数据存储核心组件有一个整体的了解和层次化的架构理解。通过本书的学习可以对云计算平台存储系统有一个很好的把握,并且可以将课本中学到的理论知识映射到实际的系统中去,是一本很好的分布式存储实战入门、实践指导书。
**
面试攻略**:今天的软件系统正在变得越发复杂,为此我们需要运用最好的工程实践来正确地指导我们架构软件,并提高它们的可靠性。本书无疑就是这样的最佳实践之一,对那些励志打造世界级基础软件,即将走向工业实践一线的同学是一份福音。
软件框架设计的艺术
推荐人:冯嘉(阿里巴巴高级技术专家)
推荐理由:在软件设计与开发领域,讲述软件设计的经典技术书籍不少,很多书籍已经成为程序员案头的必备之书,像GoF执笔的《设计模式》,Java 并发专家Joshua Bloch已经三版的《Effective Java》等。
但软件框架设计的艺术这本对于像我这样的框架设计,分布式系统设计者来说显得特别重要,本书的作者是NetBeans(Oracle已经捐赠给Apache,目前是Apache的一个孵化项目)的创始人Jaroslav Tulach十多年来开发NetBeans的实践总结。
不可否认,本书不是写给初学者的,即便是有经验的开发人员深读此书也并非易事,但我非常鼓励那些希望能在框架设计上面精进的同学细心研读。通过阅读此书,你将学会科学地设计API,对现实世界的各类经典开源框架设计有更为深刻地认识。
面试攻略:性能调优这个事情,是一个很“伽利略”的事情,技术专家们往往也都秘而不宣,甚至奉为是自己压箱看家本领。在大家看来,这种系统优化的全局观往往需要大量练习与实践探索与总结,需要对多门计算机科学理论的综合运用。如果能够通读几遍此书,并以此进行延展性思考与实验,相信对于那些希望从事基础软件研发,系统性能优化的同学有巨大启发,让自己所负责的系统达到性能之巅。
性能之巅
推荐人:冯嘉(阿里巴巴高级技术专家)
推荐理由:性能调优,往往被认为是系统化深刻理解软件背后原理的有效手段。在这里,你会有机会深刻理解操作系统,算法与数据结构,计算机网络等计算机基础知识背后的原理。
本书的作者Brendan Gregg是著名的操作系统性能profiling工具Dtrace的作者之一,它将业界普适的性能方法、工具和指标收集于本书之中。阅读本书,你能洞悉系统运作的方式,学习到分析和提高系统与应用程序性能的方法。这本著作的英文版,我早先读过不下2遍,每一遍都有不同的体会,时至今日也是我常备案头的重要参考。
第八本技术好书,来自《阿里巴巴Java开发手册》主要作者孤尽。他推荐的这本书“重塑了自己的技术灵魂”。究竟会是什么书?