能为java初级程序员的成长推荐一份书单吗?
作者为开源项目SpringSide的发起人江南白衣。
#以上是本答案正文,下面是附说,可以不看。
#以上是本答案正文,下面是附说,可以不看。
#以上是本答案正文,下面是附说,可以不看。
另外两年前我也写过一个书单,「野人献曝」也贴来瞧瞧。
都是个人感觉,仅供参考,如有误导,非常抱歉。
才疏学浅,见识有限,请多批评。
有朋友说这书单中不少书不适合推荐给初学者,有道理,接受批评,关于书在初学阶段的价值判断我又写了篇答案 有哪些值得推荐的JavaEE入门书籍与视频? - 祁达方的回答 - 知乎, 欢迎移步。
java基础书籍:
《scjp考试指南》
无数次被人求推荐书籍,无数次说出这本书之后被鄙视:“我不是为了考证”。但这本书真不是只能用来考证。对j2se的讲解,既简约又精当,知识足够,又不会把人吓走的书,入门的不二之选。
《Thinking in Java》
java界的顶级图书。
《Core Java》
现在看可能比上一本更好了。
---我的笔记(更新中):
好书一起读(108):重学Java基础
好书一起读(105):重学Java泛型
好书一起读(106):重学Java容器
好书一起读(107):重学Java内部类
好书一起读(109):重学Java流
《Java解惑》
好玩的书,让你喜欢“有趣的”java。
《深入理解Java虚拟机》
《深入java虚拟机》
我的笔记:好书一起读(110):重学Java虚拟机
《Effective Java》
最喜欢的书之一,箴言式的规谏,作者的经验之谈,告诉你怎样写出优雅的代码。
java web基础书籍:
《scwcd考试指南》
《Head First JSP & Servlet》
我的笔记:好书一起读(111):重学Servlet & JSP
《scwcd考试指南》与《scjp考试指南》一系列,但质量不高。相比之下scwcd的官方推荐教材《Head First JSP & Servlet》更好。
这两本书都是将jsp的标签讲的很透,但如果使用jstl和el,两本书讲的都稍嫌不足,需要另查资料。
《深入分析Java Web技术内幕》
对初学者朋友来说,应该是营养非常丰富的一本书,感谢评论区补充。
java框架书籍:
《struts2技术内幕》
《spring技术内幕》
《Spring实战》(感谢评论区补充,我已经读了,好书!)
前3本都来自iteye博主的手笔,第1本和第3本尤为推荐。《strut2技术内幕》的哲学思辨之美让我惊为天人,《Spring3.x企业应用开发实战》的实用也让人爱不释手。
---我的笔记:
好书一起读(114):重学Spring之控制反转和依赖注入
好书一起读(115):重学Spring之面向切面
好书一起读(116):重学Spring之持久化
好书一起读(117):重学Spring之表现层方法
好书一起读(119):重学Hibernate/Mybatis之面向数据库
《Hibernate实战》
Hibernate作者Gavin King的作品。
Mybatis的好书籍没发现过,而且已经有中文文档了。
《深入浅出Hibernate》
《spring2.0技术手册》
两本经典的好书,有一点点古老了。
java性能书籍:
《java程序性能优化》
《java性能优化权威指南》
《web性能测试实战》
《零成本实现web性能测试——基于Apache Jmeter》
《Java并发编程实战》
---我的笔记:好书一起读(104):重学Java并发
设计模式书籍:
《Head First设计模式》
《设计模式之禅》
《java与模式》
《设计模式java中的应用》
……
设计模式的书没有特别好的也没有特别糟的,不同作者其实也没有什么发挥的余地,都是讲那些东西,所以都很像。设计模式的要点是仔细通读一遍,都理解了,在脑海中留存,以后写程序适当的时候设计模式自然会蹦出来。
《反模式》
介绍的是一些理论上不合理、但非常普及、能解决某些问题的“反模式”。
架构思想书籍:
《企业应用架构模式》
Martin Fowler的不朽著作,也是其人最好的一本书,十几年前的书,牛到了其中的种种思想,现在看来都是理所当然了,可见其影响力和普及程度。
《Expert One-on-One J2EE Development without EJB》
《J2EE设计开发编程指南》
java界的巨人,Spring作者Rod Johnson的封王之作,这两本书同时期出现的spring彻底改变了java世界的格局。“水,善利万物而不争,处众人之所恶,故几于道。”——《道德经》中的这句话,个人感觉可以用来赞颂Spring的伟大。
唯一的顶级框架,java界的万王之王。
《J2EE核心模式》
更早的书了,有空可以读读,不是特别必要。
《大型网站技术架构》
《软件架构设计》
国人的书籍,讲的是“架构”而不是“框架”了,前一本强烈推荐,淘宝系的书籍都很不错。
数据库书籍:
数据库的思想,行列含义,各种范式什么的,好理解。
oracle,mysql,sql server...等主流数据库,书籍都太多了,随意挑选就可以。不买书网上查资料其实也没问题。当然这指的是开发人员使用的数据库技术,更深的DBA技术我不了解,如果以后接触到再补充。
*《高性能mysql》确实不错,谢评论提醒。
《Sql反模式》
为领域建模之后,画E-R图,然后建表,是自然而然的事,不需要书籍。
反模式的议论见上文,SQL中也有一些反模式,这本书做了介绍。
编程基础书籍:
《java数据结构和算法》《算法》《算法导论》
---我的笔记:好书一起读(85):算法笔记
《编译原理》
---我的笔记:好书一起读(143):编译原理
《计算机程序的构造和解释》《Linux私房菜》《现代操作系统》
---我的笔记:好书一起读(82):电脑的原理
《TCP/IP详解 卷1》《计算机网络》潘爱民版
---我的笔记:好书一起读(87):网络笔记
《编程珠玑》
《代码大全》
等等……
不用一本本说了,基础的东西几十年也不会过时,认真读了受用无穷。
网络安全书籍:
《白帽子讲web安全》《Web前端黑客技术揭秘》
中国人写的安全书籍,做网站的必看,尤其是仇恨值高的。
---我的笔记:好书一起读(147):XSS,CSRF,SQL注入
软件工程类:
《人月神话》
70年代出的书到现在依然畅销,永垂不朽的名作。
《构建之法》
接地气的著作,软件开发的全景图,不是高高在上的指导,而是娓娓道来手把手来教。
《敏捷软件开发 原则,模式与实践》
个人看过的敏捷类书籍中相对不错的。
《高效程序员的45个习惯:敏捷开发修炼之道》
这45个习惯,无论敏捷与否,都是应该具备的,应该说是“优雅的”“职业的”行为。
《代码整洁之道》
《重构——改善既有代码的设计》
职业程序员有义务写好自己的代码,写给接手代码的人,更是写给半年后的自己。
最基本的职业道德,不需要多说。
(附:下面是一些前端的书,我觉得也有用,有朋友说离题,也对,就改为附说吧)
js书籍:
《Javascript权威指南》犀牛书
厚,唯一的顶尖著作,上册的每个章节都将一个知识点深入挖掘讲透,必看。
《Javascript高级程序设计》
厚,与犀牛书有很大重叠,可以看犀牛书之后随便翻翻这本书,有的地方可做补充。
《Javascript精粹》蝴蝶书
薄,让人喜欢javascript的一本书。
《Javascript DOM编程艺术》
薄,最佳入门书没有之一,对新手来说,前两本太厚让人望而生畏心生恐惧,这本书是优选,豆瓣评分高达8.7。
---我的笔记:好书一起读(129):JavaScript基础
html & css书籍:
首先入门还是w3school的教程。大部分作为非美工的程序员就够用了。
《精通CSS》
《CSS权威指南》
《CSS设计指南》
---我的笔记:好书一起读(130):关于HTML和CSS
《CSS禅意花园》
非新手向,更适合已经熟悉之后寻找灵感和……欣赏艺术。
前端性能:
《构建高性能web站点》
《高性能网站建设指南》
类似的两本薄书,不想看书YSlow的军规其实也够了,重要的是要知其所以然。
rest:
《REST实战》
《图解HTTP》
http协议的理解至关重要,有语义的东西不用白不用,method啦,状态码啦。
前端框架:
《锋利的jquery》
其实就是jqueryAPI的加强版,觉得jqueryAPI足够的话就不用看这本了。
《jquery技术内幕》
与《struts2技术内幕》《spring技术内幕》一系列的好书,讲源码的。这三本书都值得一看。但注意“源码无用论”和“源码神圣论”都不可取。
《深入浅出extjs》
不喜欢这个框架。真正要用ext的话,官方demo和api是最好的选择,尤其是demo。
《用AngularJS开发下一代web应用》
《单页web应用 Javascript从前端到后端》
《Backbone.js实战》
mv*框架大热以来较热的几个框架。
《Bootstrap用户手册》
《深入理解Bootstrap》
关于Bootstrap看官网即可(版本更新时中文官网可能跟最新版本对不上,推荐英文官网)。后者是好书,讲应用也讲源码。
基于Bootstrap的前端CSS框架Metronic超酷,页面常用的组件里面都有,其实就是个最佳实践的大整合大杂烩,里面没有的自己找Bootstrap插件就好。
本答案虽只100多赞,但已承蒙600多朋友收藏,想来其中有很多学生朋友,一想到列此书单时的随意状态和可能带来的误导,就非常不安。所以我计划从现在开始,对此书单中部分书籍做重新阅读思考体会的工作,将陆续更新个人阅读笔记的链接到本答案里。
我认为有必要再强调一次:本答案的主体是最前面的白衣兄书单的链接我的Java后端书架 (2016年暖冬4.0版),我自己列的书单是附说。因主次比例过于失调,料想朋友们有可能会搞错,所以再说一遍。