基于项目的学习
这是一个编程教程列表,旨在帮助有志的软件开发者从零开始构建应用程序。这些教程按主要编程语言分类,可能涉及多种技术和语言。
目录
- C#
 - C/C++
 - Clojure
 - Dart
 - Elixir
 - Erlang
 - F#
 - Go
 - Haskell
 - HTML/CSS
 - Java
 - JavaScript
 - Kotlin
 - Lua
 - OCaml
 - PHP
 - Python
 - R
 - Ruby
 - Rust
 - Scala
 - Swift
 - 其他资源
 
C/C++:
- 构建一个解释器(第14章起用C编写)
 - 内存分配器101 - 编写一个简单的内存分配器
 - 用C编写一个Shell
 - 编写一个FUSE文件系统
 - 构建自己的文本编辑器
 - 构建自己的Lisp
 - 如何用C编写NES游戏
 - 从零开始编写操作系统
 - 如何从零开始创建操作系统
 - 构建一个CHIP-8模拟器
 - 用C++和SDL开始游戏编程
 - 实现一个键值存储
 - 小型3D图形项目
 - 用C++编写一个最小的x86-64 JIT编译器
 - 为C++构建一个实时代码重载库
 - 用C编写一个哈希表
 - 让我们构建一个简单的数据库
 - 让我们编写一个内核
 - 用C编写一个引导加载程序
 - 500行代码中的Linux容器
 - 编写自己的虚拟机
 - 学习KVM - 实现自己的Linux内核
 - 用C/C++构建自己的Redis
 - 编写一个C编译器
 - 用LLVM实现一种语言
 - Meta Crush Saga:一个C++17编译时游戏
 - 高性能矩阵乘法
 - 从零开始制作太空入侵者
 - C++平台独立的俄罗斯方块教程
 - 编写Linux调试器
 - 让我们编写一个编译器
 
网络编程
- 让我们编写一个TCP/IP栈
 - 编程并发服务器
 - 从零开始的MQTT代理
 
OpenGL:
- 用C++和OpenGL创建2D打砖块游戏克隆
 - 手工英雄
 - 如何用C++/OpenGL制作Minecraft(视频)
 
C#:
- 通过构建简单的RPG游戏学习C#
 - 用C#创建一个Rogue-like游戏
 - 用C#和Xamarin创建一个空白应用程序(进行中)
 - 用Xamarin和Visual Studio构建iOS照片库应用程序
 - 构建CoreWiki 这是一个完全用C#、ASP.NET Core和Razor Pages编写的Wiki风格内容管理系统。你可以在这里找到源代码。
 
Clojure:
- 用Clojure构建Twitter机器人
 - 构建拼写检查器
 - 用Clojure和Atlassian Connect构建JIRA集成
 - 用Clojure进行原型设计
 - 用ClojureScript制作俄罗斯方块
 
Dart:
Flutter:
- 带管理面板的亚马逊克隆
 - 食品配送应用
 - 谷歌文档克隆
 - Instagram克隆
 - 多人井字棋游戏
 - TikTok克隆
 - 票务预订应用
 - 旅行应用
 - Twitch克隆
 - WhatsApp克隆
 - Wordle克隆
 - Zoom克隆
 - Netflix克隆
 
Elixir
Erlang
F#:
Java:
- 构建一个解释器(第4-13章用Java编写)
 - 用Java构建一个简单的HTTP服务器
 - 构建一个Android手电筒应用(视频)
 - 用Spring Boot构建用户认证应用
 
JavaScript:
- 用30个教程在30天内构建30个项目
 - 用纯JS构建一个应用
 - 构建Jupyter Notebook扩展
 - 用JavaScript构建井字棋游戏
 - 用原生JavaScript构建简单天气应用
 - 用JavaScript构建待办事项列表应用
 
