一、思想建设
务实:《程序员修炼之道》。
《程序员修炼之道》读书笔记
格局打开:《浪潮之巅》。
《浪潮之巅》读书笔记
二、计算机组成原理
常识水平。
三、语言
1 Java
1.1 Java基础
比较扎实。用来写算法完全没有问题。
《华为精选练习题》专题
1.2 Java集合
背过八股文。
简易讨伐HashMap
所有带“简易”的文章,对现在的我来说都不是很满意,有时间的话会进行修改。
1.3 Java多线程
系统地学习过。
学习笔记的质量较低,已删除。
1.4 Java虚拟机
读过《深入理解Java虚拟机》,但是掌握得很一般。
背过八股文。
简易讨伐JVM
带“简易”的文章。
2 Python
2.1 Python基础
系统地学习过。
Python基础
工作中用到过,主要用来写脚本。
2.2 网络爬虫
简单地学习过,爬过一些不设防的网页。
网络爬虫基础
3 JavaScript
简单地写一写前端是没有问题的。
4 Shell
熟悉常用的命令。
看《程序员修炼之道》上面说,shell可以使工作效率提升很多,所以打算以后系统地学一下。
四、编码
1 优秀的设计
1.1 ETC原则
Easier To Change,优秀的设计比糟糕的设计更容易变更。
无论是什么设计原则,都是ETC的一个特例。
1.2 设计模式
系统地学习过,但由于当时基础薄弱,导致学习效果一般。
学习笔记的质量较低,已删除。
读了《程序员修炼之道》,对设计模式有了新的理解。
2 开发框架
2.1 Spring
读过《Spring揭秘》。
系统地学习过(包含Spring MVC)。
速通Spring
2.2 Spring Boot
在项目中用到过。
近期打算系统地学习一下。
2.3 Mybatis-Plus
在项目中用到过。
近期打算系统地学习一下。
3 测试
工作中经常写单元测试。
工作中会做集成测试,以行覆盖率和分支覆盖率作为评价代码质量的指标。
4 性能调优
了解性能调优的常规思路。
《谷粒商城》开发记录 7:压力测试和性能调优
5 算法
主要的知识来源为《labuladong的算法小抄》。
1) 线性表:《labuladong的算法小抄》专题 1:线性表
2) 非线性结构:《labuladong的算法小抄》专题 2:非线性结构
3) 动态规划:《labuladong的算法小抄》专题 3:动态规划
4) 贪心、回溯、DFS、BFS、位运算:
《labuladong的算法小抄》专题 4:算法技巧
五、数据存储
1 关系型数据库
1.1 MySQL
背过八股文。
简易讨伐MySQL
带“简易”的文章。
1.2 Oracle
工作中用到过,当MySQL来用的。
2 NoSQL数据库
2.1 Redis
系统地学习过。
讨伐Redis
比较重要的使用场景:
1) 缓存服务:《谷粒商城》开发记录 8:缓存技术
2) 记录session信息:《谷粒商城》开发记录 10:注册和登录
2.2 TBase
工作中用到过,当Redis来用的。
主要的使用场景是,在超时时间内不再处理相同的请求。
3 云存储
3.1 OSS
工作中用到过。
4 搜索引擎
在《数学之美》中了解到,搜索引擎 = 网络爬虫 + 倒排索引 + 网页排序算法。
4.1 Elasticsearch
在项目中用到过。简单地学了一下。
《谷粒商城》开发记录 6:Elasticsearch和商品上架
六、中间件
1 消息队列
在项目中用到过。简单地学了一下。
《谷粒商城》开发记录 11:消息队列和分布式事务
七、系统架构
1 项目架构
知道项目是怎么搭建起来的。
知道常用的元件在项目中各起到什么作用。
常用的元件:Nginx、Gateway、Nacos、Feign、MySQL、Redis、OSS、RabbitMQ、Elasticsearch、Sentinel、Sleuth等。
1.1 分布式架构
系统地学习过Zookeeper。
讨伐Zookeeper
2 云原生
了解过云原生。
云原生扫盲
八、计算机网络
系统地学习过概论、应用层、运输层,对网络层、链路层、物理层的了解不多。
1) 概论:《计算机网络:自顶向下方法》读书笔记 1:概论
2) 应用层和运输层:《计算机网络:自顶向下方法》读书笔记 2:应用层和运输层