我的书单(Book List)

下面列了我读过的一些编程相关的书籍,写了一些对书的印象,都是个人观点。书名后是我个人对书的推荐强烈度打的分(5分满分),都是拍脑袋打的。

我比较习惯读纸质书,买书也比较谨慎,踩的坑少(围笑),分打得可能比较高一些。

操作系统

《Linux内核设计与实现》5分:全书都在讲 Linux 内核的设计思想,实现并不多,作为操作系统的入门书非常适合。没有很多复杂的接口,思想也容易理解。对我个人来说,解开了我很多对操作系统运行的疑惑,也对编程很有借鉴意义。建议对操作系统不清楚的早读这本书。

《Unix环境高级编程》4分:著名的 APUE,编程刚入门时看的,当时没什么基础,详细内容忘得差不多了,印象很深的就是文件操作接口的参数很多。书里介绍了很多操作系统常用接口,新手可以大概看一遍对系统提供的接口有个印象。我准备再读一遍。

《Unix网络编程 卷二 进程间通信》5分:把 UNP 放在这里是因为卷二讲了很多系统内部的 IPC,一直在用的 unix domain sockets 是真神器,推荐后端工程师一定要看这本书。

网络

《TCP/IP详解 卷一》5分:从链路层到传输层把各种网络协议都介绍了一遍,TCP 的各种实现也讲得非常细,新手可以略翻一下理解一下网络。对应用层协议熟悉了之后再回过来仔细读一下本书。

《Unix网络编程 卷一 套接字联网API》4分:UNP。讲了很多网络 socket 相关接口,有很多客户端和服务器代码实现,同样我还得再读一遍。

《Web性能权威指南》3分:书的重点是性能,分别从传输层协议、无线网络和HTTP协议讲怎么做性能优化,不过全都是理论。最后还介绍了浏览器、websocket 和 WebRTC,最后一个做 B/S 的真心没听过,也算开了下眼界。

《构建高性能Web站点》4分:全书也在重点讲 Web 性能,不过更偏向于服务端架构和实践,如缓存的使用、数据库性能优化。书中列举了很多实用的方案,也对不同的方案使用 AB 和 strace 进行了充分的测试对比。中级后端工程师应该早点读这本书。

数据库

《Redis设计与实现》4分:从底层介绍了 Redis 多种数据结构的设计与实现,还有多种配套策略的实现,如数据持久化、集群等。可以说对 Redis 所有部分的设计都介绍得很清楚,毕竟是作者是分析过全部源码的。推荐 Redis 运维或对 Redis 的实现感兴趣的读。

《MySQL技术内幕:Innodb存储引擎》4分:如副标题,全书都在讲 Innodb 存储引擎。通过各个模块的设计实现,再给出我们使用 Innodb 时的需要注意的点和优化方案。推荐中级开发工程师读。

编程语言

《C Primer Plus》4分:C 语言入门的推荐书,主要是 C 的语法,详细而权威,没什么好说的。

《Java 核心技术 卷I》3分:确实是由浅入深的一本书,在读,比较期待集合和并发。书里Swing相关的东西篇幅还挺大,而且翻译总让我觉得有点生硬,大而全。

《PHP和MySQL Web开发》2分:刚开始学PHP时,看过一部网络教学视频后看的,当时的感觉是真的简单,看完后收获不多。如果你也是初学者,建议你还是省点钱,看看视频或文档撸一下代码来得实在。

《JavaScript高级程序设计》5分:红宝书,Web入门时看的,Js、Dom讲得很详细了,当时准备入前端坑时读了一遍,虽然有些朦胧,还是感觉收获很大。Js入了门的同学应该赶快读一下这本书,并且有几章还得跟着搜索引擎多看几遍。

数据结构与算法

《数据结构与算法分析 - C语言实现》3分:作为一个数学渣,对算法有本能的恐惧,这本书是咬着牙读下去的,还跳过了很多部分。书很生硬,没有形象的比喻,通过一堆堆的代码和数学公式去理解算法真的挺不容易的。

代码

《Head First 设计模式》4分:跟外面的那些技术书籍一点也不一样,全书充满了插图,每一个设计模式都通过一个浮夸的故事来讲(外国人嘛)。文中代码中用 Java 实现,不过都是最基本的语法。好像只写了 16 个设计模式?不过我觉得用来学习设计模式完全 OK。

《代码大全 第二版》4分:中文名是真的俗,代码百货?不过书不是代码展览馆,而是教人怎么写出优良的代码的。可能我个人一直对代码质量比较在意,让我眼前一亮的地方不是特别的多,不过不可否认书真的不错,建议新手早读一遍。

《重构:改善既有代码的设计》2分:在一次重构之前买来看的,讲得是对小块代码的重构方式,全书就像一个整齐排放的货架,上面全是对一些代码重构方式的抽象,列得让人有点懵,如果新手看这本书并对照着重构代码的话,我觉得效果应该不会太好(委婉)。

书还在读,列表也会增加,之前读过的书还可能会再读一遍写一些新的感受,欢迎关注。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

Red Hat-开源世界的领导者-在做什么?

说明: 笔者根据结合自己的了解和学习,将陆续介绍红帽的解决方案。开始着重于介绍解决方案,后续将针对一些开源项目进行介绍。需要注意的是,本文章不代表任何官方观点。...

43180
来自专栏Golang语言社区

LINUX环境并发服务器的三种实现模型

服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。 1 循环服务器与并发服务器模型 在网络程序里面,一...

36740
来自专栏大魏分享(微信公众号:david-share)

南沪艳阳谈U2L---我在金融行业座谈会上的分享

前言: 谈到U2L,顾名思义,就是UNIX to X86Linux。那么,我们为什么要做这件事呢?技术考量?成本考量?还是别的因素。本文将为您进行详细讲述。...

38560
来自专栏大魏分享(微信公众号:david-share)

IT武林的一项绝学:Ansible

IT的武林 如果把IT圈当成一个武林,里面有各大门派并充斥着各种武功的话,ansile绝对是一项杀伤力极强的内功。ansible本身配置和使用极为方便,并能够以...

41950
来自专栏Golang语言社区

Linux下突破限制实现高并发量服务器

1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发 数 量都要受到系统对用户单一进...

1.3K40
来自专栏人称T客

为什么微软正在成为一家「开源」公司?

微软正在成为一家开源公司。 拥有自己的BSD Unix操作系统,以支持乌班图作为Windows 10的子系统。以及最近开放源代码的Xamarin软件开发工具包。...

34750
来自专栏Golang语言社区

Linux下socket双向通信

linux下的socket与windows下的类似,就是少一个初始化的过程。 服务端 客户端 1 创建socke...

47580
来自专栏大魏分享(微信公众号:david-share)

从Gartner IT成熟度模型谈Linux运维

前言 本文参考IT基础架构和运维成熟度模型中的技术项,探讨Linux运维相关内容。本文由我和我的另外两名同事一起完成。 从基础架构和IT运维成熟度模型谈起 Ga...

63760
来自专栏杨建荣的学习笔记

推荐一款任务调度的开源方案

在平时的工作中,我们多多少少会有一些定时任务需要处理,有些是在每个服务器上单独部署,有些是在中控端部署,但是这样有一个缺点就是难以形成闭环,我们不知道我们的定时...

48070
来自专栏大魏分享(微信公众号:david-share)

从2015年服务器操作系统厂商收入排名谈U2L

2015年服务器操作系统收入排名 Garnter在2016年5月20日发布了服务器操作系统收入分析报告。里面包括Linux、UNIX和Windows三大类操作系...

42930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励