HTML和CSS:
移动应用:
Web应用:
React:
- 创建无服务器的React.js应用
 - 创建Trello克隆
 - 用React、Node、MongoDB和SocketIO创建角色投票应用
 - React教程:克隆Yelp
 - 用Mocha、React、Redux和Immutable构建全栈电影投票应用,采用测试优先开发
 - 用React和Node构建Twitter流
 - 用React.js和Node.js构建简单的Medium克隆
 - 在JS中集成MailChimp
 - 用React + Parcel构建Chrome扩展
 - 用React Native构建待办事项应用
 - 制作聊天应用
 - 用React Native创建新闻应用
 - 学习Webpack以用于React
 - 用Puppeteer和Jest测试React应用
 - 构建自己的React模板
 - 用React编写生命游戏
 - 基本的React+Redux入门教程
 - 构建预约调度程序
 - 用情感分析构建聊天应用
 - 构建全栈Web应用程序设置
 - 用React和Firebase创建Todoist克隆
 - 构建随机名言生成器
 - React手机电子商务项目(视频)
 
Angular:
- 用Angular 1.x构建Instagram克隆
 - 用Angular 2+构建离线可用的Hacker News客户端
 - 用Django和AngularJS(Angular 1.x)构建Google+克隆
 - 用Angular 8构建美丽的真实世界应用:
 - 用Bootstrap 4和Angular 6构建响应式布局
 - 用Angular 5构建待办事项应用
 
Node:
- 用NodeJS构建实时Markdown编辑器
 - 用Node、Postgres和Knex进行测试驱动开发
 - 在Node.js中编写Twitter机器人
 - 在30分钟内构建简单搜索机器人
 - 构建一个工作抓取Web应用
 - 构建GitHub应用
 - 如何使用JavaScript、Node.JS、MongoDB和Web Sockets构建自己的Uber-for-X应用
 
Vue
- Vue 2 + Firebase:如何在15分钟内构建带Firebase身份验证系统的Vue应用
 - Vue.js应用程序教程 - 使用Vue创建简单的预算应用
 - 用Vue、GraphQL和Apollo构建博客
 - 使用MEVN(MongoDB、Express、Vue、Node)堆栈构建全栈Web应用程序
 - Vue.js待办事项列表教程(视频)
 - Vue 2 + Pub/Sub:为游戏构建点对点多用户平台
 
其他(Hapi、Express等):
- 构建渐进式Web应用(PWA)
 - 用JS构建本地桌面应用
 - 用NodeJs、GraphQL和Hapi构建强大的API
 
D3.js
游戏开发:
- 使用Phaser制作2D打砖块游戏
 - 用HTML5和JavaScript制作Flappy Bird
 
桌面应用:
其他:
Kotlin:
Lua:
LÖVE:
- BYTEPATH:用Lua和LÖVE创建完整游戏
 
Python:
网络爬虫:
Web应用:
- 用Flask构建微型博客
 - 在Django中创建博客Web应用
 - 选择你自己的冒险演示
 - 用Flask和RethinkDB构建待办事项列表
 - 用Django和测试驱动开发构建待办事项列表
 - 用Python构建RESTful微服务
 - 使用Docker、Flask和React构建微服务
 - 用Flask构建简单的Web应用
 - 在20分钟内创建Django API
 - 用Django、Postgres和JavaScript构建社区驱动的交付应用
 - 与Vue、django-notifs、RabbitMQ和uWSGI的实时聊天应用
 
机器人:
- 构建Reddit机器人
 - 如何制作Reddit机器人 - YouTube(视频)
 - 构建Facebook Messenger机器人
 - 制作Reddit + Facebook Messenger机器人
 - 如何使用Python创建Telegram机器人
 - 用Python创建Twitter机器人
 
数据科学:
- 通过做多个项目学习Python数据科学(视频):
 
机器学习:
- 用Python从头开始编写线性回归(视频)
 - Python中的机器学习逐步指南
 - 预测葡萄酒质量
 - 解决水果分类问题
 - 使用Python学习无监督学习
 - 从头开始构建自己的神经网络
 - 在Python中进行线性回归而不使用sklearn
 - 在Python中进行多元线性回归而不使用sklearn
 - 使用KNN构建音乐推荐器
 - 查找相似的Quora问题-
 - 使用Python和机器学习检测假新闻
 
