公众号【程序员书单】出品,转载请注明出处

作者:黄小斜

今天要给大家带来的一本书,是大名鼎鼎的head first系列丛书的一本《head first Java》相信很多学习Java的朋友对它都不会陌生。

深入浅出系列书籍是由O’Reilly出版社发行的一系列教育书籍,它强调以特殊的方式排版,由大量的图片和有趣的内容组合构成,而达到非疲劳的沉浸式学习效果。

我目前就看过《head first Java》和《head first设计模式》如果你们对本系列的其他书籍也感兴趣的话,欢迎留言告诉我,届时我也会都去看看,再来推荐给你们。

下面我们就来看看《head first Java》这本书到底有什么魔力。



《Head First Java》(中文版)(第2版)是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。

而且不只是读死书,你还会玩游戏、拼图、解谜题以及以意想不到的方式与Java交互。在这些活动中,你会写出一堆真正的Java程序,包括了一个船舰炮战游戏和一个网络聊天程序。

这是百度百科对于本书的介绍,说实话,这本书和其他的我Java类型书籍真的大不相同,它不会一本正经地去说技术概念和原理,而是通过生动有趣的方式去拆解一些复杂的知识点,就好像讲师在讲课的时候,喜欢讲段子而不仅仅扯概念。

不仅这本书,而且本系列的其他书籍也是这么干的,这种用“幼儿园水平”降维分析的方式,对于初学者来说真的是一大福音,书籍的背后是作者和策划人,我们不妨来看看到底是何方神圣。

作者介绍 配图

这位姐姐叫做Kathy Sierra,她是O'Reilly出版社Head First系列图书策划人之一,也是大型Java开发者社区JavaRanch.com创办人,同时还是多款教育类和娱乐类游戏主要开发人员。

你可能一位她是一个程序员,但实际上,她深谙产品交互之道和认知科学理论,为加利福尼亚大学洛杉矶分校创立了新媒体与交互设计课程。

多年来,她一直帮助大公司、创业公司、非营利组织和教育者重新思考打造用户体验的方法,培养持续忠诚的用户。

你也可以在Head First这个系列中看出她在书籍内容设计时的用心良苦,确实是站在了用户角度进行思考,把一些技术难题用巧妙的游戏和对话一一化解。

这本书适合你么?

适合人群:Java新手可以看,有经验的Java程序员看也会有收获

前置条件:最好有一定的计算机基础,没有的话也无伤大雅

我的读后感

第一次看这本书,是在我初学Java的时候,那个时候我对于Java一窍不通,到处在网上搜集书单,通常我们在某乎上的都可以看到这些书籍《Java编程思想》《Java核心技术卷一》《疯狂Java》等等,先不说这些书籍的好坏,但是它们都属于比较正统的优秀Java书籍,具有权威性和科学性,同时具有一定的迷惑性:大家都说好,那一定就是好,别人都推荐,那我也推荐吧。

于是乎人云亦云,不区分场合,不考虑用户属性,理所当然的,这些书成为所有Java学习者的生活必需品。

当时我看到《head first Java》这本书时,大致浏览,就觉得怎么花里花哨的,完全没有其他基本正统书籍的严谨性和科学性啊,这种书籍一定不适合我啊,于是弃之。

最近我正准备找几本Java书籍推荐给大家,无意中又翻开了这本书,结果“真香”我一个学了两年Java的人,看这本书居然感觉受益良多,很多之前一知半解的知识点都能在书里找到答案。

比如第一章,讲解Java的基本概念时,我发现它把Java的工作方式讲的特别清楚,而这些知识点你看再多的博客和面试题有时候都不一定知道。

再比如讲解继承、重载、多态,以及接口抽象类概念的时候,本书会清晰地告诉你为什么会有这些概念,该如何使用,编排顺序合理,组织逻辑缜密。

还有就是对于垃圾回收机制的讲解,和其他专门介绍jvm的书籍不一样,这部分内容可以快速让你知道垃圾回收的基本原理。

可以说,除了图形化应用的章节已经过时不用看了之外,本书每部分的内容都是精华,从异常处理、网络和线程、IO和序列化,再到集合和泛型这些Java核心技术,以及最后关于jar包、部署、RMI等实战类的内容,每一个章节都值得你认真读一读。

无论你是Java小白,准备找工作的Java练习生,还是工作多年的Java工程师,我相信这本书都会对你有所帮助。

微信公众号【程序员书单】一个为程序员推荐好书的公众号。每周为你pick精品书单,优质学习资源和工具软件。关注前沿技术与行业资讯,更关注你的自我提升。人生苦短,要把时间浪费在美好的事物上~

