ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-06-16 20:54:28  阅读:266  来源: 互联网

标签:同学 Java 递归 读书笔记 代码 技术 详见 好书 码农


写在开头

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

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

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

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

主观评价

正面:

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

负面:

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

主观打个分:

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蛮难用的,看了之后觉得有点错怪他了)
  • 单元测试:记住一句话,你不敢重构代码,主要是因为你没有写单元测试!

我的编程语言简史

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

老司机的精进

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

后记

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

关注我

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

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

各大平台都可以找到我

原创博客主要内容

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

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

公众号:后端技术漫谈.jpg

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

标签:同学,Java,递归,读书笔记,代码,技术,详见,好书,码农
来源: https://blog.51cto.com/u_15270272/2911963

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有