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#

  • 复杂度O(n3)O(n^3) 用到了动态规划的思想,三层for循环嵌套

Bellman-Ford#

  • 复杂度O(nm)O(nm)特点是只对相邻结点进行计算,解决单源最短路径问题。

SPFA#

  • 类似BFS,时间复杂度不稳定。

Dijkstra#

  • 贪心思想,复杂度O(mlog2n)O(mlog_2n),最常用。

思路#

贪心算法#

动态规划#

线性动态规划#
区间动态规划#
背包问题#
状压DPI#
树形动态规划#

递归&分治#

其他#

质数筛法#

  • 用的最多的是欧拉筛,快速得到质数

高精度加减乘除#

  • 手写大范围类型,手动实现加减乘除

快速幂#

  • 快速计算某个数的n幂次

复杂度#

  • 做题时,一般默认1s执行10810^8行,以此来推测题目可行的复杂度。

Rust编程基础#

GO编程基础#

Python编程基础#

Python大模型#

编程学习思维导图
http://www.shineacz.top/posts/编程学习思维导图/
作者
shineAcZ
发布于
2025-12-23
许可协议
CC BY 4.0