这个项目库汇集了一系列详细的教程,逐步教你如何从头构建我们喜爱的各类技术。
我无法创造的东西,我就无法理解 —— 理查德·费曼
这是一个学习的好方式。
🌍 跨境出海技术栈
🤖 AI搞钱原则手册
🛠️ 构建你自己的X
- C++:光线追踪入门:创建3D图像的简单方法
- C++:OpenGL工作原理:500行代码实现软件渲染
- C++:Wolfenstein 3D的射线投射引擎
- C++:基于物理的渲染:理论与实现
- C++:周末学习光线追踪
- C++:光栅化:一个实用实现
- C# / TypeScript / JavaScript:从零开始编写3D软件引擎
- Java / JavaScript:构建你自己的3D渲染器
- Java:如何使用纯Java创建简单的3D渲染引擎
- JavaScript / Pseudocode:从头开始学习计算机图形学
- Python:3D建模器
- C#:增强现实应用教程(适合初学者,使用Vuforia和Unity 3D) [视频]
- C#:Unity ARCore教程 [视频]
- C#:Unity中实现AR门户教程 [视频]
- C#:在Unity ARCore中创建增强现实龙 [视频]
- C#:ARKit教程:进入“颠倒世界” [视频]
- Python:使用Python和OpenCV实现增强现实
- C#:从头开始编写BitTorrent客户端
- Go:从头构建BitTorrent客户端
- Nim:编写Bencode解析器
- Node.js:编写自己的BitTorrent客户端
- Python:Python 3.5实现BitTorrent客户端
- ATS:函数式区块链
- C#:用C#编程区块链
- Crystal:使用Crystal编写自己的区块链和PoW算法
- Go:在Go中构建区块链
- Go:用不到200行代码在Go中实现区块链
- Java:用Java构建你的第一个区块链
- JavaScript:用JavaScript构建加密货币,代码少于1500行
- JavaScript:用JavaScript构建自己的区块链
- JavaScript:学习并构建JavaScript区块链
- JavaScript:用JavaScript创建区块链
- JavaScript:如何推出自己的生产级加密货币
- JavaScript:用Node.js编写区块链
- Kotlin:在Kotlin中实现加密货币
- Python:通过构建学习区块链
- Python:用Python构建你自己的区块链教程
- Python:Python中区块链的实用入门
- Python:构建最小的区块链
- Ruby:逐步编程区块链
- Scala:如何构建一个简单的基于Actor的区块链
- TypeScript:Naivecoin教程:构建加密货币
- TypeScript:NaivecoinStake教程:基于权益证明的加密货币构建
- Rust:用Rust和Substrate构建区块链
- Haskell:自己动手编写IRC机器人
- Node.js:用API.ai在Node.js中创建Facebook Messenger AI机器人
- Node.js:制作一个响应式的Telegram机器人
- Node.js:创建Discord机器人
- Node.js:构建一个GitHub应用程序 - gifbot
- Node.js:用Web Speech API和Node.js构建简单AI聊天机器人
- Python:如何用Python构建Slack机器人
- Python:用Slack Events API和Django快速构建Slack机器人
- Python:创建Reddit机器人
- Python:如何制作Reddit机器人 [视频]
- Python:如何用Python创建Telegram机器人
- Python:用Tweepy在Python中创建Twitter机器人
- Python:用Python和PRAW创建Reddit机器人 [视频]
- R:用R编写加密货币交易机器人
- Rust:在Rust中为星际争霸编写一个机器人
- Go:用Go语言可视化你的本地Git贡献
- Go:用Go构建命令行应用:lolcat
- Go:用Go构建命令行应用:cowsay
- Go:Go命令行教程:fortune clone
- Nim:用Nim编写一个管理dotfiles的替代工具
- Node.js:用JavaScript创建一个CLI工具
- Rust:在Rust中编写命令行应用
- Rust:用Rust编写一个命令行工具
- C:从头开始构建简单数据库
- C++:从零构建自己的Redis
- C#:构建你自己的数据库
- Clojure:受考古学启发的数据库
- Crystal:为什么你应该自己构建NoSQL数据库
- Go:从头开始构建数据库:持久化、索引、并发
- Go:从零构建自己的Redis
- JavaScript:Dagoba:内存图数据库
- Python:DBDB:狗床数据库
- Python:用Python编写自己的小型Redis
- Ruby:在Ruby中构建快速持久的键值存储
- Rust:构建你自己的Redis客户端和服务器
- C:500行代码实现Linux容器
- Go:用不到100行Go代码构建容器
- Go:从零开始构建Go容器 [视频]
- Python:Linux容器研讨会:从零重建Docker
- Python:完全用Python编写的Docker模拟
- Shell:100行bash实现Docker
- C:自己实现字节码解释器
- 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:模拟基础:编写CHIP-8模拟器/解释器
- Rust:0dmg:通过构建Game Boy模拟器学习Rust
- JavaScript:什么是JSX(构建一个JSX渲染器)
- JavaScript:DIY指南:构建你自己的React
- JavaScript:从头构建React [视频]
- JavaScript:Gooact:用160行JavaScript实现React
- JavaScript:了解React的Reconciler包原理,通过自己构建一个轻量级React DOM
- JavaScript:自己构建Redux
- JavaScript:让我们编写Redux!
- JavaScript:从头实现Redux中的Store [视频]
- JavaScript:用200行JavaScript实现简化版AngularJS
- JavaScript:自己实现AngularJS
- JavaScript:如何自己编写一个虚拟DOM
- JavaScript:从头开始构建一个前端框架,包含组件(模板、状态管理、虚拟DOM)
- JavaScript:自己构建React
- JavaScript:构建一个自定义的React渲染器 [视频]
- C:Handmade Hero项目
- C:如何用C语言编写NES游戏
- C:用C语言编写象棋引擎 [视频]
- C:让我们制作《危险戴夫》 [视频]
- C++:从头构建打砖块游戏
- Java:使用Java编写一个2D游戏引擎(适合初学者) [视频]
- Python:用PyGame开发游戏
- JavaScript:用Phaser构建2D打砖块游戏
- Rust:Rust游戏编程冒险:一个简单的2D游戏
- Ruby:用Ruby开发游戏
- Haskell:用Haskell从零开始实现“git clone”
- JavaScript:Gitlet
- Python:实现一个简单的Git客户端,可以创建仓库、提交和推送到GitHub
- Ruby:用Ruby重建Git
- C#:神经网络OCR识别
- F#:在F#中构建神经网络
- Go:用Golang构建多层感知机
- Go:如何用Go构建简单的人工神经网络
- JavaScript:JavaScript神经网络教程
- Python:用11行Python代码实现神经网络
- Python:从零构建神经网络
- Python:使用卷积网络分类交通标志
- Python:使用LSTM神经网络生成音乐
- Assembly:编写Tiny x86引导程序
- Assembly:树莓派操作系统开发教程
- C:构建简单计算机的软件和硬件栈 [视频]
- C:从零开始开发操作系统
- C++:编写自己的操作系统 [视频]
- Rust:在Rust中编写操作系统
- C:视频游戏物理教程
- C++:自定义物理引擎教程
- JavaScript:物理引擎的工作原理
- JavaScript:使用空间分割进行宽相位碰撞检测
- JavaScript:构建简单的2D物理引擎用于JavaScript游戏
- (任意语言):mal - 制作一个 Lisp
- 汇编:Jonesforth
- C:新手的第一个垃圾收集器
- C:构建你自己的Lisp:通过学习C构建一个编程语言,代码少于1000行
- C:在C中编写一个简单的垃圾收集器
- C:自己写一个解释器,它能解释自身
- C:Jack Crenshaw的"C & x86编译器构建教程"
- C:从零开始构建编译器之旅
- C++:使用Flex编写自己的玩具编译器
- C++:如何创建一个编译器 [视频]
- C++:Kaleidoscope:使用LLVM实现一种语言
- F#:理解解析器组合子
- Elixir:通过自己编写一个编译器来解密编译器原理 [视频]
- Go:超级迷你编译器
- Go:Go语言中的词法扫描 [视频]
- Haskell:让我们构建一个编译器
- Haskell:写一个Haskell语言解释器
- Haskell:48小时内写一个Scheme解释器
- Haskell:写一个Scheme语言
- Java:Crafting interpreters:编程语言构建手册
- Java:创建JVM语言
- JavaScript:超级迷你编译器
- JavaScript:超级迷你解释器
- JavaScript:小型Lisp解释器
- JavaScript:在JavaScript中实现一个编程语言
- JavaScript:让我们写一个Lisp
- OCaml:编写一个C编译器
- OCaml:编写一个Lisp系列
- Pascal:让我们构建一个编译器
- Python:用Python写一个Python解释器
- Python:lisp.py:制作你自己的Lisp解释器
- Python:如何在Python中编写一个Lisp解释器
- Python:让我们构建一个简单的解释器
- Python:制作你自己的简单解释型编程语言 [视频]
- Python:从源代码到机器代码:从头构建编译器
- Racket:优雅的Racket:如何用Racket构建自己的编程语言
- Ruby:从零开始的编译器
- Ruby:从零开始在Ruby中编写Markdown编译器
- Rust:所以你想要构建一个语言虚拟机
- Rust:用Rust学习解析器组合子
- Swift:从零构建一个LISP,用Swift
- TypeScript:构建你自己的WebAssembly编译器
- C:正则表达式匹配器
- C:正则表达式匹配可以简单且快速
- Go:如何从头编写一个正则表达式引擎
- JavaScript:不到40行代码实现一个正则表达式引擎
- JavaScript:在函数式JavaScript中实现正则表达式
- JavaScript:实现一个正则表达式引擎
- Perl:正则表达式的工作原理
- Python:构建你自己的正则表达式引擎:回溯、NFA、DFA
- Scala:去掉魔法:正则表达式
- CSS:用CSS实现搜索引擎
- Python:使用Redis和redis-py构建搜索引擎
- Python:在Python中构建向量空间索引引擎
- Python:基于Python的搜索引擎构建 [视频]
- Python:让文本搜索从反馈中学习
- Python:使用TF-IDF在文本中查找重要词汇
- C:教程 - 用C写一个Shell
- C:让我们来构建一个Shell!
- C:编写一个UNIX Shell
- C:构建你自己的Shell
- C:用C写一个Shell
- Go:用Go编写一个简单的Shell
- Rust:用Rust构建你自己的Shell
- JavaScript:20行代码实现JavaScript模板引擎
- JavaScript:理解JavaScript微型模板引擎
- Python:方法:在Python中构建一个简单模板引擎
- Python:一个模板引擎
- Ruby:用不到30行代码编写模板引擎
- C:构建你自己的文本编辑器
- C++:设计一个简单的文本编辑器
- Python:Python教程:制作自己的文本编辑器 [视频]
- Python:创建一个简单的Python文本编辑器
- Ruby:使用Rails构建一个协作式文本编辑器
- Rust:Hecto:用Rust构建你自己的文本编辑器
- C#:从零开始编写Web服务器
- Node.js:用JavaScript从头构建一个Web服务器
- Node.js:使用NodeJS流构建Web服务器
- Node.js:构建简易版Express框架
- PHP:用纯PHP编写一个Web服务器
- Python:简单的Web服务器
- Python:让我们构建一个Web服务器
- Python:从零构建基本HTTP服务器
- Python:使用Python & Flask实现RESTful Web API
- Ruby:从头构建一个简单的WebSocket服务器
- (任意):从NAND到Tetris:构建现代计算机基础
- Alloy:同源策略解析
- C:如何用不到1000行代码写视频播放器
- C:学习在C语言中编写哈希表
- C:终端模拟器的基本原理
- C:编写系统调用
- C:Sol - 从头开始实现MQTT代理
- C++:打造仅需200美元的VR头显
- C++:理解X窗口管理器的工作原理并自行编写
- C++:编写Linux调试器
- C++:64k intro是如何制作的
- C++:构建自己的游戏引擎
- C#:C#网络开发:构建TCP聊天服务器、游戏及UDP乒乓等
- C#:从零实现3D骨骼动画加载与渲染
- Clojure:构建拼写检查器
- Go:用Golang实现100行终端模拟器
- Go:实现简单的负载均衡器
- Go:从零开始实现视频编码
- Java:构建安卓Reddit应用 [视频]
- JavaScript:构建自己的模块打包器 - Minipack
- JavaScript:通过实现Promise从零学习Promise
- JavaScript:从零实现JavaScript的call、apply和bind方法
- JavaScript:JavaScript算法与数据结构
- JavaScript:使用React Native构建打车应用
- JavaScript:在10分钟内创建你的AdBlock
- Kotlin:构建自己的缓存系统
- Lua:从零构建内容分发网络(CDN)以了解其工作原理
- Nim:编写Redis协议解析器
- Node.js:用40行代码构建静态网站生成器
- PHP:从头编写MVC框架
- Python:构建深度学习库 [视频]
- Python:5分钟内实现移动文档扫描器
- Python:实现简单生成对抗网络(GAN)
- Ruby:构建现实世界的计步器应用
- Rust:在Rust中构建DNS服务器
- TypeScript:简易包管理器:了解npm或Yarn的工作原理
这些教程覆盖了各类编程语言和框架,让你在不同技术领域中都能找到动手实践的机会,帮助你深入理解每个系统的工作原理。