Top Related Projects
:books: Freely available programming books
A complete computer science study plan to become a software engineer.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
😎 Awesome lists about all kinds of interesting topics
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Quick Overview
The "project-based-learning" repository is a curated list of programming tutorials that guide learners through creating various projects. It covers multiple programming languages and technologies, offering hands-on learning experiences for developers of all skill levels. The repository serves as a comprehensive resource for those looking to improve their coding skills through practical, project-based learning.
Pros
- Covers a wide range of programming languages and technologies
- Provides hands-on learning experiences through real-world projects
- Regularly updated with new tutorials and resources
- Free and open-source, accessible to all learners
Cons
- Quality of tutorials may vary as they are sourced from different creators
- Some projects may become outdated as technologies evolve
- No standardized format or difficulty level across all tutorials
- May lack in-depth explanations for more complex concepts
Getting Started
To get started with the project-based-learning repository:
- Visit the GitHub repository: https://github.com/practical-tutorials/project-based-learning
- Browse through the README file to find a project or language that interests you
- Click on the link to the tutorial you want to follow
- Start working on the project, following the instructions provided in the tutorial
Note: As this is not a code library but a collection of tutorials, there are no specific code examples or installation instructions. Each tutorial within the repository will have its own set of instructions and code examples relevant to the project being built.
Competitor Comparisons
:books: Freely available programming books
Pros of free-programming-books
- Extensive collection of free programming resources across various languages and topics
- Well-organized structure with categories for different types of materials (e.g., books, courses, interactive tutorials)
- Regularly updated with community contributions, ensuring a wide range of current resources
Cons of free-programming-books
- Lacks a structured learning path or curriculum for beginners
- May overwhelm users with too many options, making it difficult to choose the best resources
- Doesn't provide hands-on project-based learning experiences
Code comparison
Not applicable for these repositories, as they primarily consist of curated lists of resources rather than code examples.
Summary
free-programming-books offers a vast collection of free programming resources, making it an excellent reference for learners at all levels. However, it may lack the structured, project-based approach that project-based-learning provides. While free-programming-books excels in breadth and variety, project-based-learning focuses on practical, hands-on learning experiences. The choice between the two depends on the learner's preferences and learning style.
A complete computer science study plan to become a software engineer.
Pros of coding-interview-university
- Comprehensive curriculum covering a wide range of computer science topics
- Structured learning path with clear goals and milestones
- Extensive resources including videos, articles, and practice problems
Cons of coding-interview-university
- Primarily focused on theoretical knowledge rather than hands-on projects
- May be overwhelming for beginners due to the vast amount of information
- Less emphasis on modern programming languages and frameworks
Code Comparison
project-based-learning typically focuses on practical implementations:
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
coding-interview-university often includes more theoretical examples:
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
Both repositories offer valuable resources for learning programming and computer science concepts. project-based-learning is more suitable for those who prefer hands-on learning through practical projects, while coding-interview-university provides a comprehensive theoretical foundation for those preparing for technical interviews or seeking a deeper understanding of computer science principles.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Pros of developer-roadmap
- Provides a comprehensive visual guide for various tech career paths
- Regularly updated with new technologies and industry trends
- Offers interactive roadmaps with clickable elements for detailed information
Cons of developer-roadmap
- Focuses more on theoretical knowledge than hands-on practice
- Can be overwhelming for beginners due to the vast amount of information
- Lacks specific project examples or tutorials for practical application
Code comparison
Not applicable, as both repositories primarily contain educational content rather than code samples.
Summary
project-based-learning is a curated list of project tutorials across various programming languages and technologies, emphasizing hands-on learning through practical projects. It's ideal for those who prefer learning by doing and want to build real-world applications.
developer-roadmap offers visual guides and career paths for different roles in software development. It provides a structured overview of technologies and concepts to learn, making it excellent for planning long-term learning goals and understanding the broader landscape of software development.
Both repositories complement each other well. project-based-learning is better for immediate, practical skill development, while developer-roadmap excels at providing a comprehensive overview of the skills needed for various tech careers.
😎 Awesome lists about all kinds of interesting topics
Pros of awesome
- Broader scope, covering a wide range of topics and technologies
- Larger community and more frequent updates
- Well-organized structure with clear categories
Cons of awesome
- Less focused on hands-on learning and practical projects
- Can be overwhelming due to the sheer volume of resources
- May include outdated or less relevant links due to its size
Code comparison
Not applicable, as both repositories primarily consist of curated lists and don't contain significant code samples.
Summary
project-based-learning focuses on practical, hands-on tutorials for various programming languages and technologies. It provides a structured approach to learning through project completion.
awesome is a more comprehensive collection of resources covering a wide range of topics in software development and beyond. It serves as a general reference for developers seeking information on various subjects.
Both repositories are valuable for developers, but they serve different purposes. project-based-learning is better suited for those looking to learn through practical application, while awesome is ideal for discovering resources across a broader spectrum of topics.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Pros of system-design-primer
- Comprehensive coverage of system design concepts and principles
- Includes visual aids and diagrams to illustrate complex topics
- Provides a structured approach to learning system design
Cons of system-design-primer
- Focuses primarily on theoretical knowledge rather than hands-on projects
- May be overwhelming for beginners due to its depth and breadth
- Limited practical implementation examples
Code Comparison
system-design-primer:
# Example: URL shortener service using MD5 and Base62 encoding
import hashlib
def shorten_url(original_url):
# Create MD5 hash of the original URL
url_hash = hashlib.md5(original_url.encode()).hexdigest()
# Convert the first 8 characters of the hash to Base62
return base62_encode(int(url_hash[:8], 16))
project-based-learning:
# No direct code comparison available as project-based-learning
# is a curated list of project tutorials rather than a single codebase
Note: project-based-learning doesn't contain actual code but rather links to various project tutorials across different programming languages and topics. The repository serves as a comprehensive resource for hands-on learning through practical projects, while system-design-primer focuses on theoretical knowledge and concepts related to system design.
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Pros of javascript-algorithms
- Focused specifically on algorithms and data structures in JavaScript
- Includes detailed explanations and complexity analysis for each algorithm
- Provides implementations in multiple programming styles (functional, object-oriented)
Cons of javascript-algorithms
- Limited to algorithms and data structures, not covering broader programming concepts
- May be overwhelming for beginners due to its depth and complexity
- Lacks real-world project examples that apply the algorithms in practical scenarios
Code Comparison
javascript-algorithms:
function bubbleSort(originalArray) {
const array = [...originalArray];
for (let i = 1; i < array.length; i += 1) {
for (let j = 0; j < array.length - i; j += 1) {
if (array[j] > array[j + 1]) {
[array[j], array[j + 1]] = [array[j + 1], array[j]];
}
}
}
return array;
}
project-based-learning:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
Note: project-based-learning doesn't focus on specific algorithm implementations but rather on complete projects. The code example here is for illustration purposes only.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Project Based Learning
A list of programming tutorials in which aspiring software developers learn how to build an application from scratch. These tutorials are divided into different primary programming languages. Tutorials may involve multiple technologies and languages.
To get started, simply fork this repo. Please refer to CONTRIBUTING.md for contribution guidelines.
Table of Contents:
- 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++:
- 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
- Writing a minimal x86-64 JIT compiler in C++
- 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
- Build Your Own Redis with C/C++
- Write a C compiler
- Implementing a Language with LLVM
- Meta Crush Saga: a C++17 compile-time game
- High-Performance Matrix Multiplication
- Space Invaders from Scratch
- Tetris Tutorial in C++ Platform Independent
- Writing a Linux Debugger
- Let's write a compiler
Network programming
-
Let's Code a TCP/IP Stack
-
Programming concurrent servers
-
MQTT Broker from scratch
OpenGL:
- Creating 2D Breakout game clone in C++ with OpenGL
- 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.
Clojure:
- Build a Twitter Bot with Clojure
- Building a Spell-Checker
- Building a JIRA integration with Clojure & Atlassian Connect
- Prototyping with Clojure
- Tetris in ClojureScript
Dart:
Flutter:
- Amazon Clone with Admin Panel
- Food Delivery App
- Google Docs Clone
- Instagram Clone
- Multiplayer TicTacToe Game
- TikTok Clone
- Ticket Booking App
- Travel App
- Twitch Clone
- WhatsApp Clone
- Wordle Clone
- Zoom Clone
- Netflix Clone
Elixir
- Building a Simple Chat App With Elixir and Phoenix
- How to write a super fast link shortener with Elixir, Phoenix, and Mnesia
Erlang
- 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
- Build a TicTacToe Game with JavaScript
- Build a Simple Weather App With Vanilla JavaScript
- Build a Todo List App in JavaScript
HTML and CSS:
- Build A Loading Screen
- Build an HTML Calculator with JS
- Build Snake using only JavaScript, HTML & CSS
Mobile Application:
Web Applications:
React:
- 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 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 Puppeteer 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
- React Phone E-Commerce Project(video)
Angular:
-
Build an offline-capable Hacker News client with Angular 2+
-
Build a Google+ clone with Django and AngularJS (Angular 1.x)
-
Build A Beautiful Real World App with Angular 8 :
-
ToDo App with Angular 5
Node:
- Build a real-time Markdown Editor with NodeJS
- Test-Driven Development with Node, Postgres and Knex
- Write a Twitter Bot in Node.js
- Build A Simple Search Bot in 30 minutes
- Build A Job Scraping Web App
- Building a GitHub App
- How to build your own Uber-for-X App using JavaScript, Node.JS, MongoDB and Web Sockets
Vue
- 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
- Vue.js To-Do List Tutorial (video)
- Vue 2 + Pub/Sub: Build a peer to peer multi-user platform for games
Others (Hapi, Express...):
- Build a Progressive Web Application (PWA)
- Build A Native Desktop App with JS
- Build a Powerful API with NodeJs,GraphQL and Hapi
D3.js
Game Development:
- Make 2D Breakout Game using Phaser
- Make Flappy Bird in HTML5 and JavaScript with Phaser
Desktop Application:
Miscellaneous:
- 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
Kotlin:
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
Python:
Web Scraping:
- 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
Web Applications:
- Build a Microblog with Flask
- Create a Blog Web App In Django
- 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
- Create A Django API in under 20 minutes
- Build a Community-driven delivery application with Django, Postgres and JavaScript
- Realtime Chat application with Vue, django-notifs, RabbitMQ and uWSGI
Bots:
- 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
- Create a Twitter Bot In Python
Data Science:
- Learn Python For Data Science by Doing Several Projects (video):
Machine Learning:
- 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-
- Detecting Fake News with Python and Machine Learning
OpenCV:
- Build A Document Scanner
- Build A Face Detector using OpenCV and Deep Learning
- Build fastest custom object Detection system yusing YOLOv3(video playlist)
- 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 -
- Image Stitching with OpenCV and Python
- Instance Segmentation with OpenCV
- Face mask detector
Deep Learning:
- 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
- Mask detection using PyTorch Lightning
Miscellaneous:
- 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
- Implementing a Search Engine
- 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 Voice assistant using Python
Go:
- 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
- Building Blockchain in Go
- Building a container from scratch in Go - Liz Rice (Microscaling Systems)(video)
- Build Web Application with GoLang
- Building a Chat Application in Go with ReactJS
- Go WebAssembly Tutorial - Building a Calculator Tutorial
- REST Servers in Go
- Let's build a URL shortener in Go - with Gin & Redis
- Building a TCP Chat in Go(video)
- Building a BitTorrent client from the ground up in Go
- REST API masterclass with Go, PostgreSQL and Docker(video playlist)
in progress
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
- Build a Laravel CRUD Application From Scratch
OCaml:
Ruby:
- Build a Network Stack with Ruby
- Build your own Redis
- Rebuilding Git in Ruby
Ruby on Rails:
- 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
Haskell:
- 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
- Making Movie Monad
- Making a Website with Haskell (outdated)
R:
Rust:
- A Simple Web App in Rust
- 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
- Writing a Rust Roguelike for the Desktop and the Web
- Single Page Applications using Rust
- Writing NES Emulator in Rust
- Create a simulation of evolution using neural network and genetic algorithm, and compile the application to WebAssembly
Scala:
Swift:
Additional Resources
Top Related Projects
:books: Freely available programming books
A complete computer science study plan to become a software engineer.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
😎 Awesome lists about all kinds of interesting topics
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot