深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
- [5.5 系统测试](#55__546)
- [5.6 运行和维护知识](#56__580)
- [5.7 软件项目管理](#57__594)
- [5.8 软件度量](#58__634)
- [5.9 软件度量](#59__641)
- [5.10 软件工具与软件开发环境](#510__653)
+ [6、结构化开发方法](#6_663)
+ - [6.1 系统分析与设计概述](#61__665)
- [6.2 结构化分析方法](#62__688)
- [6.3 结构化设计方法](#63__705)
- [6.4 WebApp 分析与设计](#64_WebApp__719)
- [6.5 用户界面设计](#65__737)
+ [7、面向对象技术](#7_757)
+ - [7.1 面向对象基础](#71__759)
- [7.2 UML](#72_UML_794)
- [7.3 设计模式](#73__811)
+ [8、算法设计与分析](#8_851)
+ - [8.1 算法设计与分析的基本概念](#81__853)
- [8.2 算法分析基础](#82__860)
- [8.3 分治法](#83__866)
- [8.4 动态规划法](#84__872)
- [8.5 贪心法](#85__877)
- [8.6 回溯法](#86__882)
- [8.7 分支限界法](#87__893)
- [8.8 概率算法](#88__895)
- [8.9 近似算法](#89__897)
- [8.10 数据挖掘算法](#810__899)
- [8.11 智能优化算法](#811__907)
+ [9、数据库技术基础](#9_917)
+ - [9.1 基本概念](#91__919)
- [9.2 数据模型](#92__957)
- [9.3 关系代数](#93__972)
- [9.4 关系数据库SQL语言简介](#94_SQL_1000)
- [9.5 关系数据库的规范化](#95__1039)
- [9.6 数据库的控制功能](#96__1054)
+ [10、网络与新信息安全基础知识](#10_1073)
+ - [10.1 网络概述](#101__1075)
- [10.2 网络互连硬件](#102__1101)
- [10.3 网络协议与标准](#103__1118)
- [10.4 Internet及应用](#104_Internet_1154)
- [10.5 信息安全基础知识](#105__1172)
- [10.6 网络安全概述](#106__1178)
+ [11、标准化和软件知识产权基础知识](#11_1185)
+ - [11.1 标准化基础知识](#111__1187)
- [11.2 知识产权基础知识](#112__1220)
+ [12、软件系统分析与设计](#12_1257)
+ - [12.1 结构化分析与设计](#121__1259)
- [12.2 数据库分析与设计](#122__1266)
- [12.3 面向对象分析与设计](#123__1307)
- [12.4 算法分析与设计](#124__1317)
- [12.5 面向对象的程序设计与实现](#125__1330)
软件设计师
1、计算机系统知识
1.1 计算机系统基础知识
-
1.1.1 计算机系统硬件基本组成
- 计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。
- 运算器、控制器被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。
- 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,后者容量大、速度慢。
- 输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出处理结果。
-
1.1.2 中央处理单元
-
1.CPU的功能
- (1)程序控制
- (2)操作控制
- (3)时间控制
- (4)数据处理
-
2.CPU的组成
-
1)运算器
-
主要功能
- (1)执行所有的算术运算
- (2)执行所有的逻辑运算并进行逻辑测试
-
部件
- (1)算术逻辑单元(ALU)
- (2)累加计算器(AC)
- (3)数据缓冲寄存器(DR)
- (4)状态条件寄存器(PSW)
-
-
2)控制器
- (1)指令寄存器(IR)
- (2)程序计数器(PC)
- (3)地址寄存器(AR)
- (4)指令译码器(ID)
-
3)寄存器组
-
-
3.多核CPU
-
-
1.1.3 数据表示
-
1)原码、反码、补码和移码
- (1)原码表示法
- (2)反码表示法
- (3)补码表示法
- (4)移码表示法
-
2)定点数和浮点数
- (1)定点数
- (2)浮点数
- (3)工业标准IEEE 754
- (4)浮点数的运算
-
-
1.1.4 校验码
- 1.奇偶校验码
- 2.海明码
- 3.循环冗余校验码
1.2 计算机体系结构
-
1.2.1 计算机体系结构的发展
- 1.计算机系统结构概述
- 2.计算机体系结构分类
- 3.指令系统
- 4.阵列处理机、并行处理机和多处理机
-
1.2.2 存储系统
- 1.存储器的层次结构
- 2.存储器的分类
- 3.相联存储器
- 4.高速缓存
- 5.虚拟存储器
- 6.外存储器
- 7.磁盘阵列技术
- 8.存储域网络
-
1.2.3 输入/输出技术
- 1.微型计算机中最常用的内存与接口的编址方法
- 2.直接程序控制
- 3.中断方式
- 4.直接存储器存取方式
- 5.输入/输出处理器(IOP)
-
1.2.4 总线结构
- 1.总线的分类
- 2.常见总线
1.3 安全性、可靠性与系统性能评测基础知识
-
1.3.1 计算机安全概述
- 1.计算机的安全等级
- 2.安全威胁
- 3.影响数据安全的因素
-
1.3.2 加密技术和认证技术
- 1.加密技术
- 2.认证技术
-
1.3.3 计算机可靠性
- 1.计算机可靠性概述
- 2.计算机可靠性模型
-
1.3.4 计算机系统的性能评价
- 1.性能评测的常用方法
- 2.基准测试程序
2、程序设计语言基础
2.1 程序设计语言概述
-
2.1.1 程序设计语言的基本概念
- 1.低级语言和高级语言
- 2.编译程序和解释程序
- 3.程序设计语言的定义
- 4.程序设计语言的分类
-
2.1.2 程序设计语言的基本成分
- 1.程序设计语言的数据成分
- 2.程序设计语言的运算成分
- 3.程序设计语言的控制成分
- 4.程序设计语言的传输成分
- 5.函数
2.2 语言处理程序基础
-
2.2.1 汇编程序基本原理
- 1.汇编语言
- 2.汇编程序
-
2.2.2 编译程序基本原理
- 1.编译过程概述
- 2.文法和语言的形式描述
- 3.词法分析
- 4.正规式与有限自动机之间的转换
- 5.词法分析器的构造
- 6.语法分析
- 7.语法制导翻译和中间代码生成
- 8.中间代码优化和目标代码生成
-
2.2.3 解释程序基本原理
- 1.解释程序的基本结构
- 2.高级语言编译与解释方式的比较
3、数据结构
3.1 线性结构
-
3.1.1 线性表
- 1.线性表的定义
- 2.线性表的存储结构
-
3.1.2 栈和队列
- 1.栈
- 2.队列
-
3.1.3 串
- 1.串的定义及基本运算
- 2.串的存储结构
- 3.串的模式匹配
3.2 数组、矩阵和广义表
-
3.2.1 数组
- 1.数组的定义及基本运算
- 2.数组的顺序存储
-
3.2.2 矩阵
- 1.特殊矩阵
- 2.稀疏矩阵
-
3.2.3 广义表
- 1.广义表的基本操作
- 2.广义表的特点
- 3.广义表的存储结构
3.3 树
-
3.3.1 树与二叉树的定义
- 1.树的定义
- 2.树的基本概念
- 3.二叉树的定义
-
3.3.2 二叉树的性质与存储结构
- 1.二叉树的性质
- 2.二叉树的存储结构
-
3.3.3 二叉树的遍历
-
3.3.4 线索二叉树
- 1.线索二叉树的定义
- 2.建立线索二叉树
- 3.访问线索二叉树
-
3.3.5 最优二叉树
- 1.最优二叉树
- 2.哈夫曼编码
-
3.3.6 树和森林
- 1.树的存储结构
- 2.树和森林的遍历
- 3.树、森林和二叉树之间的相互转换
3.4 图
-
3.4.1 图的定义与存储
- 1.图的定义
- 2.图的存储结构
-
3.4.2 图的遍历
- 1.深度优先搜索(Depth First Search, DFS)
- 2.广度优先搜索(Breadth First Search, BFS)
-
3.4.3 生成树及最小生成树
- 1.生成树的概念
- 2.最小生成树
-
3.4.4 拓扑排序和关键路径
- 1.AOV网
- 2.拓扑排序及其算法
- 3.AOE网
- 4.关键路径和关键活动
-
3.4.5 最短路径
- 1.单源点最短路径
- 2.每对顶点间的最短路径
3.5 查找
-
3.5.1 查找的基本概念
- 1.基本概念
- 2.平均查找长度
-
3.5.2 静态查找表的查找方法
- 1.顺序查找
- 2.折半查找
- 3.分块查找
-
3.5.3 动态查找表
- 1.二叉排序树
- 2.平衡二叉树
- 3.B_树
-
3.5.4 哈希表
- 1.哈希表的定义
- 2.哈希函数的构造方法
- 3.处理冲突的方法
- 4.哈希表的查找
3.6 排序
-
3.6.1 排序的基本概念
-
3.6.2 简单排序
- 1.直接插入排序
- 2.冒泡排序
- 3.简单选择排序
-
3.6.3 希尔排序
-
3.6.4 快速排序
-
3.6.5 堆排序
-
3.6.6 归并排序
-
3.6.7 基数排序
-
3.6.8 内部排序方法小结
-
3.6.9 外部排序
4、操作系统知识
4.1 操作系统概述
-
4.1.1 操作系统的基本概念
- 1.操作系统定义及作用
- 2.操作系统特征与功能
-
4.1.2 操作系统分类及特点
- 1.批处理操作系统
- 2.分时操作系统
- 3.实时操作系统
- 4.网络操作系统
- 5.分布式操作系统
- 6.微型计算机操作系统
- 7.嵌入式操作系统
-
4.1.3 操作系统的发展
4.2 进程管理
-
4.2.1 基本概念
- 1.程序与进程
- 2.进程的组成
- 3.进程的状态及其状态间的切换
-
4.2.2 进程的控制
-
4.2.3 进程间的通信
- 1.同步与互斥
- 2.信号量机制
- 3.高级通信原语
-
4.2.4 管程
- 1.管程的引入
- 2.管程的结构
- 3.利用管程解决生产者-消费者问题
-
4.2.5 进程调度
- 1.三级调度
- 2.调度算法
- 3.进程优先级确定
-
4.2.6 死锁
- 1.死锁举例
- 2.死锁产生的原因及4个必要条件
- 3.死锁的处理
-
4.2.7 线程
4.3 存储管理
-
4.3.1 基本概念
- 1.存储器的结构
- 2.地址重定位
-
4.3.2 存储管理方案
- 1.分区存储管理
- 2.分区保护
-
4.3.3 分页存储管理
- 1.纯分页存储管理
- 2.快表
- 3.两级页表机制
-
4.3.4 分段存储管理
-
4.3.5 段页式存储管理
-
4.3.6 虚拟存储管理
- 1.程序局部性原理
- 2.虚拟存储器的实现
- 3.请求分页管理的实现
- 4.页面置换算法
- 5.工作集
4.4 设备管理
-
4.4.1 设备管理概述
- 1.设备的分类
- 2.设备管理的目标与任务
-
4.4.2 I/O软件
-
4.4.3 设备管理采用的相关技术
- 1.通道技术
- 2.DMA技术
- 3.缓冲技术
- 4.Spooling技术
-
4.4.4 磁盘调度
- 1.磁盘驱动调度
- 2.旋转调度算法
4.5 文件管理
-
4.5.1 文件与文件系统
- 1.文件
- 2.文件系统
- 3.文件的类型
-
4.5.2 文件的结构和组织
- 1.文件的逻辑结构
- 2.文件的物理结构
-
4.5.3 文件目录
- 1.文件控制块
- 2.目录结构
-
4.5.4 存取方法和存储空间的管理
- 1.文件的存取方法
- 2.文件存储空间的管理
-
4.5.5 文件的使用
-
4.5.6 文件的共享和保护
- 1.文件的共享
- 2.文件的保护
-
4.5.7 系统的安全与可靠性
- 1.系统的安全
- 2.文件系统的可靠性
4.6 作业管理
-
4.6.1 作业与作业控制
- 1.作业控制
- 2.作业状态及转换
- 3.作业控制块和作业后备队列
-
4.6.2 作业调度
- 1.作业调度算法
- 2.作业调度算法性能的衡量指标
-
4.6.3 用户界面
5、软件工程基础知识
5.1 软件工程概述
-
5.1.1 计算机软件
- 1.系统软件
- 2.应用软件
- 3.工具/科学软件
- 4.嵌入式软件
- 5.产品线软件
- 6.Web应用
- 7.人工智能软件
- 8.开放计算
- 9.网络资源
- 10.开源软件
-
5.1.2 软件工程基本原理
- 1.用分阶段的生命周期计划严格管理
- 2.坚持进行阶段评审
- 3.实现严格的产品控制
- 4.采用现代程序设计技术
- 5.结果应能清楚地审查
- 6.开发小组的人员应少而精
- 7.承认不断改进软件工程实践的必要性
-
5.1.3 软件生存周期
- 1.可行性分析与项目开发计划
- 2.需求分析
- 3.概要设计
- 4.详细设计
- 5.编码
- 6.测试
- 7.维护
-
5.1.4 软件过程
- 1.能力成熟度模型(CMM)
- 2.能力成熟度模型集成(CMMI)
5.2 软件过程模型
-
5.2.1 瀑布模型(Waterfall Model)
-
5.2.2 增量模型(Incremental Model)
-
5.2.3 演化模型(Evolutionary Model)
- 1.原型模型(Prototype Model)
- 2.螺旋模型(Spiral Model)
-
5.2.4 喷泉模型(Water Fountain Model)
-
5.2.5 基于构件的开发模型(Component-based Development Model)
-
5.2.6 形式化方法模型(Formal Methods Model)
-
5.2.7 统一过程(UP)模型
-
5.2.8 敏捷方法(Agile Development)
- 1.极限编程(XP)
- 2.水晶法(Crystal)
- 3.并列争求法(Scrum)
- 4.自适应软件开发(ASD)
- 5.敏捷统一过程(AUP)
5.3 需求分析
-
5.3.1 软件需求
-
5.3.2 需求分析原则
-
5.3.3 需求工程
- 1.需求获取
- 2.需求分析与协商
- 3.系统建模
- 4.需求规约
- 5.需求验证
- 6.需求管理
5.4 系统设计
- 5.4.1 概要设计
- 5.4.2 详细设计
5.5 系统测试
-
5.5.1 系统测试与调试
- 1.系统测试的意义、目的及原则
- 2.测试过程
-
5.5.2 传统软件的测试策略
- 1.单元测试
- 2.集成测试
- 3.确认测试
- 4.系统测试
-
5.5.3 测试面向对象软件
- 1.单元测试
- 2.集成测试
-
5.5.4 测试Web应用
- 1.质量维度
- 2.WebApp测试策略
-
5.5.5 测试方法
- 1.黑盒测试
- 2.白盒测试
-
5.5.6 调试
- 1.调试过程
- 2.调试方法
5.6 运行和维护知识
-
5.6.1 系统转换
-
5.6.2 系统维护概述
- 1.系统可维护性概念
- 2.系统维护的内容及类型
- 3.系统维护的管理和步骤
-
5.6.3 系统评价
- 1.系统评价概述
- 2.系统评价的指标
5.7 软件项目管理
-
5.7.1 软件项目管理涉及的范围
- 1.人员
- 2.产品
- 3.过程
- 4.项目
-
5.7.2 软件项目估算
- 1.成本估算方法
- 2.COCOMO估算模型
- 3.COCOMOII模型
- 4.Putnam估算模型
-
5.7.3 进度管理
- 1.进度管理的基本原则
- 2.进度安排
-
5.7.4 软件项目的组织
- 1.组织结构的模式
- 2.程序设计小组的组织方式
-
5.7.5 软件配置管理
- 1.基线
- 2.软件配置项
- 3.版本控制
- 4.变更控制
-
5.7.6 风险管理
- 1.风险识别
- 2.风险预测
- 3.风险评估
- 4.风险控制
5.8 软件度量
- 5.8.1 软件质量特性
- 5.8.2 软件质量保证
- 5.8.3 软件评审
- 5.8.4 软件容错技术
5.9 软件度量
-
5.9.1 软件度量分类
- 1.面向规模的度量
- 2.面向功能的度量
-
5.9.2 软件复杂性度量
- 1.程序复杂性度量原则
- 2.McCabe度量法
5.10 软件工具与软件开发环境
-
5.10.1 软件工具
- 1.软件开发工具
- 2.软件维护工具
- 3.软件管理和软件支持工具
-
5.10.2 软件开发环境
6、结构化开发方法
6.1 系统分析与设计概述
-
6.1.1 系统分析概述
- 1.系统分析的目的和任务
- 2.系统分析的主要步骤
-
6.1.2 系统设计的基本原理
- 1.抽象
- 2.模块化
- 3.信息隐蔽
- 4.模块独立
-
6.1.3 系统总体结构设计
- 1.系统结构设计原则
- 2.子系统划分
- 3.系统模块结构设计
- 4.数据存储设计
-
6.1.4 系统文档
6.2 结构化分析方法
-
6.2.1 结构化分析方法概述
-
6.2.2 数据流图
- 1.数据流图的基本图形元素
- 2.数据流图的扩充符号
- 3.数据流图的层次结构
- 4.分层数据流图的画法
- 5.分层数据流图的审查
-
6.2.3 数据字典(DD)
- 1.数据字典的内容
- 2.数据词典管理
- 3.加工逻辑的描述
6.3 结构化设计方法
-
6.3.1 结构化设计的步骤
- 1.建立初始结构图
- 2.对结构图的改进
- 3.书写设计文档
- 4.设计评审
-
6.3.2 数据流图到软件体系结构的映射
- 1.信息流的类型
- 2.变换分析
6.4 WebApp 分析与设计
-
6.4.1 WebApp的特性
-
6.4.2 WebApp需求模型
- 1.内容模型
- 2.交互模型
- 3.功能模型
- 4.导航模型
- 5.配置模型
-
6.4.3 WebApp设计
- 1.架构设计
- 2.构件设计
- 3.内容设计
- 4.导航设计
6.5 用户界面设计
-
6.5.1 用户界面设计的黄金原则
- 1.用户操纵控制
- 2.减轻用户的记忆负担
- 3.保持界面一致
-
6.5.2 用户界面的分析与设计
- 1.用户界面分析和设计模型
- 2.用户界面分析和设计的过程
-
6.5.3 用户界面设计问题
- 1.系统响应时间
- 2.帮助设施
- 3.错误信息处理
- 4.菜单和命令标记
7、面向对象技术
7.1 面向对象基础
-
7.1.1 面向对象的基本概念
- 1.对象
- 2.消息
- 3.类
- 4.继承
- 5.多态
- 6.动态绑定(Dynamic Binding)
-
7.1.2 面向对象分析
- 1.认定对象
- 2.组织对象
- 3.对象间的相互作用
- 4.基于对象的操作
-
7.1.3 面向对象设计
- 1.面向对象设计的活动
- 2.面向对象设计的原则
-
7.1.4 面向对象程序设计
- 1.类
- 2.继承和类层次结构
- 3.对象、消息传递和方法
- 4.对象自身引用
- 5.重置
- 6.类属类
- 7.无实例的类
-
7.1.5 面向对象测试
7.2 UML
-
7.2.1 事物
-
7.2.2 关系
-
7.2.3 UML中的图
- 1.类图
- 2.对象图
- 3.用例图
- 4.交互图
- 5.状态图
- 6.活动图
- 7.构件图
- 8.组合结构图
- 9.部署图
- 10.包图
7.3 设计模式
- 7.3.1 设计模式的要素
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
过程
-
6.5.3 用户界面设计问题
- 1.系统响应时间
- 2.帮助设施
- 3.错误信息处理
- 4.菜单和命令标记
7、面向对象技术
7.1 面向对象基础
-
7.1.1 面向对象的基本概念
- 1.对象
- 2.消息
- 3.类
- 4.继承
- 5.多态
- 6.动态绑定(Dynamic Binding)
-
7.1.2 面向对象分析
- 1.认定对象
- 2.组织对象
- 3.对象间的相互作用
- 4.基于对象的操作
-
7.1.3 面向对象设计
- 1.面向对象设计的活动
- 2.面向对象设计的原则
-
7.1.4 面向对象程序设计
- 1.类
- 2.继承和类层次结构
- 3.对象、消息传递和方法
- 4.对象自身引用
- 5.重置
- 6.类属类
- 7.无实例的类
-
7.1.5 面向对象测试
7.2 UML
-
7.2.1 事物
-
7.2.2 关系
-
7.2.3 UML中的图
- 1.类图
- 2.对象图
- 3.用例图
- 4.交互图
- 5.状态图
- 6.活动图
- 7.构件图
- 8.组合结构图
- 9.部署图
- 10.包图
7.3 设计模式
- 7.3.1 设计模式的要素
[外链图片转存中…(img-8JXfSMeh-1715722793381)]
[外链图片转存中…(img-txg7bYnd-1715722793382)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!