happyxiaofan的程序员书单

时间:2020-12-10 16:13:52

转自

 

happyxiaofan

读书的看法

从15年7月至今,研究生期间读了不少书,读书让我学到了很多,也是提升技术能力的一个重要手段。可能很多人嫌读书太花时间,曾经的我一度也是这么认为的,觉得一个程序员不敲代码,捧着一本大块头(编程类书籍往往比较厚)的书实在太花时间了。研究生期间虽然关注了很多公众号,也保持每天都看技术博客的习惯,但是发现自己技术提高并没有实质性进步。我也发现了这个问题,发现虽然通过博客能够学习到技术,但是缺乏系统性的阐述,对于技术本质性的阐述仍然有限。

学习的最好途径仍然是看书

这是我现在对读书的看法。主要有以下几点好处:

  1. 书上的内容往往是经过多次推敲、思考以及总结的结果,质量有足够的保证
  2. 对技术的阐述足够详细,有系统性,对技术的全貌了解更清楚
  3. 如果书上有代码的话(绝大多数都有),敲代码比较方便

当然,难免遇到书中比较难理解的问题,这个时候我一般选择跳过去,当读完这部分的内容后再重新回过来理解,往往能够柳暗花明又一村。另外,在看完一本书的时候可以阅读一些优质的博客,因为有了一定的基础,阅读博客能够加深对内容的理解,对技术有更本质性的认识。

《深入理解Java虚拟机:JVM高级特性与最佳实践》

happyxiaofan的程序员书单

作者:周志明 
标签:JVM 
推荐指数:5星 
推荐理由:围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理

如果你想成为一个优秀的程序员,本书绝对是值得一看的。这本书的帮助主要有:

  1. 深入理解javac编译器的编程过程和原理,class文件的结构
  2. 了解各种OOM和SOF异常触发场景,学会定位基本的性能问题
  3. JVM的调优策略
  4. 深刻理解Java虚拟机的类加载机制,为什么使用SSH框架老出现OOM问题,以及爱如何解决
  5. 常用的JVM参数,基本的内存分配策略

反正,这本书来来回回读了很多遍,每次都有新的收获,不得不很佩服周志明,让以前对调优以及性能定位一无所知的我大概知道如何解决性能问题了。当然,这块的内容是需要大量的线上项目实践做支撑的,不过有了一定的理论基础,遇到这类问题也不会手足无措。

《深入分析Java Web技术内幕(修订版)》

happyxiaofan的程序员书单

作者:许令波 
标签:Java Web 
推荐指数:5星 
推荐理由:对Java Web开发涉及的到包括前端、Java技术以及服务器技术做了深刻的阐述,如果你想成为一个优秀的Web开发人员,这本书绝对少不了。

书中首先介绍前端知识,即在JavaWeb 开发中涉及的一些基本知识,包括Web 请求过程、HTTP、DNS 技术和CDN 技术。其次深入介绍了Java 技术,包括I/O 技术、中文编码问题、Javac 编译原理、class 文件结构解析、ClassLoader 工作机制及JVM 的内存管理等。最后介绍了Java 服务端技术,主要包括Servlet、Session 与Cookie、Tomcat 与Jetty服务器、Spring 容器、SpringMVC框架、iBatis 框架和Velocity 框架等原理介绍,并介绍了服务端的一些优化技术。

简单来说,就是书中的知识点大而全,对具体的技术虽然没有面面俱到,但是重点都讲到了,更像是一本Web开发技术的百科全书,这本书我看了两遍,对一些技术的理解也更加深刻了。

《大型网站技术架构 核心原理与案例分析》

happyxiaofan的程序员书单

作者:李智慧 
标签:大型网站架构 
推荐指数:5星 
推荐理由:围绕大型网站的高可用、高伸缩性、高性能、高可扩展性以及高安全性五个方面浅显易懂地阐述了大型网站的技术演变的历程以及架构体系。看这书就像看一本故事书,李智慧老师是原阿里巴巴的技术专家,真的很吊。

本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。

