practical-tutorials/project-based-learning · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
基于项目的学习
一份编程教程列表,供有志成为软件开发人员的人学习如何从零开始构建应用程序。这些教程按不同的主要编程语言分类。教程可能涉及多种技术和语言。
要开始,只需 fork 此仓库。请参阅 CONTRIBUTING.md 获取贡献指南。
目录:
- C#
- C/C++
- Clojure
- Dart
- Elixir
- Erlang
- F#
- Go
- Haskell
- HTML/CSS
- Java
- JavaScript
- Kotlin
- Lua
- OCaml
- PHP
- Python
- R
- Ruby
- Rust
- Scala
- Swift
- Additional resources
C/C++:
-
构建一个解释器 (第 14 章用 C 语言编写)
-
小型 3D 图形项目
-
用 C++ 编写一个最小化的 x86-64 JIT 编译器
-
编写一个 C 编译器
-
从零开始编写太空侵略者
-
编写一个 Linux 调试器
-
让我们编写一个编译器
网络编程
-
让我们编写一个 TCP/IP 协议栈
-
并发服务器编程
-
从零开始构建 MQTT Broker
OpenGL:
- 使用 C++ 和 OpenGL 创建 2D 打砖块游戏克隆版
- Handmade Hero
- 如何用 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:
- 带管理面板的 Amazon 克隆
- 外卖应用
- Google Docs 克隆
- Instagram 克隆
- 多人井字棋游戏
- TikTok 克隆
- 票务预订应用
- 旅行应用
- Twitch 克隆
- WhatsApp 克隆
- Wordle 克隆
- Zoom 克隆
- Netflix 克隆
Elixir
Erlang
F#:
Java:
- 构建一个解释器 (第 4-13 章使用 Java 编写)
- 使用 Java 构建一个简单的 HTTP 服务器
- 构建一个 Android 手电筒应用 (视频)
- 使用 Spring Boot 构建带有用户认证的应用
JavaScript:
- 30 天构建 30 个项目的 30 个教程
- 构建一个 Jupyter Notebook 扩展
- 使用原生 JavaScript 构建一个简单的天气应用
- 使用 JavaScript 构建一个待办事项列表应用
HTML and CSS:
Mobile Application:
Web Applications:
React:
- 创建无服务器 React.js 应用
- 创建一个 Trello 克隆
- 使用 React、Node、MongoDB 和 SocketIO 创建角色投票应用
- React 教程:克隆 Yelp
- 使用 Mocha、React、Redux 和 Immutable 通过测试优先开发构建全栈电影投票应用
- 使用 React.js 和 Node.js 构建一个简单的 Medium 克隆
- 在 JS 中集成 MailChimp
- 使用 React + Parcel 构建 Chrome 扩展
- 使用 React Native 构建待办事项应用
- 制作聊天应用
- 使用 React Native 创建新闻应用
- 学习 React 的 Webpack
- 使用 Puppeteer 和 Jest 测试 React 应用
- 构建你自己的 React 样板
- 使用 React 编写生命游戏
- React+Redux 基础入门教程
- 构建预约调度器
- 构建带有情感分析的聊天应用
- 构建全栈 Web 应用设置
- 使用 React 和 Firebase 创建 Todoist 克隆
- 构建随机名言生成器
- React 手机电商项目(视频)
Next.js:
Angular:
-
使用 Angular 2+ 构建支持离线功能的 Hacker News 客户端
-
使用 Angular 8 构建美观的实战应用 :
-
使用 Angular 5 构建待办事项应用
Node:
- 使用 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 打砖块游戏
- 使用 Phaser 在 HTML5 和 JavaScript 中制作 Flappy Bird
桌面应用程序:
其他:
- 如何用不到 20 行代码构建一个 Web 框架
- 自己动手构建一个 Redux
- 如何编写你自己的 Virtual DOM
- 在 AWS 上使用 WebSockets 构建实时 Serverless GraphQL API
Kotlin:
Lua:
LÖVE:
- BYTEPATH:使用 Lua 和 LÖVE 创建一款完整的游戏
Python:
网络爬虫:
- 使用 Python 挖掘 Twitter 数据
- 使用 Scrapy 和 MongoDB 抓取网站
- 如何使用 Python 和 Selenium WebDriver 进行抓取
- 使用 BeautifulSoup 决定我该看哪部电影
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 构建实时聊天应用
- 使用 Python 创建 API - 初学者综合课程 (视频)
- 构建你的第一个 Streamlit 数据应用
机器人:
- 构建一个 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 进行实例分割
- 口罩检测器
深度学习:
-
学习 Twitter 情感分析 -
杂项:
- 构建一个简单的解释器
- 用 Python 构建一个简单的区块链
- 使用 OpenCV/Python/iOS 构建加油泵扫描仪
- 使用 Python 和 Kafka 构建分布式流式系统
- 使用原生 Python 从零编写一个基本的 x86-64 JIT 编译器
- 制作一个底层 (Linux) 调试器
- 实现一个搜索引擎
- 构建生命游戏
- 创建终端 ASCII 艺术
- 编写一个井字棋 AI
- 创建照片马赛克艺术
- 在终端中构建游戏“贪吃蛇”
- 为自己编写一个 Git
- Python 字节码运行器的 Python 实现
- 使用 Python 创建语音助手
Go:
-
使用 Go 构建区块链
-
使用 Go 和 ReactJS 构建聊天应用
-
Go 中的 REST 服务器
-
让我们用 Go 构建一个 URL 短链接服务 - 使用 Gin 和 Redis
PHP:
- 如何使用 Laravel 构建博客 (video)
- 制作你自己的博客(纯 PHP)
- 使用 SilverStripe 构建房地产网站示例
- 使用 Laravel 5.4 和 VueJS 构建实时聊天应用 (video)
- 构建社交网络:Laravel 5 - Youtube (video)
- 使用 Laravel 构建功能齐全的多租户应用
- 从零开始构建 Laravel CRUD 应用程序
OCaml:
Ruby:
- 使用 Ruby 构建网络栈
- 构建你自己的 Redis
- 用 Ruby 重建 Git
Ruby on Rails:
Haskell:
- Write You a Haskell - 构建现代函数式编译器
- 48 小时内编写你自己的 Scheme
- Write You A Scheme, Version 2
- 打造你自己的 IRC 机器人
- Making Movie Monad
- 使用 Haskell 构建网站 (已过时)
R:
Rust:
- Rust 中的简单 Web 应用
- 用纯 Rust 编写操作系统
- 用 Rust 构建浏览器引擎
- 用 Rust 编写微服务
- 通过 Too Many Linked Lists 学习 Rust
- Rust 详解:从零开始编写可扩展的聊天服务
- 为桌面和 Web 编写 Rust 类 Rogue 游戏
- 使用 Rust 的单页应用程序
- 用 Rust 编写 NES 模拟器
- 使用神经网络和遗传算法创建进化模拟,并将应用程序编译为 WebAssembly
- hecto:在 Rust 中构建你自己的文本编辑器
Scala:
Swift:
- Hacking with Swift - 通过完成 39 个项目学习 Swift
- 从零开始构建复古第一人称射击游戏
- 使用 SwiftUI 构建 iOS 应用
- 使用 SwiftUI 开发 iOS 应用 (Stanford CS193p) (视频)