OpenCV:
- 构建文档扫描仪
 - 使用OpenCV和深度学习构建人脸检测器
 - 使用YOLOv3构建最快的自定义对象检测系统(视频播放列表)
 - 使用OpenCV、Python和深度学习构建人脸识别系统
 - 检测图像中的显著特征
 - 构建条形码扫描仪
 - 学习Python中的人脸聚类
 - 使用Camshift进行对象跟踪
 - 使用OpenCV和深度学习进行语义分割
 - 图像和视频中的文本检测
 - 使用OpenCV进行人数统计
 - 使用OpenCV跟踪多个对象
 - 使用OpenCV进行神经风格迁移
 - OpenCV OCR和文本识别
 - 文本倾斜校正教程
 - 面部特征点检测教程
 - 使用Mask-R-CNN进行对象检测
 - 自动目标检测教程
 - 使用OpenCV实现EigenFaces
 - 更快的(5点)面部特征点检测教程
 - 手部关键点检测
 - Dlib相关对象跟踪 -
 - 使用OpenCV和Python进行图像拼接
 - 使用OpenCV进行实例分割
 - 口罩检测
 
深度学习:
- 使用卷积神经网络检测面部关键点
 - 使用Python和OpenCV生成平均面孔
 - 使用CNN破解验证码系统
 - 使用预训练的Inception模型提供图像预测
 - 创建你的第一个CNN
 - 构建人脸识别管道
 - 构建图像标题生成器
 - 制作自己的面部识别系统
 - 在20分钟内训练语言检测AI
 - 使用神经网络进行对象检测
 - 学习Twitter情感分析 -
 - 使用迁移学习进行自定义图像分类
 - 学习用11行Python编码简单神经网络
 - 使用梯度下降法构建神经网络
 - 训练Keras模型以生成颜色
 - 在自定义数据集上开始使用Keras
 - 在Faces94数据集上使用EigenFaces和FisherFaces
 - Kaggle MNIST数字识别教程
 - Fashion MNIST教程与tf.keras
 - 使用Keras自动分类根部健康的CNN
 - Keras与Tensorflow
 - 深度学习和医学图像分析用于疟疾检测
 - 使用Keras进行图像分类的迁移学习
 - 用Python编码微笑分类器
 - 使用scikit-learn进行自然语言处理
 - 编码Taylor Swift歌词生成器
 - 使用PyTorch Lightning进行口罩检测
 
其他:
- 构建简单解释器
 - 用Python构建简单区块链
 - 用Python编写NoSQL数据库
 - 用OpenCV/Python/iOS构建加油站扫描仪
 - 用Python和Kafka构建分布式流系统
 - 用Python编写基本的x86-64 JIT编译器
 - 制作低级(Linux)调试器
 - 实现搜索引擎
 - 构建生命游戏
 - 创建终端ASCII艺术
 - 编写井字棋AI
 - 创建照片马赛克艺术
 - 在终端中构建“蛇”游戏
 - 编写自己的Git
 - Python字节码运行器的Python实现
 - 用Python创建语音助手
 
Go:
- 用Golang、Angular 2和WebSocket创建实时聊天应用
 - 使用Gin构建Go Web应用程序和微服务
 - 如何在Go中使用Godog进行行为驱动开发
 - 用Go构建区块链
 - 用Go从头开始构建容器 - Liz Rice(微缩系统)(视频)
 - 用GoLang构建Web应用程序
 - 用Go和ReactJS构建聊天应用
 - Go WebAssembly教程 - 构建计算器教程
 - Go中的REST服务器
 - 让我们用Gin和Redis构建URL缩短器
 - 构建TCP聊天(视频)
 - 从头开始构建BitTorrent客户端(Go)
 - Go、PostgreSQL和Docker的REST API大师班(视频播放列表)进行中
 
PHP:
- 如何用Laravel构建博客(视频)
 - 用纯PHP制作自己的博客
 - 用SilverStripe构建房地产网站示例
 - 用Laravel 5.4和VueJS构建实时聊天应用(视频)
 - 构建社交网络:Laravel 5 - YouTube(视频)
 - 构建全功能多租户应用程序与Laravel
 
OCaml:
Ruby:
Ruby on Rails:
Haskell:
R:
Rust:
- 一个简单的Rust Web应用
 - 用纯Rust编写操作系统
 - 用Rust构建浏览器引擎
 - 用Rust编写微服务
 - 用太多链表学习Rust
 - Rust详细信息:从头开始编写可扩展聊天服务
 - 为桌面和Web编写Rust Roguelike
 - 使用Rust构建单页应用
 - 用Rust编写NES模拟器
 - 使用神经网络和遗传算法创建进化模拟,并将应用程序编译为WebAssembly