我一直以来读书是获取知识最好的方式,很长时间以来,我都在博客维护了一个 推荐书单,最近又做了一些整理,为每本书都添加了简评,希望能对大家有帮助,当然如果能用我的推广链接购书就再好不过了。
计算机科学
《深入理解计算机系统》
这本书从一个程序员角度描述了计算机底层的工作原理,例如信息的储存、算数计算、汇编和链接、处理器、编译优化、存储器、输入输出、并发编程等话题。对于 C 等系统编程语言的使用者来讲,这是一本必读的书,这本书会让你对你的写下的每一行代码的执行过程有一个比较系统的了解。对于应用级编程来讲,这本书也有很大价值,因为了解底层实现会有助于你更深刻地理解高抽象层次的编程语言是如何实现的。
《计算机程序的构造和解释》
这本书以 Lisp 为例系统性地介绍了用于在构建大型软件时控制代码的复杂度的技巧 —— 将复杂的事物,通过隐藏细节的方式不断地进行组合和抽象。这本书将会让你认真地思考编程的核心过程 —— 抽象,帮助你设计出结构良好、可维护的代码。
《计算机网络:自顶向下方法》
这本书以自顶向下 —— 从应用到实现的方式介绍了计算机网络各层次的设计和实现。这本书会帮助你对计算机网络各个层次所扮演的角色有一个概览性的了解,对于应用层编程来讲,了解 TCP 和 HTTP 的实现也是非常有帮助的。
《计算的本质:深入剖析程序和计算机》
这本书同时介绍了「状态机」和「 Lambda 验算」这两种计算模型,深入地介绍了高层次的编译型语言如何被编译到上述的计算模型,但本书并没有太多理论性的介绍,而是用比较易于接受的例子来进行讲解。这本书会让你了解到计算机是如何拥有计算能力的,以及平时所使用的高级语言如何映射到基本的计算模型,也会教会你如何自己实现一个简单的编译器。
软件工程
《代码大全》
这本书通过上百个例子来介绍在具体编码工作中的「最佳实践」,这是一本当之无愧的「代码大全」,因为每一节都是相对独立的话题,因此本书很适合碎片时间阅读。这本书可能需要你有一定软件工程的实践才能理解其巧妙之处,因此建议每隔一段时间就重温一遍。
《程序员修炼之道:从小工到专家》
这本书通过几十个较为零散的话题介绍了一个优秀的程序员在工作的过程中会遇到的问题 —— 如何挑选工具、如何协作、如何保证质量、如何管理需求和任务。这本书适合有一定工作经验的程序员阅读,并思考自己的工作中还有哪些改进空间。
《编写可读代码的艺术》
这本书通过大量的代码示例和讲解,从标识符、注释、变量、流程控制、排版、组织代码、自动测试的角度细致地讨论了什么才是「优雅」的代码风格。这本书会让你重新注意起代码中不起眼的小细节,适合所有希望写出优雅的代码的人。
《SRE: Google 运维解密》
这本书介绍了世界上最大的互联网公司如何在规模逐渐增长的过程中保证可用性的,从如何看待风险、部署监控、发布新版本、紧急故障处理、设计分布式系统、如何培养运维工程师等角度全面地介绍了站点可靠性工程师( SRE )所面临的挑战,推荐所有服务器端开发者阅读这本书。
算法
《编程珠玑》
这本书通过十几个例子介绍了如何写出正确的代码,并一步步优化使其短小精悍并拥有较高的性能,应用了排序、搜索、集合和字符串运算等最基本的算法。这本书会让你思考如何写出正确的、简短的、高性能的代码,毕竟只有在这样的代码的基础之上,才有应用其他软件工程方法的意义。
《集体智慧编程》
这本书结合有趣的例子介绍了在数据分析、搜索引擎、文本过滤、预测和决策领域的一些算法,它们并不复杂,并且很有可能会在你的工作的某个部分中发挥作用。
JavaScript
《JavaScript 权威指南》
这本书事无巨细地介绍了 JasvaScript 语言核心、标准库以及浏览器提供的 DOM 和 BOM. 本书并没有由浅入深的结构,而是通篇平铺直叙地介绍,因此适合有一定 JavaScript 基础的人从头至尾阅读来掌握一些相对细节的 JavaScript 知识,或遇到具体问题时查阅相关章节。
《JavaScript 语言精粹》
这本书用相对简短的篇幅介绍了如何使用 JavaScript 中最精华的部分编写优雅的代码。这本书适合对 JavaScript 仅有些许了解的人快速上手 JavaScript, 避免陷入 JavaScript 语法中的那些糟粕。
《JavaScript Web Applications 中文版》
这本书通过从零设计一个 MVC 架构的 JavaScript Web 应用框架来介绍了如何控制大型 Web 应用的复杂度,也介绍了几个常见的开源 Web 框架。这本书适合 Web 前端开发者了解常见的 Web 框架的基本设计思路和工作原理。
《JavaScript 异步编程》
这本书介绍了 JavaScript 中事件模型、 Promise 、 async.js 等异步抽象的设计和实现,同时也介绍了 Web Woerk 等在浏览器中优化性能的技巧。这本书适合所有 JavaScript 程序员增加对 Promise 等异步模型的理解,并在实践中挑选合适的异步模型。
数据库
《SQL 必知必会》
这本书由浅入深,概览式地介绍了 SQL 中和具体实现无关的那些语法,非常适合快速入门,了解 SQL 所提供的功能。
《Redis 入门指南》
这本书从 Redis 的各种数据类型入手,介绍了常见的命令,其间穿插着数据结构设计的实例,后半部分也介绍了事务、脚本和持久化等高级话题。这本书非常时候新手入门 Redis 或有一定 Redis 使用经验的人了解一些细节知识。
《高性能 MySQL》
这本书侧重于性能和可用性方面,先介绍了性能测试的基本原则,然后分别讨论了索引、查询对性能的影响,还介绍了如何配置分区和复制、如何配置高可用的数据库。适合已在工作中大量使用数据库,希望深入了解 MySQL 的工作原理来进行性能优化的开发者。
杂项
《HTTP 权威指南》
对于 Web 开发者而言, HTTP 是沟通前端于后端的桥梁, HTTP 本身提供了极其丰富的功能,就像其他的权威指南一样,这本书面面俱到地介绍了 HTTP 主要特性,有助于你在前端或后端开发中选择恰当的特性,在出现问题时进行更有针对性的排错。
《Modern PHP 中文版》
PHP 的用户既有 Facebook 这样顶尖的互联网公司,也有一些连版本控制和依赖管理都不了解的业余开发者。这本书会介绍如何使用 PHP 中的新特性、常见的需求有哪些最佳实践、有哪些风格标准可以参考、如何进行测试、如何进行部署,以现代化的方式来进行 PHP 开发。
《Python 语言及其应用》
这本书非常适合已有一定的开发经验,希望快速了解 Python 的语法,并用 Python 完成一些简单的项目。这本书先是简略地快速介绍了 Python 的语法,然后介绍它在脚本、网络、数据处理等领域的应用,其间还介绍了很多相关的工具和第三方包。
科普
《编码:隐匿在计算机软硬件背后的语言》
「阅读原文」中附有购买链接。
如果你有推荐的图书,欢迎在留言板中写出,分享给更多同学。
end
LeanCloud,领先的 BaaS 提供商,为移动开发提供强有力的后端支持。更多内容请关注「 LeanCloud 通讯」