🤓 构建你自己的(在此处插入技术)
目录
- 3D渲染器
- 增强现实
- BitTorrent客户端
- 区块链/加密货币
- 机器人
- 命令行工具
- 数据库
- Docker
- 模拟器/虚拟机
- 前端框架/库
- 游戏
- Git
- 网络堆栈
- 神经网络
- 操作系统
- 物理引擎
- 编程语言
- 正则表达式引擎
- 搜索引擎
- 壳
- 模板引擎
- 文本编辑器
- 视觉识别系统
- 体素引擎
- 网络搜索引擎
- Web 服务器
- 未分类
教程
构建自己的3D Renderer
- C++:光线追踪简介:创建 3D 图像的简单方法
- C++:OpenGL 的工作原理:500 行代码实现软件渲染
- C++:Wolfenstein 3D 的光线投射引擎
- 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#:Windows 混合现实学院[视频]
- C#:如何使用 Unity ARCore [视频]
- C#:基于 Unity 的 AR 门户教程[视频]
- C#:如何在 Unity ARCore 中的增强现实中创建龙[视频]
- C#:如何增强现实 AR 教程:ARKit 颠倒世界门户[视频]
- Python:使用 Python 和 OpenCV 实现增强现实
构建自己的BitTorrent Client
- C#:用 C# 从头构建 BitTorrent 客户端
- Nim:编写 Bencode 解析器
- Node.js:编写你自己的 bittorrent 客户端
- Python:Python 3.5 中的 BitTorrent 客户端
构建自己的Blockchain / Cryptocurrency
- ATS:功能性区块链
- C#:用 C# 编写区块链程序
- Crystal:使用 Crystal 编写自己的区块链和 PoW 算法
- Go:用 Go 构建区块链
- Go:用不到 200 行 Go 代码编写你自己的区块链
- Go:用 Go 构建一个简单的区块链
- Java:使用 Java 创建您的第一个区块链
- JavaScript:不到 1500 行代码的加密货币实现
- JavaScript:用 JavaScript 构建你自己的区块链
- JavaScript:学习并构建 JavaScript 区块链
- JavaScript:使用 JavaScript 创建区块链[视频]
- JavaScript:如何推出你自己的生产级加密货币
- Kotlin:让我们用 Kotlin 实现一种加密货币
- Python:通过构建区块链来学习
- Python:构建你自己的区块链:Python 教程
- Python:使用 Python 进行区块链实用介绍
- Python:让我们构建最小的区块链
- Ruby:区块链编程分步指南(手稿书版)
- Scala:如何构建一个简单的基于参与者的区块链
- TypeScript:Naivecoin:构建加密货币的教程
- TypeScript:NaivecoinStake:基于权益证明共识机制构建加密货币的教程
构建自己的Bot
- Haskell:打造你自己的 IRC 机器人
- Java:如何用 Java 制作一个吓人的俄罗斯 Twitter 机器人
- Node.js:使用 API.ai 在 Node.js 中创建一个简单的 Facebook Messenger AI 机器人
- Node.js:如何制作一个响应式电报机器人
- Node.js:创建 Discord 机器人
- Node.js:gifbot - 构建 GitHub 应用程序
- Node.js:使用 Web Speech API 和 Node.js 构建一个简单的 AI 聊天机器人
- Python:聊天机器人基础知识:用 Python 编写机器人的交互式指南
- Python:如何使用 Python 构建你的第一个 Slack 机器人
- Python:如何在 20 分钟内使用 Slack Events API 和 Django 使用 Python 构建 Slack Bot
- Python:构建 Reddit 机器人
- Python:如何制作 Reddit 机器人[视频]
- Python:如何使用 Python 创建 Telegram 机器人
- Python:使用 Tweepy 在 Python 中创建 Twitter 机器人
- Python:使用 Python 和 PRAW 创建 Reddit 机器人[视频]
- R:用 R 构建加密货币交易机器人
- Rust:使用 Rust、C 或任何其他语言编写的星际争霸机器人
构建自己的Command-Line Tool
- C:从头重写 cat 命令[视频]
- Go:使用 Go 可视化你的本地 git 贡献
- Go:使用 Go 构建命令行应用程序:lolcat
- Go:使用 Go 构建 cli 命令:cowsay
- Go:Go CLI 教程:fortune 克隆
- Nim:编写一个 stow 替代方案来管理点文件
构建自己的Database
- C:让我们建立一个简单的数据库
- C++:实现键值存储
- C#:构建您自己的数据库
- Clojure:受考古学启发的数据库
- Crystal:为什么你应该构建自己的 NoSQL 数据库
- JavaScript:Dagoba:内存图形数据库
- Python:DBDB:狗床数据库
- Python:用 Python 编写你自己的微型 Redis
构建自己的Docker
- C:500 行代码实现 Linux 容器
- C++:创建你自己的容器
- Go:用 Go 从头构建容器[视频]
- Python:Linux 容器研讨会:从头开始重建 Docker
- Python:Docker 的概念验证模仿,100% 用 Python 编写
- Shell:Docker 用大约 100 行 bash 实现
构建自己的Emulator / Virtual Machine
- C:C 语言虚拟机
- C:编写你自己的虚拟机
- C:编写 Game Boy 模拟器 Cinoop
- C++:如何编写模拟器(CHIP-8解释器)
- C++:仿真教程(CHIP-8 解释器)
- C++:模拟教程(GameBoy 模拟器)
- C++:仿真教程(Master System 模拟器)
- Common Lisp:Common Lisp 中的 CHIP-8
- JavaScript:JavaScript 中的 GameBoy 模拟
- Python:仿真基础:编写自己的 Chip 8 仿真器/解释器
构建自己的Front-end Framework / Library
- JavaScript:JSX 到底是什么(让我们构建一个 JSX 渲染器)
- JavaScript:DIY 指南,教你如何构建自己的 React
- JavaScript:React 逆向工程[视频]
- JavaScript:从头开始构建 React [视频]
- JavaScript:通过五个简单的步骤构建你自己的 React 克隆
- JavaScript:Gooact:用 160 行 JavaScript 实现 React
- JavaScript:React 内部机制
- JavaScript:通过构建自己的轻量级 React DOM 来了解 React Reconciler 包的工作原理
- JavaScript:构建你自己的 Redux
- JavaScript:让我们编写 Redux!
- JavaScript:Redux:从头开始实现存储[视频]
- JavaScript:用 200 行 JavaScript 代码构建你自己的简化版 AngularJS
- JavaScript:创建你自己的 AngularJS
- JavaScript:如何编写自己的虚拟 DOM
- JavaScript:从头开始构建前端框架,使用组件(模板、状态、VDOM)
构建自己的Game
- C:手工英雄
- C:如何用 C 语言编写 NES 游戏
- C:C 语言国际象棋引擎[视频]
- C:让我们一起制作:危险戴夫[视频]
- C 语言:学习 C 语言视频游戏编程[视频]
- C语言:用C语言编写数独求解器[视频]
- C语言:用C语言编写Rogue/Nethack RPG游戏[视频]
- C:Brickout 克隆教程
- C :用 C 语言、GTK 和 OpenGL 制作的基本入侵者游戏教程
- C : Astroids 教程用 C 编写,使用 GTK 和 OpenGL 以及 DashGL 进行矩阵操作
- C:关于俄罗斯方块及其重新实现
- C++:突破
- C++:游戏编程入门 v2.0
- C++:C++ 平台独立的俄罗斯方块教程,专注于游戏逻辑,适合初学者
- C++:用 C++ 重制 Cavestory [视频]
- C++:重建洞穴故事[视频]
- C++:从零开始的太空侵略者
- C#:通过构建简单的 RPG 来学习 C#
- C#:用 C# 创建 Roguelike 游戏
- C#:构建 C#/WPF RPG
- 围棋:围棋游戏[视频]
- Java:使用 LWJGL 3 进行 3D 游戏开发
- JavaScript:使用 Phaser 的 2D 打砖块游戏
- JavaScript:如何使用 Phaser 在 HTML5 中制作 Flappy Bird
- JavaScript:使用 React、Redux 和 SVG 开发游戏
- JavaScript:从头开始构建你自己的 8 球台球游戏[视频]
- JavaScript:如何制作你的第一个 Roguelike 游戏
- JavaScript:像程序员一样思考:如何仅使用 JavaScript、HTML 和 CSS 构建贪吃蛇
- Lua:字节路径
- Python:使用 PyGame 开发游戏
- Python:使用 Python 和 Pygame 制作游戏[pdf]
- Python:完整的 Roguelike 教程[视频]
- Python:Roguelike 教程修订版
- Ruby:使用 Ruby 开发游戏
- 红宝石:红宝石蛇
- Rust:Rust 历险记:一款基础 2D 游戏
- Rust:Rust + tcod 的 Roguelike 教程
构建自己的Git
- Haskell:自下而上地在 Haskell 中重新实现“git clone”
- JavaScript:Gitlet
- JavaScript:构建 GIT - 学习 GIT
- Python:足以作为 Git 客户端来创建 repo、提交并将自身推送到 GitHub
- Ruby:在 Ruby 中重建 Git
构建自己的Network Stack
构建自己的Neural Network
- C#:神经网络OCR
- F#:在 F# 中构建神经网络
- Go:使用 Golang 构建多层感知器
- Go:如何用 Go 构建一个简单的人工神经网络
- Go:用 Go 从头开始构建神经网络
- JavaScript / Java:神经网络 - 代码的本质[视频]
- JavaScript:通过 JavaScript 实现神经网络的示例
- JavaScript:面向 JavaScript 语言学家的神经网络(第一部分 - 感知器)
- Python:11 行 Python 代码实现神经网络
- Python:从头开始实现神经网络
- Python:光学字符识别(OCR)
- Python:使用卷积网络进行交通标志分类
- Python:使用 Keras 中的 LSTM 神经网络生成音乐
构建自己的Operating System
- 汇编:编写微型 x86 引导加载程序
- 汇编:Baking Pi – 操作系统开发
- C:从零开始构建简单计算机的软件和硬件堆栈[视频]
- C:操作系统:从 0 到 1
- C:关于操作系统开发的小册子
- C:制作你自己的 UNIX 克隆操作系统
- C:内核 101 – 让我们编写一个内核
- C:内核 201 – 让我们编写一个支持键盘和屏幕的内核
- C:从头开始为 ARM 构建一个最小的多任务内核
- C:如何从头开始创建操作系统
- C:Malloc 教程
- C:破解虚拟内存
- C:学习使用 Linux 内核和 Raspberry Pi 进行操作系统开发
- 《C:操作系统开发入门》
- C++:编写你自己的操作系统[视频]
- C++:编写引导加载程序
- Rust:用 Rust 编写操作系统
构建自己的Physics Engine
- C:视频游戏物理教程
- C++:Allen Chou 的游戏物理系列
- C++:如何创建自定义物理引擎
- C++:Glenn Fiedler 的游戏物理系列
- C++:3D 物理引擎教程[视频]
- C#:TowerFall 物理
- JavaScript:用 JavaScript 构建你自己的基本物理引擎
- JavaScript:物理引擎的工作原理
- JavaScript:使用空间分区进行宽相碰撞检测
- JavaScript:为 JavaScript 游戏构建一个简单的 2D 物理引擎
构建自己的Programming Language
- (任何):mal - Make a Lisp
- 大会:琼斯福斯
- C:宝宝的第一个垃圾收集器
- C:构建你自己的 Lisp:学习 C 并用 1000 行代码构建你自己的编程语言
- C:用 C 语言编写一个简单的垃圾收集器
- C:自我解释的 C 解释器。
- C : Jack Crenshaw 编写的《让我们构建一个编译器》的 AC 和 x86 版本
- C++:使用 Flex 编写自己的玩具编译器
- C++:如何创建编译器[视频]
- C++:万花筒:使用 LLVM 实现语言
- F#:理解解析器组合器
- Elixir:通过编写自己的编译器来揭开编译器的神秘面纱[视频]
- Go:超微型编译器
- Go:Go 中的词法扫描[视频]
- Haskell:让我们构建一个编译器
- Haskell:为你编写一个 Haskell
- Haskell:48 小时内自己写一个 Scheme
- Haskell:为你写一个方案
- Java:制作解释器:编程语言制作手册
- Java:创建JVM语言
- JavaScript:超级微型编译器
- JavaScript:超小型解释器
- JavaScript:Little Lisp 解释器
- JavaScript:如何用 JavaScript 实现编程语言
- OCaml:编写 C 编译器
- OCaml:编写 Lisp,系列
- Pascal:让我们构建一个编译器
- Python:用 Python 编写的 Python 解释器
- Python:lisp.py:制作你自己的 Lisp 解释器
- Python:基于迭代器的简单解析
- Python:Python 中的简单自上而下解析
- Python:如何用 Python 编写 Lisp 解释器
- Python:让我们构建一个简单的解释器
- Python:创建你自己的简单解释型编程语言[视频]
- Racket:美丽的 Racket:如何使用 Racket 创建自己的编程语言
- Ruby:从零开始的编译器
- Ruby:用 Ruby 从头开始编写 Markdown 编译器
- Rust:所以你想构建一个语言虚拟机
- Swift:使用 Swift 从头构建 LISP
构建自己的Regex Engine
- C:正则表达式匹配器
- C:正则表达式匹配可以简单而快速
- JavaScript:用不到 40 行代码构建正则表达式引擎
- 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:让我们建立一个shell!
- C:编写 UNIX Shell
- C:构建你自己的 Shell
- Go:用 Go 编写一个简单的 shell
- Ruby:Ruby 中的 Unix Shell
- Rust:使用 Rust 构建你自己的 Shell
构建自己的Template Engine
- JavaScript:仅用 20 行代码实现 JavaScript 模板引擎
- JavaScript:理解 JavaScript 微模板
- Python:方法:用 Python 构建一个玩具模板引擎
- Python:模板引擎
- Ruby:如何用少于 30 行代码编写模板引擎
构建自己的Text Editor
- C:构建你自己的文本编辑器
- C++:设计一个简单的文本编辑器
- Python:Python 教程:创建你自己的文本编辑器[视频]
- Python:创建一个简单的 Python 文本编辑器!
- Ruby:使用 Rails 构建协作文本编辑器
构建自己的Visual Recognition System
构建自己的Voxel Engine
构建自己的Web Search Engine
构建自己的Web Server
- C#:从头开始编写 Web 服务器
- Node.js:让我们使用 NodeJS Streams 从头开始编写一个 Web 服务器
- Node.js:lets-build-express
- PHP:用纯 PHP 编写 Web 服务器
- Python:一个简单的Web服务器
- Python:让我们构建一个 Web 服务器。
- Python:从零开始的 Web 应用程序
- Python:用 Python 从头构建一个基本的 HTTP 服务器
- Python:使用 Python 和 Flask 实现 RESTful Web API
- Ruby:用 Ruby 从头构建一个简单的 websockets 服务器
未分类
- (任何):从 NAND 到俄罗斯方块:从基本原理构建现代计算机
- Alloy:同源策略
- C:如何用不到 1000 行代码编写视频播放器
- C:学习如何用 C 语言编写哈希表
- C:编写 SVG 库
- C:终端仿真器的基础知识
- C:编写系统调用
- C : Sol - 从零开始的 MQTT 代理
- C++:花 100 美元打造自己的 VR 耳机
- C++:X Window 管理器如何工作以及如何编写
- C++:编写 Linux 调试器
- C++:如何制作 64k 简介
- C#:C# 网络:创建 TCP 聊天服务器、TCP 游戏、UDP Pong 等
- C#:使用 C# 和 GLSL 从头开始加载和渲染 3D 骨骼动画
- Clojure:构建拼写检查器
- Java:如何构建 Android Reddit 应用程序[视频]
- JavaScript:构建你自己的模块打包器 - Minipack
- JavaScript:通过从头开始构建 Promise 来学习 JavaScript Promise
- JavaScript:从头开始实现承诺(TDD 方式)
- JavaScript:在 JavaScript 中实现自己的 call()、apply() 和 bind() 方法
- JavaScript:JavaScript 算法和数据结构
- JavaScript:如何制作进化的俄罗斯方块人工智能[视频]
- JavaScript:仅使用 HTML 和 JavaScript 构建简单的 URL 缩短器
- JavaScript:使用 React Native 构建打车应用
- Kotlin:构建你自己的缓存
- Nim:编写 Redis 协议解析器
- Nim:编写构建系统
- Nim:编写迷你测试框架
- 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
- Python:构建深度学习库[视频]
- Python:如何在 5 分钟内构建一个超棒的移动文档扫描仪
- Python:持续集成系统
- Python:Python 中的推荐系统:初学者教程
- Python:使用 Scikit-learn 编写短信垃圾检测器
- Python:一个简单的基于内容的推荐引擎
- Python:使用 Python 中的 LSTM 进行股市预测
- Python:使用 Luby 变换代码构建自己的纠错喷泉代码
- Python:使用 Tensorflow 构建一个简单的生成对抗网络(GAN)
- Python:通过编码学习机器学习算法:决策树
- Python:JSON解码算法
- Ruby:现实世界中的计步器
- Ruby:使用 Ruby 创建 Linux 桌面应用程序
- Rust:让我们构建一个浏览器引擎
- Rust:用 Rust 构建 DNS 服务器
- Rust:从头开始编写可扩展的聊天服务
- TypeScript:制作你自己的 GraphQL 指标仪表板
- TypeScript:微型包管理器:了解 npm 或 Yarn 的工作原理
如何贡献
- 欢迎投稿:提交教程
在 Github 上关注我:www.github.com/rubiin
- 通过留下评论和“反应”来帮助我审查待处理的提交