之前有人问我推荐的技术书籍,当时草草回答了几本。今天恰逢有空,整理一下我推荐的技术书籍。
我认为单纯列书名而不写理由的书单都是耍流氓,因此我对每本书都会附上一些个人见解。
Java
Effective Java
类型:进阶
我最推荐的 Java 书籍。我对初学者的定义是掌握编程语言的语法和基本应用,而进阶就是如何写好代码。Effective Java 就是一本教你如何写好代码的书籍。
很多章节对我的帮助很大。关于某个知识点有困扰可以直接阅读对应章节,不用严格按照顺序阅读。
Java 编程的逻辑
类型:入门、进阶
一本从零开始但又讲解得很深入的 Java 书籍。很适合那些已经基本掌握 Java 的使用,但对知识点理解不清晰的人阅读。它从更系统更深入的角度让你理解相关知识点,经常会有茅塞顿开的感觉。
不太推荐
Java 编程思想:它是一本很著名的书,但我个人不是很推荐。作为入门难度有点高;作为进阶,阅读时时常陷入理解“这句话想表达什么”的困惑,可能是翻译导致的。
Kotlin
Kotlin 本身因为还在快速发展阶段,没什么推荐的书籍,推荐以看官方文档为主。
Effective Kotlin 目前还没出中文版,我也还未阅读。目前有一个别人正在更新的翻译版:https://github.com/MaxzMeng/Effective-Kotlin-zh-CN
Android
Android 开发是我本身的岗位,但实际阅读的 Android 书籍并不多,以文档和博客为主。看过的一些 Android 书籍大多是在生硬地介绍源码,不算推荐但也不至于不推荐,故未列出。
第一行代码 Android
类型:入门
我自己不是看这书入门的,但是事后阅读过,讲解得不错。作者郭霖也是一位把知识点讲解很透彻的大佬。
不太推荐
疯狂 Android 讲义:我的入门书,厚厚一本,内容都是 API 调用,价值不高。
计算机原理
编码 隐匿在计算机软硬件背后的语言
类型:入门
我最推荐的计算机专业入门书籍。它十分友善地从零开始,介绍编码、二进制、门、加法器等计算机组成原理,让你领悟计算机是怎么实现的。
哪怕是没学习过计算机知识的人,感兴趣也可以阅读。比学校发的《计算机组成原理》不知道高到哪去了。
计算机科学概论
类型:入门
一本很全面的计算机相关知识,包括计算机组成原理、网络、算法、数据库、图形学、人工智能等方面。是国外很多计算机专业的入门书。
它很适合有一定经验的开发人员扩展知识的广度。不过我个人因为优先级的原因此书没看多少。
图形学
OpenGL ES应用开发实践指南:Android卷
类型:入门
我的 OpenGL Android 入门书。内容不错,但基本没有出版了。
Java 图像处理 基于OpenCV与JVM
类型:入门
我的 OpenCV 入门书,在浙江图书馆看的。作者是个很有意思的外国人,所有示例图片用的都是他家的猫猫。
书本身也写得不错,我最喜欢的是附言里的一句话:
我对未来有兴奋的感觉,而我不知道那看上去会是什么样。但无论如何,未来将会是我创造的样子。
——Amanda Lindhout
OpenCV Android 开发实战
类型:入门
这本就是比较传统地一字一句告诉你怎么写代码实现某个功能的书籍,很清晰也很清楚。如果要实际写功能更推荐看这本书上手。
设计模式
大话设计模式
类型:入门
用比较通俗的语言讲解设计模式的作用。
Android 源码设计模式解析与实战
类型:进阶
讲解 Android 里设计模式的运用,顺带介绍了很多 Android 的源码。
网络
计算机网络这个我觉得知识点本身没那么“复杂”,就那么些内容,懂了就是懂了,没懂就是没懂。因此没区分入门和进阶。
计算机网络(作者:谢希仁)
讲得较为好懂的计算机网络书籍,比国内那些杂七杂八的博客靠谱多了。
计算机网络:自顶向下方法
口碑很好的书籍,大部分人更推荐从这本入门。不过我个人还未看过。
信息安全
图解密码技术
类型:入门
比较好的结合了实际实现的密码学书籍。讲密码学原理的博客很多,但能有较为好懂的算法实现的很少,这本书是不错的选择。
Android 应用安全防护和逆向分析
这本书我没看过,不过作者姜维(又名:尼古拉斯·赵四)的博客(http://www.520monkey.com/)我学习过很多,书籍质量肯定是有保证的。
数据库
我对数据库本身不是很熟悉,但关注的一个博客对数据库原理讲解得很棒,从最简单的文本序列化存储一步步优化到现代数据库的雏形,很多思路是哪怕不做数据库这块的人也值得学习的。
系列第一章:数据库内核杂谈(一):一小时实现一个基本功能的数据库
软件开发
编程珠玑 与 代码整洁之道 都是知名的相关书籍,教你如何设计功能写好代码。
但我个人阅读这两本书时时常陷入的烦恼是:我觉得他们说的很对,但是具体到我遇到的问题,我并不知道改进的方案是什么。因此对这两本书的阅读并不多。
其他
Android 的音视频编解码,我找过相关书籍,感觉没一本靠谱的。
后端不熟悉。