这本最适合夯实基础的经典 Java 书籍,可能80% 的 Java 程序员没有认真看过!的更多相关文章

  1. Java程序员金三银四精心准备的面试题及答案(基础篇)

    1.面向对象的特征有哪些方面? [基础] 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问 ...

  2. 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  3. C#夯实基础之多线程二:主线程、前台线程与后台线程

    我们在<C#夯实基础之多线程一:初识多线程>一文中第二部分中指出,既然windows最终发展出了多线程模型,按理说,我们直接使用一个.NetFramework的线程类就可以直接撸代码了,但 ...

  4. 二十三. Python基础(23)--经典类和新式类

    二十三. Python基础(23)--经典类和新式类 ●知识框架   ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object):    ...

  5. SQL夯实基础(九)MySQL联接查询算法

    书接上文<SQL夯实基础(八):联接运算符算法归类>. 这里先解释下EXPLAIN 结果中,第一行出现的表就是驱动表(Important!). 对驱动表可以直接排序,对非驱动表(的字段排序 ...

  6. 软件测试面试题-适合零基础和工作多年的re

    软件测试面试题整理,可以看看:适合零基础和多年工作经验跳槽的人 有些问题会深挖,就不在整理了 详看图片:

  7. CV与IP:基础,经典以及最近发展

    原文链接:http://blog.csdn.net/dcraw/article/details/7617891 原文编写层层递进,逻辑清晰: 不过看这篇转载可以少点击鼠标:http://blog.cs ...

  8. 夯实Java基础系列7:一文读懂Java 代码块和执行顺序

    目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...

  9. 夯实基础系列四:Linux 知识总结

    前言 前三节内容传送门: 夯实基础系列一:Java 基础总结 夯实基础系列二:网络知识总结 夯实基础系列三:数据库知识总结 现在很多公司项目部署都使用的是 Linux 服务器,互联网公司更是如此.对于 ...

随机推荐

  1. 解决IIS下localhost访问需要输入用户名和密码的问题

    [摘要]安装完IIS后,我们可能会发现浏览器输入localhost访问时提示我们输入用户名和密码,本文介绍了这种问题的解决方法,方便站长们调试自己的程序.     在我们的WIN XP系统中安装了II ...

  2. MySQL----DML(增删改表中数据)

    ##DML:增删改表中的数据 1.添加数据 *语法: *  insert into 表名(列名1,列名2,...列名n) values (值1,值2,...值n); *注意: 1.列名和值要一一对应. ...

  3. 概率-Knight Probability in Chessboard

    2018-07-14 09:57:59 问题描述: 问题求解: 本题本质上是个挺模板的题目.本质是一个求最后每个落点的数目,用总的数目来除有所可能生成的可能性.这种计数的问题可以使用动态规划来进行解决 ...

  4. 高效code review指南

    大多数程序员都知道并且相信code review(代码审查)的重要性,但并一定都能很好的执行这一过程,做好code review也需要遵循一定的原则.流程和规范. 我们团队的code review实践 ...

  5. UVA129 Krypton Factor 困难的串 dfs回溯【DFS】

     Krypton Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  6. vue - Babel之babel-polyfill、babel-runtime、transform-runtime

    引言 babel默认只转换新的 JavaScript 语法,比如箭头函数.扩展运算(spread). 不转换新的 API,例如Iterator.Generator.Set.Maps.Proxy.Ref ...

  7. PHP7内核(七):常见变量类型的基本结构

    上篇文章讲述了变量的存储结构zval,今天我们就来学习一下几个常见变量类型的基本结构. 一.类型一览 zval中的u1.v.type用来存储变量的类型,而zval.value存储的是不同类型对应的值, ...

  8. Jenkins打造多分支流水线指南

    overview: 多分支工作流程带来了以下几个关键能力: 在代码仓库中,每个新分支都有自己单独的工作流水线(job). 每个工作流水线都记录了对应分支的构建和变更历史. 可以自定义设置流水线随着分支 ...

  9. 模板字符串原理,原生js实现字符串模板

    在使用模板字符串的时候使用的是 '{{}}'形式进行书写,本文则向各位解密这么写的原因 初体验正则 首先要先明白正则表达式中exec的使用 例如: let str = 'axu1997@qq.com' ...

  10. 基于STM32F030F4P9和STM32 CUBEMX 输出PWM波形

    STM32F030F4P9定时器功能比较丰富,在此记录项目中使用其自动输出PWM波形(频率:50HZ).CubeMX配置定时器如下图说明. 在此定时器基础时钟为48MHZ,配置中不做分频处理,预分频系 ...