1186 字
6 分钟
编程学习思维导图
前端
前端基础(前端三件套)
HTML
- 超文本标记语言
CSS
- 用来写样式
JS
- 脚本语言,用来写页面逻辑
前端框架
Vue.js
渐进式框架 + 响应式系统。
核心是“响应式数据绑定”,通过依赖追踪自动更新视图。
入门容易,适合个人做项目
提供更开箱即用的完整解决方案(如Vue Router、Vuex/Pinia),同时支持逐步集成。 模板语法更易上手,响应式系统对初学者更直观。适合快速迭代的中小型项目或希望降低团队学习成本的场景。
React
推崇函数式编程和不可变数据。
核心是“UI即函数”,通过组件状态驱动视图更新。
难度相对较高,大厂用得比较多
它专注于纯粹的UI渲染和组件组合,将路由、状态管理等交给社区生态(如React Router、Redux)。 需要理解函数式思想、不可变性、Hook依赖数组等概念。更适合大型复杂应用或团队有较强JavaScript基础。
后端
Java编程基础
基本语法
数据类型
基本数据类型
复杂数据类型
流程控制
- 循环和判断
面向对象
封装继承多态
抽象类
接口
常用类
日期时间
集合类
IO流
反射
多线程
外部工具类
新特性
Stream Api
Lambda表达式
Java开发框架
JavaWeb
Tomcat
Spring 6
SpringMVC
Mybatis
Mybatis-plus
SpringBoot
Spring Security
Maven/Gradle
项目开发基础
数据库基础
Git团队协作
Linux
Docker容器
项目开发进阶
软件工程
设计模式
Redis
消息队列
Nginx
Netty网络编程
微服务
CI/CD
Java开发高级
并发编程
JVM
Java高级知识
项目架构设计
分布式
高可用
高并发
计算机基础
数据结构
线性结构
数组
字符串
链表
单向链表
双向链表
循环链表
栈
队列
普通队列
双端队列
散列结构
BitMap(位图)
集合
映射(哈希表)
树
二叉树
二叉查找树
多叉树
前缀树
B树
B+树
红黑树
堆
小顶堆
大顶堆
图
最短路径
并查集
最小生成树
拓扑排序
算法
排序
冒泡排序
快速排序
插入排序
希尔排序
选择排序
堆排序
归并排序
计数排序
桶排序
基数排序
贪心
分治
动态规划
递归
回溯
枚举
查找
二分查找(有序)
线性表查找
树结构查找
散列表查找
搜索
深度优先搜索DFS
广度优先搜索BFS
字符串匹配
KMP
前缀树
位运算
复杂度计算
时间复杂度
空间复杂度
操作系统
计算机网络
计算机组成原理
算法学习
遍历
枚举(暴力)
- 最直接的算法,就是全部可能都尝试一遍
前缀和&差分
- 创建新数组,将第n个元素的值设为Sum(0,n),以此来解决一些问题。
双指针(尺取法&滑动窗口)
- 通过维护两个指针(索引) 来高效遍历序列(如数组、字符串),以解决特定问题的算法思想。
查找搜索
二分算法(有序)
- 可以通过二分算法遍历答案,每次判断是否可行,以此不断缩短范围得出最终答案。
DFS
- 深度优先搜索
BFS
- 广度优先搜索
KMP算法
- 字符串匹配
数据结构
哈希
单调栈
- 栈内的元素始终保持单调性(单调递增或单调递减),用于找下一个更大/更小元素
优先队列
栈和队列
种类并查集
图的存储之链式前向星
最小生成树
欧拉路径
- 图中经过每条边恰好一次的路径(允许重复访问节点)。若起点与终点同,则为欧拉回路
线段树
树状数组
最短路径
Floyd
- 复杂度 用到了动态规划的思想,三层for循环嵌套
Bellman-Ford
- 复杂度特点是只对相邻结点进行计算,解决单源最短路径问题。
SPFA
- 类似BFS,时间复杂度不稳定。
Dijkstra
- 贪心思想,复杂度,最常用。
思路
贪心算法
动态规划
线性动态规划
区间动态规划
背包问题
状压DPI
树形动态规划
递归&分治
其他
质数筛法
- 用的最多的是欧拉筛,快速得到质数
高精度加减乘除
- 手写大范围类型,手动实现加减乘除
快速幂
- 快速计算某个数的n幂次
复杂度
- 做题时,一般默认1s执行行,以此来推测题目可行的复杂度。