我的书单(Book List)

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

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

2018年进度: 6/10

操作系统

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

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

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

《深入理解计算机系统》3分:好像是一本用来作课本的书,全书确实讲了整个计算机系统,以操作系统为界分为上中下三篇,上篇讲操作系统以下,包括计算机体系结构、机器级的信息和存储体系等(略翻过的,看得有点懵),中篇讲操作系统的进程及内存管理,下篇则偏向于操作系统之上的内核接口和并发编程的相关知识。比较佩服用本书作课本的学校,一本书讲了我们四本书的知识。但总的来说,收获不大,上篇对程序员透明可以不多作过多了解,中篇不如《Linux内核设计与实现》全面,下篇则不如《Java并发编程实战》和《UNP》等书,全而不精,不太推荐看。

网络

《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相关的东西篇幅还挺大,而且翻译总让我觉得有点生硬,大而全。

《Java并发编程实战》5分:这本书介绍 Java 并发编程非常全面,从内置关键字、锁、同步容器、同步工具类引入并发编程的基础知识,又介绍了 Executor、ThreadPool 等成熟的并发编程框架,然后又从死锁、性能、测试等方面来思考并发编程的安全性,最后通过显示锁、各种高级线程同步工具的对比、Java 线程模型等高级主题来深入理解并发编程。由浅入深,中级到高级都能从中有所收获。个人认为,Java 开发者至少应该读一遍,对并发编程有个整体的印象。

《深入理解Java虚拟机》5分:作为 JVM 语言,更偏向于 Java 本质的内容在于其虚拟机。本书相对于我看过的理论书偏实战一些,主要讲了 Java 内存模型、GC算法,字节码及虚拟机加载、执行字节码和优化效率的全过程。国人的书没了翻译味读着很舒服,理论讲得很清晰,特别是书里的一些调试案例非常赞。对于刚接解 Java 的小白来说看本书有些深,且 Java 的封装性让这些知识对程序员来说都是透明的,推荐想对 Java 有深入了解的中级来读。

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

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

《Linux Shell脚本攻略》3分:书的内容挺充实的,把 linux 内的各种 bash 命令都介绍到了(好像没有软件包安装相关命令),也提供了很多实例来解析命令。问题是介绍 shell 脚本相关技巧介绍较少,比如函数传数组参数这些常见的坑就没讲到,了解很多 bash 命令脚本也不一定能写得好啊。而且定位比较尴尬,不像鸟哥的私房菜(只看过前几章),由浅到深整体熟悉 linux,本书是分模块来讲解的,ls、cd 等常见命令后面才提到,所以它不太适合新手看,而对于比较熟悉 linux 命令的人来说,能学到的知识又较少。总之本书适合用来查漏补缺或当工具书。

数据结构与算法

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

代码

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

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

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

补充:试图再读一遍,结果读了一半就坚持不下去了,总结了一下这本书不合我口味的地方:很多重构方法的具体做法写得太详细太傻瓜式了,例子占大量篇幅又让我觉得没干货。可能看一遍目录,遇到一眼看不明白的方法进去看内容前一两段或总结会比较好。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值