Skip to content

Latest commit

 

History

History
276 lines (238 loc) · 10.6 KB

拓展内容.md

File metadata and controls

276 lines (238 loc) · 10.6 KB

拓展内容

系统 & 系统安全方向

编译原理 & 编程语言

  • Nand 2 Tetris 完成
  • MIT 6.100 A Introduction to Computer Science Programming in Python 课程内容学习并实现一个 Python 解释器
    • 下载教材 Introduction to Computation and Programming Using Python: With Application to Understanding Data
    • Sqrt 函数实现
      • 怎样取初值更快达到结果?
      • 这个方法有没有对应的数学原理?
      • 会不会产生无穷递归?如果有的话,如何防止无穷递归?在初值判断上?在程序设计上?
      • 为 sqrt 函数添加 Yield 输出中间值
      • 为 sqrt 函数添加单元测试
      • 学习数学
    • Python formatter 有哪些?如何使用?Python 有哪些 Code style 规范?注释和 docstring 怎么写?
      • VScode python Black formatter 安装
      • 开启 format on save
      • 学习软件工程基本规范
      • 实现一个 python beautifier(本地版 & Web 版)
    • Sqrt 函数测试
      • 如何 debug 一个 python 程序?如何在代码中打印值到 log?
      • 如何编写 python 测试?Python 提供了哪些工具?
      • 如何编写单元测试?
      • 数学函数如何封装成一个库?
    • 图灵机,图灵停机问题和图灵完备性是什么?
      • 学习数学
    • Syntax, static semantics, semantics 分别是什么?如何检测?
      • 学习编译原理
    • 使用 C++实现 Python 简易解释器:实现课程中学到的 Python 语法
      • 数据结构课程学习
        • CS61B Sp18 学习
          • Week 1 - Week 7 除 Project 2 外其他内容迅速过完
            • fib的简单实现
          • Project 2 完成
          • Week 8
          • Week 9
          • Week 10
          • Week 11
          • Week 12
          • Week 13
          • Week 14
        • CS61B Sp21 学习
        • 数据结构与算法分析——Java 语言描述阅读,用 Java 实现其上所有数据结构
        • CS 61 B 所有数据结构使用 C++实现
        • 数据结构与算法分析——C++语言描述阅读,并实现其上所有数据结构
          • Chapter 4:List, Stack & Queue
            • cmake 基础使用学习
            • clion 下 cmake 基础项目配置完成
            • 实现 list class interface
            • C++ 模板在 cmake 中的编译学习(和普通的是一样的)
            • alist, llist, dllist 基本功能实现
            • googleTest安装配置学习
            • C++ 单元测试框架googleTest学习
            • Clion 单元测试框架配置
            • 为 list 添加单元测试
            • 对照课本比较实现,优化实现
            • 实现 stack class
              • 实现 array stack
              • 实现 linked list stack
            • 实现 queue class
              • 实现单向 array queue
              • 实现 double ended array queue
              • 实现 list queue
            • 实现 dictionary class
          • Chapter 5: Binary Trees
            • 实现普通二叉树
            • 实现二叉搜索树
            • 实现堆
            • 实现最小优先队列
          • Chapter 6
          • Chapter 7
          • Chapter 8
          • Chapter 9
          • Chapter 10
          • Chapter 11
          • Chapter 12
          • Chapter 13
          • Chapter 14
          • Chapter 15
          • Chapter 16
          • Chapter 17
          • Vscode cmake 环境配置
          • CPack 的使用学习
          • CTest 的使用学习
        • CS106B 教材习题全部完成
        • 邓俊辉——C++数据结构课程学习,实现所有数据结构,并完成课程任务
        • 数据结构与 STL (豆瓣) (douban.com) 阅读
        • 高级算法和数据结构 (豆瓣) (douban.com) 阅读
        • 阅读《STL 源码剖析》,了解 C++实现过程中的数据结构和内存分配
        • 软件工程学习
          • 《软件工程原理》沈备军阅读并做笔记
          • README.md的写法学习
        • 用 C++ 实现一个 Git
        • Git 源码学习
        • 用 C++ 实现一个 TinySTL
        • 跟着 Milo Yip 的教程,用 C++ 实现一个 json 解析库
      • 形式语言与自动机学习
        • 实现小型自动机
        • 实现文法自动检测器
        • 实现图灵机模型
        • 实现二进制序列探测器
        • 实现正则表达式检测器
        • 实现小型数理逻辑语言
      • 汇编与链接过程学习
        • 学习 MIPS,RISV32/64,ARM 汇编语言
        • 了解多种基本的文件结构,并实现他们
        • 汇编器和链接器原理学习
        • 实现汇编器和链接器
      • 编译原理学习
        • 《游戏脚本编程实战》阅读并实现 ScriptVM
        • 《Compiler Construction》 Loudon 版本阅读
        • 简单的 C 语言编译器实现
        • PL/0 编译器实现
        • 编译原理公开课程学习
        • Parsing techniques 阅读
        • 中间代码生成学习
        • 后端代码优化学习
        • JVM 机制探索
        • JVM 实现
        • GC 原理探索
        • GC 实现
        • Crafting interpreters 阅读学习
        • 动态类型语言编译器开发学习
        • Lua 解释器实现学习
        • JVM 虚拟机实现学习
      • Cpp-python 剩余部分完成
      • cpp-python 测试完善
        • MIT 课本快速过完,用 cpp-python 实现其中算法,利用 googleTest 进行单元测试
        • CS 61 A 课程学习
        • 使用 Python 实现一个 Scheme 解释器
        • 用 CS 61 A 课程课程中的代码,添加更多 googleTest 单元测试
        • 用我自己的 cpp-python 运行我自己用 python 实现的的 Scheme 解释器
      • cpp-python 进一步优化
      • Web 前端开发学习
      • 使用 javascript 实现 Web 版本 Python 解释器
    • 实现 Javascript 动态类型解释器
    • 学习其他函数式语言,并实现其解释器(留坑)
      • SICP 学习,使用 Scheme 实现 Scheme 解释器
      • Scala 学习,使用 C/C++ 实现 Scala
    • 实现一个根据 BNF 语义自动自动生成编译器前端代码的工具
    • flexbison 源码阅读学习
    • ANTLR 源码阅读学习
    • 实现一个自动生成后端代码的工具
    • LLVM 源码阅读学习
    • 实现类似 gcc 的多语言编译工具
    • 程序分析公开课程学习
    • 程序漏洞挖掘学习
    • 编译原理论文研读
    • Python 学习路线及资料查找
    • Python 拓展方向学习
    • 扩展 Python 简易解释器:实现拓展方向的 Python 功能
    • 实现一个 CMake
    • 实现一个简单的 C 语言编译器(简易的 MIPS/RISC-V/ARM 版本)
    • 实现一个编译型语言,其支持过程、面向对象、函数式、网络编程、图形编程、人工智能编程接口