如果有志成为分布式系统方面的专家,这本书将是一本很好的入门书,除此之外,李智慧老师还介绍了一个架构师的养成之道,虽然不是专门讲布道。但是仍然有一定的借鉴意义。

《大型网站系统与Java中间件开发实践 》

happyxiaofan的程序员书单

作者:曾宪杰 
标签:大型网站、Java中间件 
推荐指数:5星 
推荐理由:作者现在是淘宝的技术总监,从事多年的Java中间件开发,具有丰富的实战经验和成果。这本书不仅对分布式系统以及Java中间件的理论知识做了详细的阐述,还包括了作者大量的实战经验。对于像深入了解大型网站架构设计与问题的解决思路,是不可错过的一本好书。

本书仍在阅读中,不发表过多的评价。

《大规模分布式系统架构与设计实战》

happyxiaofan的程序员书单

作者:彭渊 
标签:分布式、架构设计 
推荐指数:4星 
推荐理由:这不是一本讲怎么使用Hadoop的书,而是一本讲实现Hadoop功能的书,本书系统讲解构建大规模分布式系统的核心技术和实现方法,包含开源的代码,手把手教你掌握分布式技术。作者使用了大量的演示demo代码,对分布式系统具有更直观的认识。我想这一点就够了

阅读本书有如下帮助:

  1. 并行计算的基本原理解剖;
  2. 调的实现,包括如何实现公共配置管理,如何实现分布式锁,如何实现集群管理等;
  3. 缓存的实现,包括如何提供完整的分布式缓存来利用多机内存能力;
  4. 队列的实现,包括如何实现发送和接收模式;
  5. 文件系统的实现,包括如何像操作本地文件一样操作远程文件,并利用多机硬盘存储能力;
  6. 作业调度平台的实现,包括资源隔离、资源调度等。

《分布式Java应用 :基础实践》

happyxiaofan的程序员书单

作者:林昊 
标签:分布式 
推荐指数:5星 
推荐理由:这本书绝对是分布式系统开发的入门之作,作者是淘宝网架构师。书中对涉及到分布式开发的重要知识点做了深刻全面的讲解,而且还结合了作者实践中经验对常见的分布式系统开发遇到的问题做了总结,可以说理论联系实际,具有很好的参考价值。

《Spring技术内幕(第2版) 》

happyxiaofan的程序员书单

作者: 计文柯 
标签:Spring 
推荐指数:5星 
推荐理由:是国内唯一一本系统分析spring源代码的著作,也是spring领域的问鼎之作,由业界拥有10余年开发经验的资深java专家亲自执笔,java开发者社区和spring开发者社区联袂推荐。

确切说,这本书没有看完,只看了IOC容器和AOP那两块的内容,作者通过详细的代码跟踪,深入揭示了Spring容器的启动、执行过程以及实现原理。包括IOC容器的依赖注入是如何实现的,AOP面向切面编程思想在Spring是如何体现的,设计到的技术哪些等方面都做了很详细的阐述。无论菜鸟老鸟,阅读这本书都能从中受益。

《Effective java 中文版(第2版) 》

happyxiaofan的程序员书单

作者:Joshua Bloch 
标签:effective java 
推荐指数:5星 
推荐理由:连Java设计者高斯林都在看的书,另外,作者也是老牛逼的人了——Joshua Bloch是Google公司的首席Java架构师。是Jolt大奖的获得者。他曾是Sun公司的杰出工程师,和Transarc公司的高级系统设计师。Bloch曾带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。

这本书对java编程中需要注意的点做了很好的总结,如果不想因为自己被烂代码坑的话,这本书无疑是首选。另外,通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。

《Java并发编程的艺术 》

happyxiaofan的程序员书单

作者:方腾飞 / 魏鹏 / 程晓明 
标签:Java并发编程 
推荐指数:5星 
推荐理由:作者作为一号店和阿里巴资深技术专家,本书是他们一线经验总结后的力作(豆瓣评价此书为扛鼎之作,我觉得还算不上)。书中对Java并发编程中设计到的最核心的技术做了深刻的剖析和阐述,所以仍然很值得一读。此外,我也经常逛Java并发编程网(站长就是方腾飞老师),自己从该网站也学习了挺多并发编程的知识,受益匪浅,所以还是很推荐一读的。

