raphaelkaique1/study
GitHub: raphaelkaique1/study
一份涵盖计算机科学基础与软件开发全周期的综合性学习资料与路线图集合。
Stars: 1 | Forks: 0
# 路线图
- **[自然语言](https://github.com/raphaelkaique1/study/blob/main/natural_languages)**
- **[计算机科学](https://github.com/Universidade-Livre)**
- **[学习路线](https://roadmap.sh/roadmaps)**
- **[DEV-T](https://github.com/raphaelkaique1/study/blob/main/full-stack.md)**
- **[编程语言](https://quickref.me/)**
## 计算机科学:全栈周期
## 1. 计算机基础
### 1.1 硬件与软件
* **计算机体系结构**
- 硬件组件(CPU、内存、存储设备)。
- 计算机系统的组织结构。
- 处理器体系结构。
* **操作系统(Windows、Linux)**
- 操作系统与资源的运行及管理。
- Windows 和 Linux 环境的配置与管理。
- 虚拟化与虚拟机。
* **命令提示符/Terminal 知识**
- 命令提示符/Terminal 的基础与高级使用。
- 文件的导航与操作。
- 通过命令行实现任务自动化。
- 在命令行环境中进行 Scripting。
* **计算机网络**
- 网络基础知识(TCP/IP、DNS、DHCP)。
- 网络类型(LAN、WAN、MAN)。
- 通信协议。
- 局域网的配置与管理。
- 网络安全。
### 1.2 基本概念
* **编程逻辑**
- 条件与循环结构。
- 简单与复杂算法的构建。
- 变量、数据类型与数据结构的操作。
- 计算机问题的解决。
* **数据结构**
- 数组、列表、队列、栈。
- 动态数据结构(树、图)。
- 排序与查找算法。
- 数据结构的操作与变换。
* **算法**
- 算法的开发与分析。
- 算法的优化。
- 查找、分类、排序算法与递归。
- 复杂度分析。
## 2. 编程语言
### 2.1 C++
* **语法与语义**
- 该语言语法与语义的细节。
- 变量、数据类型、操作符、控制结构的操作。
* **数据结构与算法**
- 数据结构(列表、树、图)的实现。
- 排序与查找算法。
* **面向对象编程 (OOP)**
- OOP 概念(封装、类、继承、多态)。
* **并发与并行编程**
- 开发探索并发与并行机制的应用程序。
- 使用线程与库进行并行编程。
* **嵌入式系统开发**
- 为资源受限的系统构思软件。
- 针对微控制器和嵌入式系统进行编程。
* **代码优化与性能**
- C++ 中的代码优化策略。
- 硬件资源的高效利用。
### 2.2 JavaScript
* **语法与 ECMAScript+ 特性**
- ECMAScript 的特性。
- Arrow functions、destructuring、let/const 等。
* **DOM 操作**
- HTML 元素的操作。
- Event handling 与 DOM 交互。
* **异步编程(Promises、Async/Await)**
- 使用 Promises 管理异步操作。
- 使用 Async/Await 实现异步函数。
* **AJAX**
- 使用 XMLHttpRequest 和 Fetch API 与服务器进行异步通信。
- 处理 JSON 数据。
* **服务器端渲染 (SSR)**
- 在 Web 应用程序中实现服务器端渲染。
- SSR 的优缺点。
* **渐进式 Web 应用 (PWA)**
- 开发渐进式 Web 应用程序。
- 使用技术改善离线状态下的用户体验。
* **浏览器扩展程序开发**
- 为浏览器创建扩展程序。
- 与特定浏览器的 API 集成。
### 2.3 Python
* **语法与 PEP 8**
- 遵循 PEP 8 指南。
- 编写代码的最佳实践。
* **文件与字符串操作**
- 在 Python 中读写文件。
- 字符串的操作、格式化与高级处理。
* **Python 中的函数式编程**
- 使用高阶函数。
- 函数式编程的概念。
* **Python(Tkinter、PyQt)**
- Tkinter:使用标准库 Tkinter 构建图形界面。
- PyQt:使用 PyQt 库开发桌面应用程序。
* **数据科学与机器学习**
- 使用 NumPy、Pandas 和 scikit-learn 等库。
- 使用 Python 开发机器学习模型。
* **使用 Django 和 Flask 进行 Web 开发**
- 使用 Django 或 Flask 构建 Web 应用程序。
- 集成数据库、模板和路由。
* **使用 Python 实现任务自动化**
- 开发用于任务自动化的脚本。
- 使用特定的库进行自动化。
## 3. 数据库
### 3.1 SQL
* **数据建模**
- 数据建模的概念。
- 关系型数据的结构化。
- 实体与关系的建模。
- schema 的规范化与反规范化。
* **复杂查询**
- 使用 joins、子查询和聚合进行高级查询。
- 查询的优化。
* **规范化与反规范化**
- 规范化与反规范化的优缺点。
- 必要时的反规范化策略。
* **MySQL、PostgreSQL、SQLite**
- 数据库管理系统之间的特性与差异。
- 基础的配置与管理。
- 使用各个数据库的特定功能。
### 3.2 NoSQL
* **基本概念(文档型、键值对型、图型)**
- NoSQL 数据库的特性与数据模型。
- 在特定场景下使用每种类型。
- 不同类型的 NoSQL 数据库之间的比较与理解。
* **MongoDB、Redis、Neo4j**
- 特定 NoSQL 数据库的使用与配置。
- 特定 NoSQL 数据库的特性与实际应用。
- NoSQL 数据库中的数据建模。
## 4. DevOps
### 4.1 开发工具
* **持续集成与持续部署 (CI/CD)**
- 实施 CI/CD pipeline。
- 开发与运营之间的整合。
- 持续集成与持续部署 (CI/CD) 的实践。
- 流行工具,如 Jenkins、GitHub Actions、GitLab CI/CD。
- 软件开发与交付的自动化。
- 自动化测试、构建与持续部署。
* **版本控制(Git/GitHub)**
- 使用 Git 进行代码版本控制。
- 使用 GitHub(fork 等)。
- 分支策略。
* **虚拟环境(venv、virtualenv)**
- 虚拟环境的创建与管理。
- 依赖项隔离。
* **Docker 与容器**
- 使用 Docker 对应用程序进行虚拟化。
- 容器的创建与配置。
- 高阶使用 Docker 创建隔离环境。
- 使用 Docker Compose 编排多个容器。
### 4.2 云计算
* **AWS、Google Cloud、Azure**
- 了解并使用云平台提供的服务。
- 云环境中的配置与可扩展性。
### 4.3 监控工具
* **Prometheus、Grafana**
- 配置和使用 Prometheus 进行监控。
- 使用 Grafana 可视化指标和数据。
## 5. Web 开发
### 5.1 Web 基础
* **HTTP/HTTPS 协议**
- HTTP/HTTPS 协议的运行机制。
- 状态码与请求方法。
- HTTP 方法(GET、POST 等)。
- Web 通信中的安全。
- 配置与获取 SSL/TLS 证书。
### 5.2 前端
* **HTML5、CSS3、SASS/LESS**
- 使用 HTML5 进行语义化结构构建。
- 使用 CSS3 进行高级样式设计。
- CSS 预处理器(SASS、LESS)。
* **CSS 框架(Bootstrap、Tailwind)**
- 使用框架进行敏捷开发和响应式设计。
- 框架的定制与扩展。
* **JavaScript 框架**
- 开发可复用组件。
- 状态与数据管理。
- 与 API 集成。
* **TypeScript**
- 在 JavaScript 中使用类型。
- 添加到 JavaScript 中的静态类型检查与附加功能。
- 将 JavaScript 项目迁移至 TypeScript。
### 5.3 后端
* **Web 服务器(Node、Express)**
- 使用 Node.js 和 Express 配置和创建服务器。
- 路由和 middleware。
* **Linux 服务器管理**
- Linux 服务器的高级配置与管理。
- 服务与安全的实施。
* **RESTful API / Fetch API / 消费与创建 API**
- RESTful 原则。
- 使用 Fetch API 消费 API。
- 开发 RESTful API。
* **数据库(SQL 和 NoSQL)**
- 关系型数据建模 (SQL)。
- 关系型数据库中的 CRUD 操作。
- 使用 NoSQL 数据库。
* **高级网络配置**
- 复杂网络的设计与实现。
- 路由器、交换机和防火墙的配置。
### 5.4 安全、身份验证与授权
* **Web 开发中的安全实践**
- 识别并防范常见漏洞。
- Web 服务器的安全配置。
* **网络安全**
- 防范网络威胁的策略。
- 监控和检测可疑活动。
* **加密**
- 加密的概念。
- 在通信中实现加密。
* **OAuth2:**
- 理解 OAuth2 协议。
- 实现基于 OAuth2 的身份验证与授权。
* **JWT (JSON Web Tokens)**
- 理解 JSON Web Tokens 的格式与工作机制。
- 使用 JWT 进行身份验证。
* **OWASP Top 10**
- 理解主要的安全威胁。
- 缓解策略。
## 6. 桌面开发
### 6.1 桌面软件开发简介
* **概念与基础**
- 桌面软件的定义及其主要特征。
- 理解桌面软件的开发生命周期。
- 桌面应用程序与 Web 应用程序的区别。
* **C#(Windows Forms、WPF)**
- Windows Forms:使用 Windows Forms 开发界面。
- WPF (Windows Presentation Foundation):使用高级资源创建界面。
### 6.2 桌面编程语言
* **C**
- 了解该语言的语法与语义
- 框架的使用与配置
* **Java(JavaFX、Swing)**
- JavaFX:开发现代且响应式的界面。
- Swing:在 Java 中创建传统的图形界面。
* **Electron(用于跨平台开发)**
- 利用 Electron 使用 Web 技术创建跨平台桌面应用程序。
### 6.3 SDK (Software Development Kit) 与工具
* **使用特定 SDK 进行桌面开发(gcc、make、cmake)**
- 研究用于嵌入式开发的特定 SDK。
- 探索针对特定平台的 SDK。
- 配置与使用开发工具。
* **桌面集成开发工具 (IDE)**
- 选择与配置适合桌面开发的 IDE。
* **与操作系统的高级集成**
- 探索操作系统提供的高级功能。
- 针对每个平台的配置与特定调整。
### 6.4 图形用户界面 (GUI)
* **桌面界面设计 (UI/UX)**
- 界面设计与用户体验原则。
- 每个平台的特定指南。
* **与用户的交互**
- 理解人机交互。
- 界面元素,如按钮、文本字段等。
* **可用性**
- 提高桌面应用程序可用性的策略。
- 可用性测试。
### 6.5 连接性与通信
* **为桌面应用集成 API**
- 在桌面应用程序中消费 API。
- 开发 API 以便与其他应用程序集成。
* **网络通信**
- 局域网和远程网络中的通信协议。
- socket 的配置与使用。
* **WebSocket 及其他技术**
- 实现和使用 WebSocket 进行实时通信。
- 探索其他高级通信技术。
### 6.6 桌面应用程序安全
* **安全实践**
- 在代码中实施良好的安全实践。
- 防范常见漏洞。
* **加密**
- 使用加密技术保护敏感数据。
- 应用于桌面应用程序的加密算法。
* **桌面应用程序中的身份验证与授权**
- 安全的身份验证策略。
- 访问控制与授权。
### 6.7 测试与调试
* **桌面应用程序的测试策略**
- 开发与执行单元测试和集成测试。
- 可用性测试。
* **调试工具**
- 使用调试工具识别并修复错误。
### 6.8 跨平台开发
* **跨平台开发方法**
- 确保在不同操作系统中兼容性的策略。
- 关于响应式设计的考虑。
* **关于兼容性的注意事项**
- 针对不同平台调整界面与功能。
## 7. IoT 开发
### 7.1 IoT(物联网)开发
* **IoT 基础概念**
- 物联网的定义与特征。
- 物联网应用的实际案例。
* **传感器与执行器**
- IoT 应用中使用的传感器与执行器类型。
- 配置与读取数据。
* **与 IoT 设备的通信**
- 与 IoT 设备的通信协议。
- 传感器与执行器的集成。
* **IoT 通信协议(MQTT、CoAP)**
- 使用特定协议进行 IoT 设备的通信。
* **IoT 应用程序开发**
- 开发用于控制和监控 IoT 设备的软件。
* **IoT 平台(Arduino、Raspberry Pi)**
- 使用 Arduino 和 Raspberry Pi 开发实践项目。
- 与流行的平台集成。
## 8. 高级开发
### 8.1 解决方案架构
* **架构概念**
- 根据项目需求选择合适的架构。
- 理解并应用如-View-Controller (MVC)、Model-View-View-Model (MVVM) 等架构。
* **设计模式**
- 使用设计模式实现代码复用与可扩展性。
- 为特定场景选择合适的模式。
- 应用设计模式解决反复出现的问题。
- 常见 Design Patterns 示例:Singleton、Factory、Observer、Strategy。
- 实现 Singleton、Observer、Factory 等模式。
- 使用 design patterns 作为工具来构建代码结构。
- 在现代语言中实现模式的实际应用。
### 8.2 软件架构
* **可扩展性与性能、优化策略、缓存 (Caching)**
- 提升可扩展性与性能优化的策略。
- 实施 cache 以提升性能。
* **自动化测试、TDD(Jasmine、Mocha、Jest、Test-Driven Development)与 Behavior-Driven Development (BDD)**
- 测试驱动开发的原则。
- 自动化测试的实现。
- 采用 Test-Driven Development (TDD) 作为开发实践。
- TDD 和 BDD 对代码质量的好处。
- 流行的自动化测试工具。
- 使用测试框架,如 Jasmine、Mocha、Jest。
- 使用 Jest、Mocha 和 PyTest 等框架进行实际实现。
### 8.3 Web 的未来
* **Web3、区块链、代币化、智能合约与元宇宙**
- Web3 开发
- 区块链的运行机制
- 创建智能合约
- 资产的代币化
- 元宇宙开发
## 9. 最佳实践
### 9.1 整洁代码
* **整洁代码及更多**
- 编写整洁代码的最佳开发实践。
- 整洁代码原则(可读性、简洁性和组织性)。
- 代码中具有描述性的命名和语义含义。
- 函数与类的适当结构化。
- 通过带有自说明(自注释)的代码避免不必要的注释。
* **SOLID 原则**
- 单一职责原则。
- 开闭原则。
- 里氏替换原则。
- 接口隔离原则。
- 依赖倒置原则。
### 9.2 开发方法论
* **敏捷方法论**
- 敏捷宣言的原则。
- Scrum:角色、事件和工件。
- 看板:持续的开发流程。
- 在软件生命周期中的好处与应用。
Copyright © 2026 Raphael Kaíque Dias Santos
标签:JS文件枚举, MITM代理, 基础知识, 学习资源, 操作系统, 数据可视化, 测试用例, 漏洞利用检测, 计算机科学, 计算机网络, 请求拦截, 逆向工具