计算机体系结构

  • 数字逻辑
  • 组成原理
  • 计算机体系结构
  • 实现一个能运行在 FPGA 上的 CPU
  • CPU 优化到运行 xv 6 操作系统(龙芯杯要求)
  • CPU 优化到可以运行 Linux 操作系统
  • 系统构建和操作系统先学习完成
  • NJU PA 课程学习
  • 一生一芯学习,研究 Nemu 模拟器的构造
  • 实现 riscv 32/riscv 64/arm/mips 指令集下的 CPU 模拟器
  • 将 CPU 模拟器优化到可以运行 xv 6 操作系统
  • 将 CPU 模拟器优化到可以运行 Linux 操作系统
  • SDL 学习,实现一个 online fpga 模拟器(类似南大 nvboard)

系统构建

  • CSAPP 阅读并完成所有的 lab
  • Principles of computer systems 课程学习
  • MIT Computer system Engineering
  • SJTU Computer system Engineering

操作系统

  • 《操作系统概念》课本阅读,实现一些简单的轮子
  • 《操作系统设计与实现》阅读,实现一个小型的操作系统
  • 研究 xv6 等简单操作系统,优化我的操作系统
  • 继续优化操作系统,将编译器移植到该操作系统上
  • 为操作系统增加图形接口编写图形界面
  • 实现一个红白机模拟器上的超级马里奥游戏
  • 将红白机模拟器上的超级马里奥游戏,移植到我自己的 CPU 模拟器上
  • 为操作系统增加多核并行功能
  • 为操作系统增加安全设置
  • 为操作系统实现分布式协议
  • 为操作系统增加 AI 底层架构,可以运行神经网络
  • 如何为 Linux 内核提交 Patch

计算机网络

  • 实现小型的 TCP/IP 网络协议栈
  • 为我的操作系统增加网络协议栈
  • 实现云操作系统

数据库系统

  • 阅读数据库经典书籍,试着自己实现
  • 数据库课程学习
  • 课程源码研究
  • 完善自己的数据库系统
  • 研究 MySQL, Leveldb 源码
  • 给 mysql 提 Patch
  • 阅读数据库经典论文
  • 完善自己的数据库
  • 实现一个小型的数据库系统
    • 支持增删查改索引
    • 实现 mysql 协议
    • 实现分布式协议
  • 让该数据库适配我自己写的操作系统

并行与分布式系统

  • 实现各个分布式协议
  • 在我的数据库上添加分布式协议

系统安全

Web 前后端开发 & 移动软件开发

前端学习

后端学习

Android 开发学习

运维

测试

图形学方向

基础数学学习

基础游戏编程

C++学习

软件工程实践

游戏数学

游戏编程

游戏引擎开发

计算机图形学

游戏音频编程

游戏物理理和动画

游戏 AI

多人游戏编程

AI 方向

面试准备

  • 数据结构
  • 算法
  • 系统设计八股