happyxiaofan的程序员书单
转自
读书的看法
从15年7月至今,研究生期间读了不少书,读书让我学到了很多,也是提升技术能力的一个重要手段。可能很多人嫌读书太花时间,曾经的我一度也是这么认为的,觉得一个程序员不敲代码,捧着一本大块头(编程类书籍往往比较厚)的书实在太花时间了。研究生期间虽然关注了很多公众号,也保持每天都看技术博客的习惯,但是发现自己技术提高并没有实质性进步。我也发现了这个问题,发现虽然通过博客能够学习到技术,但是缺乏系统性的阐述,对于技术本质性的阐述仍然有限。
学习的最好途径仍然是看书
这是我现在对读书的看法。主要有以下几点好处:
- 书上的内容往往是经过多次推敲、思考以及总结的结果,质量有足够的保证
- 对技术的阐述足够详细,有系统性,对技术的全貌了解更清楚
- 如果书上有代码的话(绝大多数都有),敲代码比较方便
当然,难免遇到书中比较难理解的问题,这个时候我一般选择跳过去,当读完这部分的内容后再重新回过来理解,往往能够柳暗花明又一村。另外,在看完一本书的时候可以阅读一些优质的博客,因为有了一定的基础,阅读博客能够加深对内容的理解,对技术有更本质性的认识。
《深入理解Java虚拟机:JVM高级特性与最佳实践》
作者:周志明
标签:JVM
推荐指数:5星
推荐理由:围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理
如果你想成为一个优秀的程序员,本书绝对是值得一看的。这本书的帮助主要有:
- 深入理解javac编译器的编程过程和原理,class文件的结构
- 了解各种OOM和SOF异常触发场景,学会定位基本的性能问题
- JVM的调优策略
- 深刻理解Java虚拟机的类加载机制,为什么使用SSH框架老出现OOM问题,以及爱如何解决
- 常用的JVM参数,基本的内存分配策略
反正,这本书来来回回读了很多遍,每次都有新的收获,不得不很佩服周志明,让以前对调优以及性能定位一无所知的我大概知道如何解决性能问题了。当然,这块的内容是需要大量的线上项目实践做支撑的,不过有了一定的理论基础,遇到这类问题也不会手足无措。
《深入分析Java Web技术内幕(修订版)》
作者:许令波
标签: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开发技术的百科全书,这本书我看了两遍,对一些技术的理解也更加深刻了。
《大型网站技术架构 核心原理与案例分析》
作者:李智慧
标签:大型网站架构
推荐指数:5星
推荐理由:围绕大型网站的高可用、高伸缩性、高性能、高可扩展性以及高安全性五个方面浅显易懂地阐述了大型网站的技术演变的历程以及架构体系。看这书就像看一本故事书,李智慧老师是原阿里巴巴的技术专家,真的很吊。
本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。
如果有志成为分布式系统方面的专家,这本书将是一本很好的入门书,除此之外,李智慧老师还介绍了一个架构师的养成之道,虽然不是专门讲布道。但是仍然有一定的借鉴意义。
《大型网站系统与Java中间件开发实践 》
作者:曾宪杰
标签:大型网站、Java中间件
推荐指数:5星
推荐理由:作者现在是淘宝的技术总监,从事多年的Java中间件开发,具有丰富的实战经验和成果。这本书不仅对分布式系统以及Java中间件的理论知识做了详细的阐述,还包括了作者大量的实战经验。对于像深入了解大型网站架构设计与问题的解决思路,是不可错过的一本好书。
本书仍在阅读中,不发表过多的评价。
《大规模分布式系统架构与设计实战》
作者:彭渊
标签:分布式、架构设计
推荐指数:4星
推荐理由:这不是一本讲怎么使用Hadoop的书,而是一本讲实现Hadoop功能的书,本书系统讲解构建大规模分布式系统的核心技术和实现方法,包含开源的代码,手把手教你掌握分布式技术。作者使用了大量的演示demo代码,对分布式系统具有更直观的认识。我想这一点就够了
阅读本书有如下帮助:
- 并行计算的基本原理解剖;
- 调的实现,包括如何实现公共配置管理,如何实现分布式锁,如何实现集群管理等;
- 缓存的实现,包括如何提供完整的分布式缓存来利用多机内存能力;
- 队列的实现,包括如何实现发送和接收模式;
- 文件系统的实现,包括如何像操作本地文件一样操作远程文件,并利用多机硬盘存储能力;
- 作业调度平台的实现,包括资源隔离、资源调度等。
《分布式Java应用 :基础实践》
作者:林昊
标签:分布式
推荐指数:5星
推荐理由:这本书绝对是分布式系统开发的入门之作,作者是淘宝网架构师。书中对涉及到分布式开发的重要知识点做了深刻全面的讲解,而且还结合了作者实践中经验对常见的分布式系统开发遇到的问题做了总结,可以说理论联系实际,具有很好的参考价值。
《Spring技术内幕(第2版) 》
作者: 计文柯
标签:Spring
推荐指数:5星
推荐理由:是国内唯一一本系统分析spring源代码的著作,也是spring领域的问鼎之作,由业界拥有10余年开发经验的资深java专家亲自执笔,java开发者社区和spring开发者社区联袂推荐。
确切说,这本书没有看完,只看了IOC容器和AOP那两块的内容,作者通过详细的代码跟踪,深入揭示了Spring容器的启动、执行过程以及实现原理。包括IOC容器的依赖注入是如何实现的,AOP面向切面编程思想在Spring是如何体现的,设计到的技术哪些等方面都做了很详细的阐述。无论菜鸟老鸟,阅读这本书都能从中受益。
《Effective java 中文版(第2版) 》
作者:Joshua Bloch
标签:effective java
推荐指数:5星
推荐理由:连Java设计者高斯林都在看的书,另外,作者也是老牛逼的人了——Joshua Bloch是Google公司的首席Java架构师。是Jolt大奖的获得者。他曾是Sun公司的杰出工程师,和Transarc公司的高级系统设计师。Bloch曾带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。
这本书对java编程中需要注意的点做了很好的总结,如果不想因为自己被烂代码坑的话,这本书无疑是首选。另外,通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。
《Java并发编程的艺术 》
作者:方腾飞 / 魏鹏 / 程晓明
标签:Java并发编程
推荐指数:5星
推荐理由:作者作为一号店和阿里巴资深技术专家,本书是他们一线经验总结后的力作(豆瓣评价此书为扛鼎之作,我觉得还算不上)。书中对Java并发编程中设计到的最核心的技术做了深刻的剖析和阐述,所以仍然很值得一读。此外,我也经常逛Java并发编程网(站长就是方腾飞老师),自己从该网站也学习了挺多并发编程的知识,受益匪浅,所以还是很推荐一读的。
本书内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。
《Java并发编程实战 》
作者:Brian Goetz等
标签:Java并发编程
推荐指数:5星
推荐理由:本书作者都是Java Community Process JSR 166专家组(并发工具)的主要成员,并在其他很多JCP专家组里任职。我们平常使用的JUC框架的类都是这些家伙设计的,写的书自然不会逊色
目前处于在读中,不发表过多评价
《TCP/IP协议族》
作者:福罗赞
标签:TCP、IP
推荐指数:5星
推荐理由:这本书深入浅出讲解了TCPIP协议涉及到的知识点,全而深、图文并茂、通俗易懂是一大特点。看完这本书后,看其他TCPIP的书都觉得写得没有这本好。
书中的内容按照四层模型详细讲解每层的协议,附上了大量的配图,使得整本书阅读下来你都不觉得自己在看书,更像是在看图画书。所以,作为入门的话,我很推荐这本书。
《Java核心技术·卷1:基础知识》
作者:(美)Cay S. Horstmann / (美)Gary Cornell
标签:core java
推荐指数:5星
推荐理由:最好的Java入门之作,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评
本书讲解了Java中核心概念(如果你是对Java一无所知的小白,建议暂时不要看这本书)、语法、重要特性和开发方法,并且附有大量的演示代码,看完这本书后对Java应该就算入门了(当然书中的代码还是得多敲的)。
《现代操作系统》
作者:Andrew S. Tanenbaum
标签:操作系统
推荐指数:5星
推荐理由:这是我学习操作系统的入门书,中文版由北大陈向群老师等翻译的,水平很高。书中介绍的概念十分清晰和富有条理,而且作者用词引人入胜,用了许多口语化的单词,不会让人觉得枯燥和乏味。而且作者善于使用比喻将难以理解的语义或者概念解释出来,所以看这本书压力相比之下小很多。
这本书唯一的不足时,字体太小了,长时间看容易眼花,所以亲们在看这本书的时候要注意用眼哦。这里顺便推荐陈向群老师录制的操作系统MOOC视频,两者结合看效果更好。
《大话数据结构 》
作者:程杰
标签:数据结构
推荐指数:4星
推荐理由:本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。
程杰老师这本书我是在看完数据结构与算法分析后再看,没有之前复杂的数学推理,整本书看下来十分轻松,又能学会并掌握数据结构与算法中重点知识,可谓一举多得。这本书强烈推荐入门的新手阅读。
《大话设计模式》
作者:程杰
标签:设计模式
推荐指数:5星
推荐理由:本书比前一本更有名,在国内程序员中口碑不错。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?
我自己学习设计模式也是通过这本书学习的,感觉虽然讲解很浅显,但是核心思想都讲到了,总体看下来还是很不错的。如果想学习下设计模式,这本书可以作为入门吧。
《算法 》
作者:Robert Sedgewick / Kevin Wayne
标签:算法
推荐指数:5星
推荐理由:作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。而且书中的所有算法都是采用Java实现的,并且配有大量的图解,全篇没有一句难懂的话,书中的算法可以说是程序员必须掌握的,强烈推荐。
《剑指offer》
作者:何海涛
标签:面试笔试
推荐指数:5星
推荐理由:书中的65道面试题都很经典,刷完之后对常见题型能够形成比较清晰的思路,而且对解决面试中的算法题有很好的帮助。拿下名企,刷题必备。
happyxiaofan的程序员书单的更多相关文章
- 程序员书单_java学习基础编程篇
Java程序设计语言.(美国)阿诺德.清晰版 http://download.csdn.net/detail/shenzhq1980/9076093 JAVA2核心技术第1卷.基础知识7th.part ...
- 程序员书单_HTML篇
JavaScript权威指南(第六版) http://download.csdn.net/detail/shenzhq1980/9137733 改善JavaScript程序的188个建议 http:/ ...
- 双11Java程序员书单推荐
Java <Java核心技术卷I> <Java核心技术卷II> <Java编程思想> <Java并发编程实战> <Effective Java&g ...
- .net程序员书单
C# 基础 <CLR via C#> <c# 高级编程> 框架学习 <WPF编程宝典 > (英文名:<Pro WPF 4.5 in C#. Windows P ...
- 程序员书单_java专项进阶篇
JDBC API数据库编程实作教材 http://download.csdn.net/detail/shenzhq1980/9145715 Java事务设计模式 http://download.csd ...
- 程序员书单_sshi框架篇
Struts2权威指南完整版 http://download.csdn.net/detail/shenzhq1980/9103955 精通struts.基于MVC的.java.web设计与开发http ...
- 程序员书单_HeadFirst系列
Head First Jquery(中文版),完整扫描版 http://download.csdn.net/detail/shenzhq1980/9103615 Head First Python(完 ...
- 程序员书单_java web编程篇
李兴华JavaWeb开发实战经典 http://download.csdn.net/detail/shenzhq1980/9137653 Servlet与JSP核心编程 第2版_1 http://do ...
- 程序员书单_J2EE专题
Enterprise JavaBeans 3.0中文版(第5版) http://download.csdn.net/detail/shenzhq1980/9104015 J2EE设计模式 http:/ ...
随机推荐
- WebSocket 跨域
http://www.cnblogs.com/joeymary/p/5259464.html
- iproute2 对决 net-tools
如今很多系统管理员依然通过组合使用诸如ifconfig.route.arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障.net-tools起源于BSD的TCP/ ...
- linux xml
1:xml的基础语法,识别,创建xml文件 xml文件头:<?xml version="1.0" encoding="utf-8"?> 必须要有且 ...
- solr学习(六):使用自定义int/long类型主键
需求分析: 我不想使用solr默认的主键id,我想换成其他的,比如我的文章id为article_id,我想让article_id作为主键. 而且,我的主键是int类型,而solr的主键默认是strin ...
- Nginx 之防盗链配置
首先,我们需要知道通过什么来实现防盗的! http referer 是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上referer,这是在告诉服务器是从哪个页面链接过来的,服务 ...
- MySQL多表查询,pymysql模块。
一 多表查询: 首先什么是多表查询: 我们在实际工作中,不可能把数据都存入一个表中,那么又需要这些表之间有一定的关联,因为表与表之间的数据是相关联的,所以就要用到我们的外键将多表连接到一起,那么我们更 ...
- git将多个commit合并成一个
1. 查看提交历史(最近10个) git log - 2. 回到前面第十个commit,且将后面九个commit提交的内容状态改为未提交 git reset commitID(第十个commit的ID ...
- HTTP中Get、Post、Put与Delete。了解一下!
1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行多少次操 ...
- MySQL 可以用localhost 连接,但不能用IP连接的问题
连接问题 由于数据库配置的问题,当我们用ip连接数据库时,会出现连接不上的情况,而用localhost连接则没有任何的问题.解决方法: mysql安装完后,默认是root用户,root用户只能在服务器 ...
- fabric读书笔记
chaincode:一种类似于智能合约的代码,通过执行这个代码与账本交互.chaincode存储在节点上 transaction:一次chaincode的运行过程 contract:满足某个条件下,将 ...