Project Based Learning
编程教程列表,学员可以在这些教程中从头开始构建应用程序。这些教程分为不同的主要编程语言。有些拥有混合的技术和语言
要开始,只需fork此仓库即可。有关投稿指南,请参阅CONTRIBUTING.md
目录:
- C#
- C/C++
- Clojure
- Elixir
- Erlang
- F#
- Go
- Haskell
- HTML/CSS
- Java
- JavaScript
- Kotlin
- Lua
- OCaml
- PHP
- Python
- R
- Ruby
- Rust
- Scala
- Swift
- Additional resources
C/C++:
- Build an Interpreter (Chapter 14 on is written in C)
- Memory Allocators 101 – Write a simple memory allocator
- Write a Shell in C
- Write a FUSE Filesystem
- Build Your Own Text Editor
- Build Your Own Lisp
- How to Program an NES Game in C
- Write an OS from scratch
- How to create an OS from scratch
- Building a CHIP-8 Emulator
- Beginning Game Programming with C++ and SDL
- Implementing a Key-Value Store
- Tiny 3D graphics projects
- Tiny Renderer or how OpenGL works: software rendering in 500 lines of code
- Understandable RayTracing in 256 lines of bare C++
- KABOOM! in 180 lines of bare C++
- 486 lines of C++: old-school FPS in a weekend
- Writing a minimal x86-64 JIT compiler in C++
- Part 1
- Part 2
- Build a Live Code-reloader Library for C++
- Write a hash table in C
- Let’s Build a Simple Database
- Let’s Write a Kernel
- Write a Bootloader in C
- Linux Container in 500 Lines of Code
- Write Your Own Virtual Machine
- Learning KVM – Implement Your Own Linux Kernel
- Write a C compiler
- Part 1: Integers, Lexing and Code Generation
- Part 2: Unary Operators
- Part 3: Binary Operators
- Part 4: Even More Binary Operators
- Part 5: Local Variables
- Part 6: Conditionals
- Part 7: Compound Statements
- Part 8: Loops
- Part 9: Functions
- Part 10: Global Variables
- Implementing a Language with LLVM
- Meta Crush Saga: a C++17 compile-time game
- High-Performance Matrix Multiplication
- Space Invaders from Scratch
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Tetris Tutorial in C++ Platform Independent
- Writing a Linux Debugger
- Part 1: Setup
- Part 2: Breakpoints
- Part 3: Registers and memory
- Part 4: Elves and dwarves
- Part 5: Source and signals
- Part 6: Source-level stepping
- Part 7: Source-level breakpoints
- Part 8: Stack unwinding
- Part 9: Handling variables
- Part 10: Advanced topics
网络编程
- 让我们编写一个TCP/IP堆栈
- 第1部分:以太网和ARP
- Part 2: IPv4 & ICMPv4
- Part 3: TCP Basics & Handshake
- Part 4: TCP Data Flow & Socket API
- 第5部分:TCP重传
- 并发服务器编程
- Part 1 – Introduction
- Part 2 – Threads
- Part 3 – Event-driven
- Part 4 – libuv
- Part 5 – Redis case study
- 第6部分-回拨、承诺和异步/等待
- MQTT Broker从头开始
- Part 1 – The protocol
- Part 2 – Networking
- Part 3 – Server
- Part 4 – Data structures
- Part 5 – Topic abstraction
- Part 6 – Handlers
- Bonus – Multithreading
OpenGL:
- Creating 2D Breakout game clone in C++ with OpenGL
- Breakout
- Setting up
- Rendering Sprites
- Levels
- Collisions
- Particles
- Postprocessing
- Powerups
- Audio
- Render text
- Final thoughts
- Handmade Hero
- How to Make Minecraft in C++/OpenGL (video)
C#:
- Learn C# By Building a Simple RPG Game
- Create a Rogue-like game in C#
- Create a Blank App with C# and Xamarin (work in progress)
- Build iOS Photo Library App with Xamarin and Visual Studio
- Building the CoreWiki This is a Wiki-style content management system that has been completely written in C# with ASP.NET Core and Razor Pages. You can find the source code here.
闭合:
- Build a Twitter Bot with Clojure
- Building a Spell-Checker
- Building a JIRA integration with Clojure & Atlassian Connect
- Prototyping with Clojure
- Tetris in ClojureScript
灵丹妙药
- Building a Simple Chat App With Elixir and Phoenix
- How to write a super fast link shortener with Elixir, Phoenix, and Mnesia
二郎
- ChatBus : build your first multi-user chat room app with Erlang/OTP
- Making a Chat App with Erlang, Rebar, Cowboy and Bullet
F编号:
Java:
- Build an Interpreter (Chapter 4-13 is written in Java)
- Build a Simple HTTP Server with Java
- Build an Android Flashlight App (video)
- Build a Spring Boot App with User Authentication
JavaScript:
- Build 30 things in 30 days with 30 tutorials
- Build an App in Pure JS
- Build a Jupyter Notebook Extension
HTML和CSS:
移动应用:
Web应用程序:
节点:
- Create Serverless React.js Apps
- Create a Trello Clone
- Create a Character Voting App with React, Node, MongoDB and SocketIO
- React Tutorial: Cloning Yelp
- Build a Full Stack Movie Voting App with Test-First Development using Mocha, React, Redux and Immutable
- Build a Twitter Stream with React and Node
- Build a Serverless MERN Story App with Webtask.io
- Part 1
- Part 2
- Build A Simple Medium Clone using React.js and Node.js
- Integrate MailChimp in JS
- Build A Chrome Extension with React + Parcel
- Build A ToDo App With React Native
- Make a Chat Application
- Create a News App with React Native
- Learn Webpack For React
- Testing React App With Pupepeteer and Jest
- Build Your Own React Boilerplate
- Code The Game Of Life With React
- A Basic React+Redux Introductory Tutorial
- Build an Appointment Scheduler
- Build A Chat App with Sentiment Analysis
- Build A Full Stack Web Application Setup
- Create Todoist clone with React and Firebase
- Build A Random Quote Machine
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Part 6
- Part 7
VUE
- Build an Instagram Clone with Angular 1.x
- Build an offline-capable Hacker News client with Angular 2+
- Part 1
- Part 2
- Build a Google+ clone with Django and AngularJS (Angular 1.x)
- Build A Beautiful Real World App with Angular 8 :
- Part I
- 第II部
- 使用引导4和角度6构建响应式布局
- ToDo App with Angular 5
- Introduction to Angular
- Part 1
其他(Hapi,Express.):
- Build A Simple Website With Node,Express and MongoDB
- Build a real-time Markdown Editor with NodeJS
- Test-Driven Development with Node, Postgres and Knex
- Write a Twitter Bot in Node.js
- Part 1
- Part 2
- Create A Simple RESTFUL Web App
- Build A Simple Search Bot in 30 minutes
- Build A Job Scraping Web App
D3.js
- Vue 2 + Firebase: How to build a Vue app with Firebase authentication system in 15 minutes
- Vue.js Application Tutorial – Creating a Simple Budgeting App with Vue
- Build a Blog with Vue, GraphQL and Apollo
- Build a full stack web application using MEVN (MongoDB, Express, Vue, Node) stack
- Part 1
- Part 2
- Vue.js To-Do List Tutorial (video)
Others (Hapi, Express…):
- Build a Progressive Web Application (PWA)
- Part 1
- Part 2
- Part 3
- Build A Support Ticket Application With AdonisJs
- Part 1
- Part 2
- Build A Native Desktop App with JS
- Build a Powerful API with NodeJs,GraphQL and Hapi
- Part I
D3.js
游戏开发:
- Make 2D Breakout Game using Phaser
- Make Flappy Bird in HTML5 and JavaScript with Phaser
- Part 1
- Part 2
桌面应用程序:
- Build a Music Player with React & Electron
- Part 1
- Part 2
- Part 3
- Build A Desktop Chat App with React and Electron
其他:
- How to Build a Web Framework in Less Than 20 Lines of Code
- Build Yourself a Redux
- How to write your own Virtual DOM
- Build A Realtime Serverless GraphQL API with WebSockets on AWS
科特林:
Lua:
L?VE:
- BYTEPATH: Creation of a Complete Game with Lua and LÖVE
- Part 0: Introduction
- Part 1: Game Loop
- Part 2: Libraries
- Part 3: Rooms and Areas
- Part 4: Exercises
- Part 5: Game Basics
- Part 6: Player Basics
- Part 7: Player Stats and Attacks
- Part 8: Enemies
- Part 9: Director and Gameplay Loop
- Part 10: Coding Practices
- Part 11: Passives
- Part 12: More Passives
- Part 13: Skill Tree
- Part 14: Console
- Part 15: Final
巨蟒:
网络抓取:
- Mining Twitter Data with Python
- Scrape a Website with Scrapy and MongoDB
- How To Scrape With Python and Selenium WebDriver
- Which Movie Should I Watch using BeautifulSoup
机器人:
- Build a Microblog with Flask
- Create a Blog Web App In Django
- Part I : Introduction
- Part II : Extension To Add More Features
- Choose Your Own Adventure Presentations
- Build a Todo List with Flask and RethinkDB
- Build a Todo List with Django and Test-Driven Development
- Build a RESTful Microservice in Python
- Microservices with Docker, Flask, and React
- Build A Simple Web App With Flask
- Build a RESTful API with Flask – The TDD Way
- Create A Django API in under 20 minutes
数据科学:
- Build a Reddit Bot
- How to Make a Reddit Bot – YouTube (video)
- Build a Facebook Messenger Bot
- Making a Reddit + Facebook Messenger Bot
- How To Create a Telegram Bot Using Python
- Part 1
- Part 2
- Create a Twitter Bot In Python
机器学习:
- Learn Python For Data Science by Doing Several Projects (video):
- Part 1: Introduction
- Part 2: Twitter Sentiment Analysis
- Part 3: Recommendation Systems
- Part 4: Predicting Stock Prices
- Part 5: Deep Dream in TensorFlow
- Part 6: Genetic Algorithms
OpenCV:
- Write Linear Regression From Scratch in Python (video)
- Step-By-Step Machine Learning In Python
- Predict Quality Of Wine
- Solving A Fruits Classification Problem
- Learn Unsupervised Learning with Python
- Build Your Own Neural Net from Scratch in Python
- Linear Regression in Python without sklearn
- Multivariate Linear Regression without sklearn
- Music Recommender using KNN
- Find Similar Quora Questions-
- Using BOW, TFIDF and Xgboost
- Using Word2Vec and Xgboost
深度学习:
- Build A Document Scanner
- Build A Face Detector using OpenCV and Deep Learning
- Build a Face Recognition System using OpenCV, Python and Deep Learning
- Detect The Salient Features in an Image
- Build A Barcode Scanner
- Learn Face Clustering with Python
- Object Tracking with Camshift
- Semantic Segmentation with OpenCV and Deep Learning
- Text Detection in Images and Videos
- People Counter using OpenCV
- Tracking Multiple Objects with OpenCV
- Neural Style Transfer with OpenCV
- OpenCV OCR and Text Recognition
- Text Skew Correction Tutorial
- Facial Landmark Detection Tutorial
- Object Detection using Mask-R-CNN
- Automatic Target Detection Tutorial
- EigenFaces using OpenCV
- Faster(5-point) Facial Landmark Detection Tutorial
- Hand Keypoint Detection
- Dlib Correlation Object Tracking –
- Single Object Tracker
- Mutiple Object Tracker
- Image Stitching with OpenCV and Python
- Instance Segmentation with OpenCV
- Face mask detector
Ruby on Rails:
- Using Convolutional Neural Nets to Detect Facial Keypoints
- Generate an Average Face using Python and OpenCV
- Break A Captcha System using CNNs
- Use pre-trained Inception model to provide image predictions
- Create your first CNN
- Build A Facial Recognition Pipeline
- Build An Image Caption Generator
- Make your Own Face Recognition System
- Train a Language Detection AI in 20 minutes
- Object Detection With Neural Networks
- Learn Twitter Sentiment Analysis –
- Part I – Data Cleaning
- Part II – EDA, Data Visualisation
- Part III – Zipf’s Law, Data Visualisation
- Part IV – Feature Extraction(count vectoriser)
- Part V – Feature Extraction(Tfidf vectoriser)
- Part VI – Doc2Vec
- Part VII – Phrase Modeling + Doc2Vec
- Part VIII – Dimensionality Reduction
- Part IX – Neural Nets with Tfdif vectors
- Part X – Neural Nets with word2vec/doc2vec
- Part XI – CNN with Word2Vec
- Use Transfer Learning for custom image classification
- Learn to Code a simple Neural Network in 11 lines of Python
- Build a Neural Network using Gradient Descent Approach
- Train a Keras Model To Generate Colors
- Get Started with Keras on a Custom Dataset
- Use EigenFaces and FisherFaces on Faces94 dataset
- Kaggle MNIST Digit Recognizer Tutorial
- Fashion MNIST tutorial with tf.keras
- CNN using Keras to automatically classify root health
- Keras vs Tensorflow
- Deep Learning and Medical Image Analysis for Malaria Detection
- Transfer Learning for Image Classification using Keras
- Code a Smile Classifier using CNNS in Python
- Natural Language Processing using scikit-learn
- Code a Taylor Swift Lyrics Generator
反应:
- Build a Simple Interpreter
- Build a Simple Blockchain in Python
- Write a NoSQL Database in Python
- Building a Gas Pump Scanner with OpenCV/Python/iOS
- Build a Distributed Streaming System with Python and Kafka
- Writing a basic x86-64 JIT compiler from scratch in stock Python
- Making a low level (Linux) debugger
- Part 1
- Part 2: C
- Implementing a Search Engine
- Part 1
- Part 2
- Part 3
- Build the Game of Life
- Create terminal ASCII art
- Write a Tic-Tac-Toe AI
- Create photomosaic art
- Build the game “Snake” in the terminal
- Write yourself a Git
- A Python implementation of a Python bytecode runner
开始:
- Create a Real Time Chat App with Golang, Angular 2, and WebSocket
- Building Go Web Applications and Microservices Using Gin
- How to Use Godog for Behavior-driven Development in Go et started with Godog
- Building Blockchain in Go
- Part 1: Basic Prototype
- Part 2: Proof of Work
- Part 3: Persistence and CLI
- Part 4: Transactions 1
- Part 5: Address
- Part 6: Transactions 2
- Part 7: Network
- Build Web Application with GoLang
- Building a container from scratch in Go – Liz Rice (Microscaling Systems)
PHP:
- How To Build A Blog With Laravel (video)
- Make Your Own Blog (in Pure PHP)
- Build A Real Estate Website Example with SilverStripe
- Building Realtime Chat App with Laravel 5.4 and VueJS (video)
- Build A Social Network: Laravel 5 – Youtube (video)
- Build a full-featured multi-tenant app with Laravel
- Part 0: Introduction
- Part 1: Setup
- Part 2: Roles and Permissinos
- Part 3: Invitation
- Part 4: Authentication
- Part 5: Testing
- Part 6: User Profile
- Part 7: Deployment
OCaml:
红宝石:
- Build a Network Stack with Ruby
- Build your own Redis
- Part 0: Introduction
- Part 1: Barebones TCP Server
- Part 2: PING <-> PONG
- Part 3: Concurrent Clients
- Part 4: ECHO
角度:
- The Ruby on Rails Tutorial
- Build Instagram From Scratch with Ruby on Rails
- Build a Social Network using Rails
- How To Build a Ruby on Rails Application
哈斯克尔:
- Write You a Haskell – Build a modern functional compiler
- Write Yourself a Scheme in 48 hours
- Write You A Scheme, Version 2
- Roll Your Own IRC Bot
- Let’s Build A Basic Compiler in Haskell
- Making Movie Monad
- Making a Website with Haskell (outdated)
R:
Rust:
- A Simple Web App in Rust
- Part 1
- Part 2a
- Part 2b
- Write an OS in pure Rust
- Build a browser engine in Rust
- Write a Microservice in Rust
- Learning Rust with Too Many Linked Lists
- Rust in Detail: Writing Scalable Chat Service from Scratch
- Part 1: Implementing WebSocket. Introduction.
- Part 2: Sending and Receiving Messages
- Writing a Rust Roguelike for the Desktop and the Web