【读书笔记】《码农翻身》——一本差点被书名耽误的好书

写在开头

双11期间,当当网买了一波书,一般我买技术书籍都会提前先在网上大概浏览下目录和内容,再决定买不买纸质书,主要是为了防止自己买了后又觉得不感兴趣,闲置在那,浪费钱。这次买书为了凑单,准备额外多买一本书,本想再来一本小说,作为床头放松读物,但是翻到了销量前几的《码农翻身》,看了看副标题是:用故事给技术加点料。想了想就下单了,就权当是看小说顺便复习下技术,安慰下自己焦虑的内心。

本来看见这书名,也没对书的内容抱太大期望,结果拿到手发现还不错。每天晚上看几页,很快就把它看完了。

只能说这本书的名字有点令人摸不着头脑,我大胆猜测是作者对自己的内容充满信心,知道大家看了后肯定想要关注他的公众号,所以干脆就用公众号作为书的名字了。哈哈哈哈哈嗝。

声明:不是广告…我只是单纯想写笔记。

【读书笔记】《码农翻身》——一本差点被书名耽误的好书_第1张图片

【读书笔记】《码农翻身》——一本差点被书名耽误的好书_第2张图片

主观评价

正面:

  • 把技术用故事包装,首先让大家了解为何要有这种技术,层层递进,介绍该技术随着时代的演变,读完那些原来不熟悉的技术,的确有豁然开朗的感觉。
  • 勿在浮沙筑高阁,本书就是希望大家对于基础有所熟悉,有所了解。

负面:

  • 老少咸宜,没有负面,硬要杠出来的话可能就是,大部分章节包括章节内小节没有衔接,不过这一点作者也解释过,希望大家把它当作一本工具书看待,闲下来随手看几章,不需要连续性。

主观打个分:

8.5分

适合人群:

0.5-2年经验的同学们。我觉得这本书其实并不适合0基础的同学,有些概念和技术,是要自己实际有了一定开发经验后,才能感悟到,否则就和教科书一样有点枯燥,看完了也没有太大收获。

内容笔记

第一章 计算机的世界你不懂

本章节主讲计算机的底层实现,也就是程序是怎么跑在计算机上的。

包括了:

  • 计算机软硬件的结构,以及他们互相是如何通信的:详见“我是一块硬盘”,“我是一个键盘”。
  • CPU是如何执行程序的,包括CPU执行代码的逻辑,从内存调度程序,线程和进程的发展由来:详见“我是一个进程/线程”,“CPU阿甘”,“从1加到100”,“绕不开的加法器”。
  • 网络数据是如何传输的:详见TCPIP,“搞清楚WebSocket”
  • 数据库是怎么产生的,为啥想在的数据库要是关系模型:详见“数据库的奇妙之旅”。
  • 编程语言的发展史:“一个翻译家族的发展史”。
  • 编程中的锁:我们常说的共享变量锁问题总结
  • 递归和尾递归:正常情况下,一个递归就会用一个栈帧,但是当递归调用是函数体中最后执行的语句,斌且返回值不属于表达式的一部分时,这个递归就是尾递归。现代编译器会优化这个代码,复用栈帧。

Java帝国

本章描述了与Java有关生态的各种框架,概念。

  • Java Class:详细介绍了虚拟机是如何处理Java代码的
  • 持久化:Java处理数据存储的方式
  • JDBC的诞生:为啥我们会有JDBC,以及JDBC是如何演变成现在这种设计的:简单工程–》工厂方法
  • 宫廷内斗:讲了数据库操作的事务以及分布式事务
  • JSP:JSP是如何被淘汰的哈哈哈,还不是因为JS自己在浏览器实现了MVC!
  • 消息队列:为啥我们会有消息队列的需求,还不是为了解耦!后面还介绍了消息队列的协议设计,我们都要遵守协议!
  • 动态代理:AOP相关
  • 注解:比XML更好用的东西,也讲了我们怎么去实现一个自定义注解
  • 泛型:搞不清泛型的同志们,可以看下。还有一些实际编码中需要注意的细节。
  • 日志系统:logback+slf4j万岁
  • 序列化:JSON和XML当立,还有未来的趋势,RPC中的序列化
  • 加锁:和系统的锁不完全相同,这里的锁是Java中处理数据时需要注意的问题。
  • Spring的本质:Spring的DI和AOP,用到了哪些设计模式?

浪潮之巅的Web

这一章每小节基本都是一个技术问题的历史介绍,也是最像小说的一章,我就不每个小节都总结了,只写我比较关注的几个重点:

  • 机房夜话:SSO单点登录的实现方式
  • 从密码到token:OAuth 实现的三种方式!
  • 从SOA到微服务:前者做系统的集成,后者做系统的拆分
  • HTTPServer:从多进程,到select,到epoll,讲述了服务器是如何逐步优化高并发访问的。

代码管理那些事

  • 不熟悉Git和SVN的同学,只想手动保存文件互相传文件的同学,应该好好看看这章
  • 觉得Maven为何这么难用的同学,也该看看没有Maven的年代是多么的痛苦。(其实我一直觉得Maven蛮难用的,看了之后觉得有点错怪他了)
  • 单元测试:记住一句话,你不敢重构代码,主要是因为你没有写单元测试!

我的编程语言简史

作者讲述了它使用的几种语言,以及它们之间的关系,某个语言必然是有优于领一个语言的优点的。大家可以着重看下声明式编程和命令式编程的区别,讲得非常通俗易懂!

老司机的精进

作者对于职业生涯的一些总结感悟,看完之后,我觉得可以让大家少走一些弯路,少踩一些坑!

后记

本文是我自己看书以来的笔记,内容杂乱,大家多担待,就当我是在记流水账好啦。

关注我

我是一名后端开发工程师。

主要关注后端开发,数据安全,爬虫,物联网,边缘计算等方向,欢迎交流。

各大平台都可以找到我

  • 微信公众号:后端技术漫谈
  • Github:@qqxx6661
  • CSDN:@Rude3Knife
  • 知乎:@Zhendong
  • 简书:@蛮三刀把刀
  • 掘金:@蛮三刀把刀

原创博客主要内容

  • Java知识点复习全手册
  • Leetcode算法题解析
  • 剑指offer算法题解析
  • SpringBoot菜鸟入门实战系列
  • SpringCloud菜鸟入门实战系列
  • 爬虫相关技术文章
  • 后端开发相关技术文章
  • 逸闻趣事/好书分享/个人兴趣

个人公众号:后端技术漫谈

【读书笔记】《码农翻身》——一本差点被书名耽误的好书_第3张图片

如果文章对你有帮助,不妨收藏,投币,转发,在看起来~

你可能感兴趣的:(编码学习笔记)