通过从头开始重新创建最喜欢的技术来掌握您的编程
❤️💕💕CS自学指南,大学教育无论是深度还是广度都没有办法支撑我们的职业素养,这个板块算是自己在CS学习中额外补充和记录的。个人博客:http://nsddd.top
- 通过从头开始重新创建最喜欢的技术来掌握您的编程
- 目录:制造自己的 X
- 教程
- 建立你自己的3D Renderer
- 建立你自己的Augmented Reality
- 建立你自己的BitTorrent Client
- 建立你自己的Blockchain / Cryptocurrency
- 建立你自己的Bot
- 建立你自己的Command-Line Tool
- 建立你自己的Database
- 建立你自己的Docker
- 建立你自己的Emulator / Virtual Machine
- 建立你自己的Front-end Framework / Library
- 建立你自己的Game
- 建立你自己的Git
- 建立你自己的Network Stack
- 建立你自己的Neural Network
- 建立你自己的Operating System
- 建立你自己的Physics Engine
- 建立你自己的Programming Language
- 建立你自己的Regex Engine
- 建立你自己的Search Engine
- 建立你自己的Shell
- 建立你自己的Template Engine
- 建立你自己的Text Editor
- 建立你自己的Visual Recognition System
- 建立你自己的Voxel Engine
- 建立你自己的Web Server
- 未分类
- 贡献
- 和许可
-
项目地址
这是一个我很喜欢的项目😍😍😍
这个存储是我们开始关注我们的分步指南的集合,用于从头重新创建一个最喜欢的学习方式。欢迎投稿,随时发送公关。
我无法创造的东西,我不明白——我无法创造的东西——费曼。
目录:制造自己的 X
- 3D渲染器
- 增强现实
- BitTorrent 客户端
- 区块链/加密货币
- 机器人
- 工具工具
- 数据库
- 个体码头
- 连接/虚拟机
- 前端框架/库
- 游戏
- 吉特
- 网络中心
- 神经网络
- 操作系统
- 物理引擎
- 编程语言
- 正则表达式引擎
- 搜索引擎
- 壳
- 模板引擎
- 文本编辑器
- 视觉识别系统
- 体素引擎
- 网络服务器
- 未分类
教程
建立你自己的3D Renderer
- C++:方法追踪:创建 3D 图像的简单
- C++:OpenGL的工作原理:500行代码中的软件渲染
- C++ : Wolfenstein 3D的Raycasting引擎
- C++:基于物理的渲染:从理论到实现
- C++:光栅化:一个实际的实现
- C# / TypeScript / JavaScript :学习如何用 C#、TypeScript 或 JavaScript 从头开始编写3D软引擎
- Java / JavaScript:制造自己的 3D 渲染器
- Java :如何用纯Java创建自己的简单3D渲染引擎
- JavaScript / 伪代码:从头开始的计算机图形学
- Python:一个3D建模器
建立你自己的Augmented Reality
- C#:操作方法:提供 Vuforia 和 Unity 3D 增强现实应用教程[视频]
- C#:如何统一ARCore [视频]
- C#:使用 Unity 的 AR 门户教程[视频]
- C#:如何在Unity ARCore中的增强实境中创建龙[视频]
- C#:如何增强现实AR教程:颠倒的ARKit门户[视频]
- Python:使用 Python 和 OpenCV 增强现实
建立你自己的BitTorrent Client
- C#:在 C# 中从头开始制造 BitTorrent 客户端
- Go:在 Go 中从头开始制作 BitTorrent 客户端
- Nim:编写 Bencode 解析器
- Node.js :编写你自己的 bittorrent 客户端
- Python:Python 3.5 中的 BitTorrent 客户端
建立你自己的Blockchain / Cryptocurrency
- ATS:区块链
- C#:在C#中对区块链进行编程
- Crystal:使用 Crystal 编写自己的区块链和 PoW 算法
- Go :在Go中建设区块链
- Go :用不到 200 行 Go 语言写自己的区块链
- Java :用 Java 创建你的第一个区块链
- JavaScript:不到代码 1500 行的加密货币实现
- JavaScript :用 JavaScript 打造你自己的区块链
- JavaScript:学习和制作 JavaScript 区块链
- JavaScript:使用 JavaScript 创建区块链
- JavaScript:您启动自己的生产加密货币
- JavaScript:在 Node.js 中写区块链
- Kotlin:让我们在 Kotlin 中实现一种加密货币
- Python:通过制造一个来学习区块链
- Python:构建自己的区块链:Python
- Python : Python区块链实用介绍
- Python:让我们制造最小的区块链
- Ruby:逐步编程版)区块链(手稿书)
- Scala:制作一个简单的基础参与者的区块链
- TypeScript:Naivecoin:加密加密货币的教程
- TypeScript:NaivecoinStake:使用权益证明共识加密货币的教程
建立你自己的Bot
- Haskell:滚动你自己的IRC机器人
- Java :如何使用 Java 制作一个俄罗斯的 Twitter 机器人
- Node.js:在 Node.js 中使用 API.ai 创建一个简单的 Facebook Messenger AI 机器人
- Node.js:如何制作响应式电报机器人
- Node.js:创建一个 Discord 机器人
- Node.js : gifbot - 制作 GitHub 应用程序
- Node.js:使用 Web Speech API 和 Node.js 制造一个简单的人工智能聊天机器人
- Python:如何使用 Python 制造您的第一个 Slack 机器人
- Python:如何在 20 分钟内使用 Slack Events API 和 Django 使用 Python 制作 Slack Bot
- Python:制造一个 Reddit 机器人
- Python:如何制作Reddit机器人[视频]
- Python:如何使用 Python 创建 Telegram 机器人
- Python:在 Python 中使用 Tweepy 创建 Twitter 机器人
- Python:使用 Python 和 PRAW 创建 Reddit Bot [视频]
- R :用 R 制造一个加密货币交易机器人
- Rust : Rust、C 或任何其他语言的系列争霸机器人
建立你自己的Command-Line Tool
- Go :使用 Go 可视化你的本地 git 贡献
- Go:使用 Go 服装应用程序:lolcat
- Go :使用 Go 制造一个 cli 命令:cowsay
- Go : Go CLI 教程:fortune clone
- Nim :写一个方法来管理 dotfiles
建立你自己的Database
- C :让我们建立一个简单的数据库
- C++:实现键值存储
- C#:建立你自己的数据库
- Clojure:一个受考古启示的数据库
- Crystal:为什么要制造自己的 NoSQL 数据库
- JavaScript : Dagoba: 内存中的图形数据库
- Python:DBDB:狗床数据库
- Python :用 Python 编写你自己的微型 Redis
建立你自己的Docker
- C : 500 行代码中的 Linux 容器
- Go :自己的构建包100 去构建自己的构建包
- Go:在 Go 中从头开始制造容器[视频]
- Python:Linux 容器研讨会:从头开始重构 Docker
- Python:一个概念模仿Docker,用10% Python编写
- Shell : Docker 在大约 100 行 bash 中实现
建立你自己的Emulator / Virtual Machine
- C : C中的虚拟机
- C:写你自己的虚拟机
- C :写Game Boy拉,Cinoop
- C++:如何下载(CHIP-8解释器)
- C++:仿真教程(CHIP-8解释器)
- **C++**仿真教程(GameBoy:引导)
- C++:仿真教程(主系统仿真器)
- C++:从零开始的NES下载[视频]
- Common Lisp:Common Lisp中的CHIP-8
- JavaScript : JavaScript中的 GameBoy 模拟
- Python:仿真基础:你自己的芯片 8 仿真器/解释器
建立你自己的Front-end Framework / Library
- JavaScript:WTF 是 JSX(让我们制造一个 JSX 渲染器)
- JavaScript:制作自己的 React 的 DIY 指南
- JavaScript:从头开始制作 React [视频]
- JavaScript : Gooact: React 160 行 JavaScript
- JavaScript:反应内部
- JavaScript :通过制造自己的轻量级 React DOM 了解 React Reconciler 包的工作原理
- JavaScript:为自己制造一个 Redux
- JavaScript:让我们编写Redux!
- JavaScript:Redux:从头开始实现 Store [视频]
- JavaScript :用 200 行 JavaScript 为你打造自己的 AngularJS
- JavaScript :制作你自己的 AngularJS
- JavaScript:如何编写自己的虚拟 DOM
- JavaScript:使用组件(模板、状态)从头开始构建前端框架
- JavaScript:制造你自己的 React
- JavaScript:定制视频React 渲染器[]
建立你自己的Game
- C:手工英雄
- C :如何使用 C 编写 NES 游戏
- C: C语言的国际象棋引擎[视频]
- C : Let’s Make: Dangerous Dave [视频]
- C:学习C中的视频游戏编程 [视频]
- C :用C烧独献器[视频]
- C:用 C 编写 Rogue/Nethack RPG [视频]
- C :关于俄罗斯方块和重新实现
- C++:突破
- C++:开始游戏编程 v2.0
- **C++**于 C++ 的方块教程,独立于平台的游戏逻辑
- C++:在C++中的故事[视频]
- C++:知识故事[视频]
- **C++**从零开始的隐藏者
- C#:通过制作简单的RPG来学习C#
- C#:在 C# 中创建 Roguelike 游戏
- C#:制造一个 C#/WPF 角色扮演游戏
- 围棋:围棋游戏[视频]
- Java使用编写2D游戏引擎-完整课程[视频]
- Java:使用 LWJGL 3 进行 3D 游戏开发
- JavaScript:使用 Phaser 的 2D 突围游戏
- JavaScript:如何使用 Phaser 在 HTML5 中制作 Flappy Bird
- JavaScript:使用 React、Redux 和 SVG 开发游戏
- JavaScript自己:从头开始制造您的 8 球台球游戏[视频]
- JavaScript:如何制作你的第一个 Roguelike
- JavaScript:像程序员一样思考:如何使用 JavaScript、HTML 和 CSS 制作 Snake
- Lua:字节路径
- Python:使用 PyGame 开发游戏
- Python:使用 Python 和 Pygame 开发游戏[pdf]
- Python : Roguelike 堆栈更新
- Ruby :使用 Ruby 开发游戏
- 红宝石:红宝石蛇
- Rust : Rust历险记:一个基本的2D游戏
- Rust:Rust + tcod 中的 Roguelike 教程
建立你自己的Git
- Haskell:在 Haskell 中自下而上重新实现“git clone”
- JavaScript :小程序
- JavaScript :制造 GIT - 学习 GIT
- Python :一个 Git 客户端就其创建、提交并转发到 GitHub 上
- Python:给自己写一个Git!
- Ruby :在 Ruby 中重建 Git
建立你自己的Network Stack
建立你自己的Neural Network
- C#:神经网络 OCR
- F#:在 F# 中制造神经网络
- Go:使用Golang 观光器
- Go :如何用 Go 制造一个简单的人工神经网络
- Go :从头开始制造神经网络
- JavaScript / Java:神经网络 - 代码的本质[视频]
- JavaScript:给 JavaScript 语言学家的从零开始的神经网络第 1 部分(第 1 部分)
- Python:用 11 行 Python 编写的神经网络
- Python:从零开始实现神经网络
- Python:光学字符识别(OCR)
- Python:使用自动进行网络交通标志
- Python:在 Keras 中使用 LSTM 神经网络生成音乐
- Python简介:神经网络
建立你自己的Operating System
- 构成:编写一个微型x86引导加载程序
- 组件: Baking Pi – 操作系统开发
- C :从头开始为的计算机编译软件和硬件[简单视频]
- C:写:从 0 到 1
- C :关于操作系统开发的小书
- C :滚动你自己的玩具 UNIX 漫画
- C : Kernel 101 – 让我们写一个内核
- C : Kernel 201 – 让我们编写一个支持键盘和屏幕的内核
- C :从头开始为 ARM 构建一个最小的多任务内核
- C :如何从头开始创建操作系统
- C : Malloc 教程
- C :破解虚拟内存
- C :学习使用Linux内核和树莓派开发操作系统
- C :傻瓜操作系统开发
- C++:编写自己的操作系统[视频]
- C++:编写引导加载程序
- Rust:用 Rust 编写操作系统
建立你自己的Physics Engine
- C :电子游戏物理教程
- C++:Allen Chou 的游戏物理系列
- C++:如何创建自定义物理引擎
- C++:3D 物理引擎教程[视频]
- JavaScript:物理引擎如何工作
- JavaScript:使用空间分区的广泛相位碰撞检测
- JavaScript:为 JavaScript 游戏构建一个简单的 2D 物理引擎
建立你自己的Programming Language
- (any) : mal - 制作一个 Lisp
- 组装:琼斯福斯
- C : Baby 的第一个垃圾收集器
- C : Build Your Own Lisp:学习 C 并用 1000 行代码构建自己的编程语言
- C :用 C编写一个简单的垃圾收集器
- C :解释自身的 C 解释器。
- C:Jack Crenshaw 的“Let’s Build a Compiler”的 AC 和 x86 版本
- C:解释如何从头开始构建编译器的旅程
- C++:使用 Flex 编写自己的玩具编译器
- C++:如何创建编译器[视频]
- C++:万花筒:使用 LLVM 实现语言
- F#:理解解析器组合器
- Elixir:通过编写自己的编译器来揭开编译器的神秘面纱[视频]
- Go :超小型编译器
- Go: Go中的词法扫描[视频]
- Haskell:让我们构建一个编译器
- Haskell :给你写一个 Haskell
- Haskell:在 48 小时内为自己编写一个方案
- Haskell :给你写一个方案
- Java:制作解释器:制作编程语言的手册
- Java:创建 JVM 语言
- JavaScript:超微型编译器
- JavaScript:超级小解释器
- JavaScript :小 Lisp 解释器
- JavaScript :如何在 JavaScript 中实现编程语言
- OCaml:编写 C 编译器
- OCaml:编写 Lisp,系列
- Pascal:让我们构建一个编译器
- Python:用 Python 编写的 Python 解释器
- Python : lisp.py: 制作你自己的 Lisp 解释器
- Python:如何在 Python 中编写 Lisp 解释器
- Python:让我们构建一个简单的解释器
- Python:制作自己的简单解释型编程语言[视频]
- Racket : Beautiful Racket: 如何使用 Racket 制作自己的编程语言
- Ruby:从零开始的编译器
- Ruby:在 Ruby 中从头开始的 Markdown 编译器
- Rust:所以你想构建一个语言虚拟机
- Rust:用 Rust 学习解析器组合器
- Swift :使用 Swift 从头开始构建 LISP
- TypeScript:构建你自己的 WebAssembly 编译器
建立你自己的Regex Engine
- C:正则表达式匹配器
- C :正则表达式匹配可以简单快速
- JavaScript:用不到 40 行代码构建正则表达式引擎
- JavaScript:如何使用导数在函数式 JavaScript 中实现正则表达式
- JavaScript:实现正则表达式引擎
- Perl:正则表达式如何工作
- Scala:没有魔法:正则表达式
建立你自己的Search Engine
- CSS : CSS中的搜索引擎
- Python:使用 Redis 和 redis-py 构建搜索引擎
- Python:在 Python 中构建向量空间索引引擎
- Python:构建基于 Python 的搜索引擎[视频]
- Python:让文本搜索从反馈中学习
- Python:使用 TF-IDF 查找文本中的重要单词
建立你自己的Shell
- C :教程 - 用 C 编写一个 Shell
- C :让我们构建一个外壳!
- C :编写一个 UNIX Shell
- C :建立你自己的外壳
- Go :用 Go编写一个简单的 shell
- Rust:使用 Rust 构建自己的外壳
建立你自己的Template Engine
- JavaScript:仅 20 行代码的 JavaScript 模板引擎
- JavaScript :了解 JavaScript 微模板
- Python:方法:在 Python 中构建玩具模板引擎
- Python:模板引擎
- Ruby:如何用不到 30 行代码编写模板引擎
建立你自己的Text Editor
- C :建立你自己的文本编辑器
- C++:设计一个简单的文本编辑器
- Python:Python 教程:制作自己的文本编辑器[视频]
- Python:创建一个简单的 Python 文本编辑器!
- Ruby:使用 Rails 构建协作文本编辑器
- Rust : Hecto: 用 Rust 构建你自己的文本编辑器
建立你自己的Visual Recognition System
建立你自己的Voxel Engine
建立你自己的Web Server
- C#:从头开始编写 Web 服务器
- Node.js:让我们使用 NodeJS Streams 从头开始编写 Web 服务器
- Node.js:让我们构建表达
- PHP:用纯 PHP 编写网络服务器
- Python:一个简单的 Web 服务器
- Python:让我们构建一个 Web 服务器。
- Python:从头开始的 Web 应用程序
- Python :用 Python 从头开始构建一个基本的 HTTP 服务器
- Python:使用 Python 和 Flask 实现 RESTful Web API
- Ruby :在 Ruby 中从头开始构建一个简单的 websockets 服务器
未分类
- (任何):从 NAND 到俄罗斯方块:从第一原理构建现代计算机
- 合金:同源政策
- C :如何写一个不到 1000 行的视频播放器
- C :学习如何用 C 编写哈希表
- C:终端仿真器的基础知识
- C:编写系统调用
- C : Sol - 从头开始的 MQTT 代理
- C++:200 美元打造你自己的 VR 头显
- C++:X 窗口管理器如何工作以及如何编写一个
- C++:编写 Linux 调试器
- C++:如何制作 64k 简介
- C# : C# Networking: 创建 TCP 聊天服务器、TCP 游戏、UDP Pong 等等
- C#:在 C# 和 GLSL 中从头开始加载和渲染 3D 骨骼动画
- Clojure:构建拼写检查器
- 去吧,让我们创建一个简单的负载均衡器
- Java:如何构建 Android Reddit 应用程序[视频]
- JavaScript :构建你自己的模块打包器 - Minipack
- JavaScript :通过从头开始构建 Promise 来学习 JavaScript Promise
- JavaScript:从头开始实现 Promise(TDD 方式)
- JavaScript:在 JavaScript中实现自己的 call()、apply() 和 bind() 方法
- JavaScript : JavaScript 算法和数据结构
- JavaScript:如何制作进化的俄罗斯方块 AI [视频]
- JavaScript:使用 React Native 构建一个叫车应用程序
- Kotlin:构建你自己的缓存
- Nim :编写 Redis 协议解析器
- Nim:编写构建系统
- Nim :编写 MiniTest 框架
- Nim :编写 DMIDecode 解析器
- Nim :编写 INI 解析器
- Nim:编写链接检查器
- Nim :编写 URL 缩短服务
- Node.js :用 Node.js 用 40 行代码构建一个静态站点生成器
- Node.js:在 Node.js 中从零开始构建一个简单的单点登录(SSO)服务器和解决方案。
- Node.js:如何使用 Node 创建一个真实的 Node CLI 应用程序
- PHP :在 PHP 中从头开始编写自己的 MVC
- PHP :制作你自己的博客
- PHP:没有框架的现代 PHP
- PHP :用 PHP 编写一个 Web 搜索引擎
- Python:构建深度学习库[视频]
- Python:如何在 5 分钟内构建一个出色的移动文档扫描仪
- Python:持续集成系统
- Python: Python中的推荐系统:初学者教程
- Python:使用 Scikit-learn 编写垃圾短信检测器
- Python : Python中一个简单的基于内容的推荐引擎
- Python:在 Python 中使用 LSTM 进行股票市场预测
- Python:使用 Luby 变换代码构建您自己的纠错喷泉代码
- Python:使用 Tensorflow 构建简单的生成对抗网络 (GAN)
- Python:通过编码学习机器学习算法:决策树
- Python:JSON 解码算法
- Ruby:现实世界中的计步器
- Ruby:使用 Ruby 创建 Linux 桌面应用程序
- Rust:让我们构建一个浏览器引擎
- Rust:在 Rust 中制造 DNS 服务器
- Rust:从头开始可扩展的聊天服务
- TypeScript : Tiny Package Manager: 了解 npm 或 Yarn 的工作原理
贡献
和许可
这个存储库是许多作品贡献者的作品。它由Daniel Stefanovic的创作,现在由CodeCrafters, Inc.维护。在法律的范围内,CodeCrafters, Inc.允许放弃对本的所有版权和相关或邻近权利。
评论区