本书内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。

《Java并发编程实战 》

happyxiaofan的程序员书单

作者:Brian Goetz等 
标签:Java并发编程 
推荐指数:5星 
推荐理由:本书作者都是Java Community Process JSR 166专家组(并发工具)的主要成员,并在其他很多JCP专家组里任职。我们平常使用的JUC框架的类都是这些家伙设计的,写的书自然不会逊色

目前处于在读中,不发表过多评价

《TCP/IP协议族》

happyxiaofan的程序员书单

作者:福罗赞 
标签:TCP、IP 
推荐指数:5星 
推荐理由:这本书深入浅出讲解了TCPIP协议涉及到的知识点,全而深、图文并茂、通俗易懂是一大特点。看完这本书后,看其他TCPIP的书都觉得写得没有这本好。

书中的内容按照四层模型详细讲解每层的协议,附上了大量的配图,使得整本书阅读下来你都不觉得自己在看书,更像是在看图画书。所以,作为入门的话,我很推荐这本书。

《Java核心技术·卷1:基础知识》

happyxiaofan的程序员书单

作者:(美)Cay S. Horstmann / (美)Gary Cornell 
标签:core java 
推荐指数:5星 
推荐理由:最好的Java入门之作,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评

本书讲解了Java中核心概念(如果你是对Java一无所知的小白,建议暂时不要看这本书)、语法、重要特性和开发方法,并且附有大量的演示代码,看完这本书后对Java应该就算入门了(当然书中的代码还是得多敲的)。

《现代操作系统》

happyxiaofan的程序员书单

作者:Andrew S. Tanenbaum 
标签:操作系统 
推荐指数:5星 
推荐理由:这是我学习操作系统的入门书,中文版由北大陈向群老师等翻译的,水平很高。书中介绍的概念十分清晰和富有条理,而且作者用词引人入胜,用了许多口语化的单词,不会让人觉得枯燥和乏味。而且作者善于使用比喻将难以理解的语义或者概念解释出来,所以看这本书压力相比之下小很多。

这本书唯一的不足时,字体太小了,长时间看容易眼花,所以亲们在看这本书的时候要注意用眼哦。这里顺便推荐陈向群老师录制的操作系统MOOC视频,两者结合看效果更好。

《大话数据结构 》

happyxiaofan的程序员书单

作者:程杰 
标签:数据结构 
推荐指数:4星 
推荐理由:本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。

程杰老师这本书我是在看完数据结构与算法分析后再看,没有之前复杂的数学推理,整本书看下来十分轻松,又能学会并掌握数据结构与算法中重点知识,可谓一举多得。这本书强烈推荐入门的新手阅读。

《大话设计模式》

happyxiaofan的程序员书单

作者:程杰 
标签:设计模式 
推荐指数:5星 
推荐理由:本书比前一本更有名,在国内程序员中口碑不错。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?

我自己学习设计模式也是通过这本书学习的,感觉虽然讲解很浅显,但是核心思想都讲到了,总体看下来还是很不错的。如果想学习下设计模式,这本书可以作为入门吧。

《算法 》

happyxiaofan的程序员书单

作者:Robert Sedgewick / Kevin Wayne 
标签:算法 
推荐指数:5星 
推荐理由:作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。而且书中的所有算法都是采用Java实现的,并且配有大量的图解,全篇没有一句难懂的话,书中的算法可以说是程序员必须掌握的,强烈推荐。

《剑指offer》

happyxiaofan的程序员书单

作者:何海涛 
标签:面试笔试 
推荐指数:5星 
推荐理由:书中的65道面试题都很经典,刷完之后对常见题型能够形成比较清晰的思路,而且对解决面试中的算法题有很好的帮助。拿下名企,刷题必备。