Build real applications to learn coding through project-based tutorials
You can internalize the development process by building actual programs with your own hands rather than just memorizing syntax. This repository is a list of project-based tutorial links organized by programming language. You can choose your desired language and area of interest, then follow the corresponding tutorials to build your skills.
Project structure by language
The repository is categorized into more than 20 major programming languages, including C, C++, Python, JavaScript, Go, and Rust. Within each language section, tutorials are organized by specific topics such as web development, game creation, data science, and system programming. For example, the C/C++ section covers topics ranging from writing an operating system kernel to creating an NES game emulator, while the Python section covers a wide range of topics from web scraping to building deep learning models. If you want to learn a specific language, you can jump directly to that language section and select a project of interest.
Various difficulty levels and topics
Difficulty levels vary from simple Todo apps for beginners to compiler writing or virtual machine implementation for advanced developers. The web development field includes full-stack projects using modern frameworks such as React, Vue, and Angular, while the system programming field covers in-depth topics like memory allocators or network stack implementation. Additionally, there is a wide range of options based on developer interests, including game development, bot creation, and data analysis. Each tutorial links to an external resource, and some are provided in the form of video lectures or step-by-step guides.
Contribution methods and usage tips
This repository is an open-source project, so you must fork it and refer to the contribution guide if you want to add new tutorials or modify existing content. The README organizes the tutorial list for each language in table format, making it easy to navigate. However, since the current status and quality of linked tutorials may vary by source, it is recommended to check the last update time or community feedback for the tutorial before starting. If you lack a foundation in a specific language, it is recommended to start with lower-difficulty projects within that language section.