基于项目的学习
这是一个编程教程列表,旨在帮助有志的软件开发者从零开始构建应用程序。这些教程按主要编程语言分类,可能涉及多种技术和语言。
目录
- 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