Skip to content

Guide · Open source

How to use project-based-learning: find and follow build-it-yourself tutorials

Updated · written with AI from the project's own documentation and checked against our catalogue data

project-based-learning is a curated GitHub list of programming tutorials in which you build an application from scratch. It is organized by language, from C# and C/C++ to Python, JavaScript and Rust. This guide shows you how to get a copy of the list, choose a tutorial that fits your level and work through it.

Project Based Learningpractical-tutorials/project-based-learning · ★ 289k · MIT

Quick start

  1. 1Clone the repository. Run the git clone command to download a local copy of the list. You can also fork the repo on GitHub, as the README suggests.
  2. 2Pick a language. Use the table of contents to jump to the language you want to practise, such as Python, Go or Rust.
  3. 3Choose a project. Scan the titles and pick a build that matches your level. Prefer a single article if you are new to building projects.
  4. 4Open the tutorial. Click the link. The tutorial is hosted on the author's site or on GitHub, not in this repository.
  5. 5Build it step by step. Follow the guide in order, writing the code yourself. For multi-part series, complete each part before moving to the next.
  6. 6Check for broken links. If a page fails to load, search for its title. Some entries are older and may have moved.

What project-based-learning is and what it is not

The list is a set of links to programming tutorials hosted elsewhere. Each entry takes you to a guide that walks you through building something, such as a shell, a text editor or a database. Tutorials may involve multiple technologies and languages.

It is not software you install. There is no program to run and no tool to use day to day. Think of it as an index of hands-on projects.

Get a local copy of the list

The README says to get started by forking the repository. To keep a local copy on your computer, you can clone it with the command below. The README also points to CONTRIBUTING.md for contribution guidelines.

The list is licensed under MIT and is written in Python according to the project metadata.

git clone https://github.com/practical-tutorials/project-based-learning

Browse the list by programming language

The README has a table of contents with a section for each language, including C#, C/C++, Go, Haskell, Java, JavaScript, Python, Rust and Swift. Start with the language you already know, or the one you want to learn.

Within a language, entries are grouped by project. Some projects are a single article. Others are a series of numbered parts, such as a Write a C compiler series with ten parts, so work through the parts in order.

  • Open the table of contents and click your language.
  • Scan the titles for a project that matches your skill level.
  • For multi-part projects, read Part 1 first.

Choose a project that fits your level

Pick a project that is a step up from what you already know. A beginner who has learned the basics might choose a small project, while an experienced developer exploring a new language might prefer a guided build in that language.

Because the tutorials are written by different authors, the style and depth vary. If you want one consistent course, this list is not the right source.

  • Choose a language you have already studied, or one you want to try.
  • Prefer single-article tutorials when you are starting out.
  • Expect older posts; the README mentions a link-rot check, but the list spans many years of content.

Work through the tutorial and build as you go

Open the linked tutorial and follow it in order, writing the code yourself rather than only reading it. Keep the project running as you add each part, so you can see what each change does.

If a link is broken, search for the tutorial title. The list is a starting point, not a guarantee that every page is still online.

  • Write the code yourself instead of copy-pasting.
  • Save your work in a folder or Git repository so you can track progress.
  • Note which steps you found hard and revisit them.

What people use it for

  • A beginner who has finished a language course and wants a concrete project, such as a shell or a text editor, to build next.
  • A developer learning Rust or Go who wants a guided build in that language.
  • A student looking for project ideas to practise programming.
  • A self-learner who prefers written tutorials to videos and wants to follow along at their own pace.

Frequently asked questions

Is project-based-learning free to use?

The repository is licensed under MIT, according to its project metadata. The tutorials it links to are hosted elsewhere, and their own terms apply to them.

How do I install project-based-learning?

There is nothing to install in the usual sense. The README's command is git clone https://github.com/practical-tutorials/project-based-learning, which downloads the list of links to your computer.

What are the requirements for project-based-learning?

The source lists no prerequisites. To clone the repository you need Git, and the tutorials themselves will name the languages and tools they need.

Is project-based-learning a tool or software I can run?

No. It is a curated list of links to programming tutorials where you build an application step by step. It does not provide a program to use day to day.

Are the tutorials on project-based-learning up to date?

Not all of them. The README mentions a link-rot check, but the list spans many older posts, so some links may be broken or outdated.

Are there alternatives to project-based-learning?

The source does not name comparable projects, so this guide cannot recommend specific alternatives. If you want one consistent course, look for a single author's course rather than a collection of tutorials by different writers.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

project-based-learning is a good starting point if you want a concrete project to build and you are comfortable following tutorials written by different authors. It is a poor fit if you want installable software, a single consistent course, or links that are all guaranteed to be current.

Install options & downloads