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

作者:黄小斜

今天要给大家带来的一本书,是大名鼎鼎的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. Asp.Net Core 中IdentityServer4 实战之角色授权详解

    一.前言 前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式,最近由于改造一个网关服务,用到了IdentityServer4的授权,改造过程中发现比较适合基于Role角 ...

  2. 微信APP支付-java后台实现

    不说废话,直接上代码 先是工具类(注意签名时要排序): import java.io.BufferedReader; import java.io.ByteArrayInputStream; impo ...

  3. K:缓存相关问题

    缓存的作用在于提高程序的响应速度,一般用于程序存储运算所需数据或程序运算后的结果,以便再次访问或运算相同的程序(数据同样相同)时,能够得到快速的响应(适用于读多写少的场景).在现代计算机体系结构中,根 ...

  4. 证明与计算(7): 有限状态机(Finite State Machine)

    什么是有限状态机(Finite State Machine)? 什么是确定性有限状态机(deterministic finite automaton, DFA )? 什么是非确定性有限状态机(nond ...

  5. coding++:JS数组去重的几种常见方法

    一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq ...

  6. vscode vue 模版生成,vue 一键生成

    vscode vue 模版 继上篇文章(vue 格式化),顺便记录下 vue 模版生成.图片就不在贴了,如果有找不到 vscode 插件商店的可以访问上篇文章. 一.安装 VueHelper 在 vs ...

  7. vue-父组件传递参数到子组件

    案例: 父组件 <template> <div id="app"> <h1>vuex</h1> <h3>count:{{ ...

  8. iOS 内存分配与分区

    RAM ROM RAM:运行内存,不能掉电存储. ROM:存储性内存,可以掉电存储,例如内存卡.Flash. 由于 RAM 类型不具备掉电存储能力(即一掉电数据消失),所以 app 程序一般存放于 R ...

  9. 不可被忽视的操作系统( FreeRTOS )【2】

    本文章总结基于官方FreeRTOS手册,测试系统为ESP32的IDF 4.0 本篇续上一篇<不可被忽视的操作系统( FreeRTOS )[1]> 其中上一篇主要内容为: FreeRTOS介 ...

  10. 1051 Pop Sequence (25分)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...