Mindket

Project Based Learning

Newversion 2 · updated
Star289k

Overview

A curated list of project-based tutorials from the practical-tutorials organization, sorted by programming language, from writing a shell in C to building a blockchain in Go. Setup notes cover reading it, asking Claude Code, Codex or Cursor about it, and the maker’s README checks.

Project Based Learning is an open-source project on GitHub in the Education category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • GitHub: the README, with a Table of Contents that links each language’s section
  • A fork: the README says “To get started, simply fork this repo”
  • A local copy: clone the repository, then read or search README.md by hand or with your coding agent
  • Python 3: the maker’s lint and link checks run on README.md
Start with
git clone https://github.com/practical-tutorials/project-based-learning.git

Platform

Any coding agentCoding agent
Claude CodeCoding agent
CodexCoding agent
CursorCode editor

About

What it is

Project Based Learning is a list of programming tutorials, kept in one README by the practical-tutorials organization. Each tutorial has you build something, such as a shell, a chat app or a blockchain. The list holds no lessons itself. Each line is a title and a link to a tutorial on someone else’s site: a blog post, a GitHub repository, a video or a course page. The README sorts them by primary programming language, with sub-sections inside the larger ones. CONTRIBUTING.md asks that a tutorial be free and open, and that following it ends with a complete, working project.

  1. You pick a language
  2. Open its section in the README
  3. Choose a tutorial by what it builds
  4. Follow the link to the author’s page
  5. Build the project, part by part

Who it suits

Learners who know a little of a language and want a real project to follow, not another set of exercises. Teachers and mentors can hand out one link per learner. Developers picking up a second language can rebuild something familiar in it. Anyone can propose a tutorial through a pull request that meets CONTRIBUTING.md’s rules and passes the maker’s lint.

Who uses it, and how
WhoHow they use itExample
Self-taught learnersPick a language, then follow one tutorial to the endSomeone who knows Python basics opens the Python section and picks a project from its Bots or Data Science sub-section.
Students in a courseFind a build-it project in the language the course teachesA student in a systems class opens the C/C++ section, where entries include writing a shell and implementing a key-value store.
Teachers and mentorsChoose one tutorial per learner, by languageA mentor sends a learner on the Go track to the multi-part Building Blockchain in Go series.
Developers learning another languageRebuild something they already knowA web developer trying Rust opens its section and starts with A Simple Web App in Rust.
ContributorsAdd a tutorial they know, after running the maker’s lintSomeone adds one line in the maker’s format under the right language and opens a pull request for that one tutorial.

Skip it if you want one course with exercises and feedback. The list links to separate tutorials by many different authors.

Where to use it

The list works anywhere you can open a web page or a Markdown file.

  • GitHub: the README, with a Table of Contents that links each language’s section
  • A fork: the README says “To get started, simply fork this repo”
  • A local copy: clone the repository, then read or search README.md by hand or with your coding agent
  • Python 3: the maker’s lint and link checks run on README.md
  • Each tutorial’s own site: every link opens a blog, a repository, a video or a course page

The README gives no steps for any coding agent. Mindket’s notes for Claude Code, Codex and Cursor are ordinary steps for giving an agent a file to read, and they say so.

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder. The list itself needs no install. The README gives no install line either.

What you need first
NeedDetail
NothingTo read the list on GitHub
A GitHub accountOnly to fork it, which the README suggests. Forking is a GitHub feature, not a line from the README
GitOnly to keep a local copy. GitHub reports the clone address, and git clone is ordinary Git, not a line from the README
Python 3Only for the maker’s lint. CONTRIBUTING.md runs python3, and the script says it uses the standard library only
What each tutorial namesEvery tutorial lists its own tools, language and accounts on its own page
  1. Read the README on GitHub.
  2. To keep a copy, clone the repository with the line below. Then open the folder in your editor or coding agent.
  3. To find a language, search for its name. Each language section starts with a heading line, and the kit’s read-and-search note shows a search that lists them.
  4. To contribute, install Python 3, then run the lint from the repository’s root.
git clone https://github.com/practical-tutorials/project-based-learning.git

The clone line is ordinary Git on the address GitHub reports for the repository. The line below is copied from CONTRIBUTING.md and runs from the repository’s root. It must exit with status 0.

python3 scripts/check_readme.py lint

How to use it

Open the Table of Contents, pick a language and open its section. Each tutorial is one line. Some lines are tagged (video), and a series is a title line with its parts nested under it, often named Part 1, Part 2 and so on. Follow the link to the tutorial’s own page, since the README holds little more than a title and an address.

With an agent, name the file, the section and what you want to build.

Open README.md in this folder. List the tutorials in the Go section that build a server or a network client, with their links.

Example

You know Go and want a project that touches the network. You open the Go section, or ask your agent the prompt above. In the README read on 3 November 2026, the section holds these, among others:

- [Building a TCP Chat in Go(video)](https://www.youtube.com/watch?v=Sphme0BqJiY)
- [Building a BitTorrent client from the ground up in Go](https://blog.jse.li/posts/torrent/)

You pick the BitTorrent one. The README gave you its title and its link. The steps, the code and the requirements are on the page behind the link, so read the start of that page before you commit to it.

For newcomers and experts

If you are new. Project-based learning means you learn by building a finished program, not by doing small exercises. This list holds no lessons. It points to lessons that other people wrote. Start with a language you know a little, open its section, and pick a tutorial whose title tells you what you will end up with. Each tutorial sits on a different site, so one may suit you and the next may not.

For experts. The README is plain Markdown with a fixed grammar. The maker’s script, scripts/check_readme.py, parses it as data: a Table of Contents of anchors, ## sections that must each appear in it, ### and #### sub-sections, entry lines, and series with nested children. Lint errors include a duplicate URL, a URL shortener and an unparseable line. On a pull request, a new http:// link is an error too.

The weekly link check sorts each link into OK, HARD_DEAD, SUSPECT or BLOCKED, and keeps a two-strike record in .github/link-rot-state.json. A pull request removes entries that stayed dead on two checks in a row. Failures on the hosts listed in scripts/linkcheck-domains.txt (medium.com and its subdomains, towardsdatascience.com, reddit.com, twitter.com, x.com, linkedin.com, udemy.com and quora.com) count as BLOCKED, since the file says those sites block or challenge automated checks. Apart from medium.com, a listed host matches only exactly, so www.udemy.com is not covered. The script’s header calls README content and pull request diffs untrusted input. It sets a rule never to eval or exec it, pass it to a shell or build a command line from it.

Good to know

The list is only text, so nothing here runs on your machine unless you run the maker’s script, scripts/check_readme.py: its lint, or its link check, which sends web requests. The questions are about what it links to.

  • License: MIT, “Copyright (c) 2021 practical-tutorials”, in LICENSE.md. It covers the repository’s own files: the README list, CONTRIBUTING.md, the check script and the workflows. Each linked tutorial has its own author, license and terms
  • Someone else’s pages: the README holds titles and addresses. The tutorials, their code and their advice are on other sites, and they can change or disappear
  • Age: the maker marks one Haskell entry as outdated, and its weekly check proposes removing links that stay dead. A link can answer and still be old, since the check tests that a page answers, not that it is current
  • Free: CONTRIBUTING.md asks for free and open tutorials. The link check does not test whether a page is still free, so look before you start
  • Outbound: reading on GitHub loads GitHub, and each link loads its own site. The lint makes no web requests. The link check sends at least one request to each link it checks: a HEAD, a GET when the HEAD fails, retries and redirects. Its User-Agent header names the repository
  • Removal: delete the local copy’s folder, or the fork in its settings on GitHub (Mindket’s note, a GitHub feature, not a line from the README). Nothing else is installed

README and files

README

Project Based Learning: setup notes

This kit holds setup notes only. Mindket wrote them. The list itself is the README of the practical-tutorials repository: https://github.com/practical-tutorials/project-based-learning

These notes are not made or endorsed by the practical-tutorials maintainers. The repository's GitHub description is "Curated list of project-based tutorials". The README says it is "A list of programming tutorials in which aspiring software developers learn how to build an application from scratch." Source: https://github.com/practical-tutorials/project-based-learning/blob/master/README.md

License: MIT. GitHub's repository answer names it "MIT License", and the license file, LICENSE.md (https://github.com/practical-tutorials/project-based-learning/blob/master/LICENSE.md), reads "Copyright (c) 2021 practical-tutorials". The license covers the repository's own files: the README list, CONTRIBUTING.md, the check script and the workflows. Every tutorial the list links to has its own author and terms.

What it is

A list, not a program. The README holds:

  • a short introduction and a Table of Contents with one link per language
  • one section per primary programming language, such as C/C++, Go, Python, Rust and Swift, with sub-sections inside the larger ones (for example Network programming under C/C++, and Web Scraping, Bots and Data Science under Python)
  • under each section, one line per tutorial: - [Title](link). A series is a title line with its parts nested under it, often as - [Part 1](link) lines
  • an Additional Resources section at the end, which lists whole sites rather than single tutorials

The README says "Tutorials may involve multiple technologies and languages." Some entries are marked as video. The maker marks one Haskell entry as outdated.

The repository also holds CONTRIBUTING.md, a scripts/ folder with the Python check the maker runs on the README, and three workflow files in .github/workflows/. Source: the repository's file tree (https://github.com/practical-tutorials/project-based-learning) and the README.

What installs

Nothing, to read the list. The README gives no install line. The optional checks use Python 3 and nothing else: the script's own header says "Python 3 stdlib only". Source: https://github.com/practical-tutorials/project-based-learning/blob/master/scripts/check_readme.py

What you need first

  • To read the list: a browser, or any program that opens a Markdown file.
  • To fork it: a GitHub account. The README says "To get started, simply fork this repo." Forking is a GitHub feature (Mindket's note, not a line from the README).
  • To keep a local copy: Git. The README gives no clone line. GitHub's repository answer reports the clone address https://github.com/practical-tutorials/project-based-learning.git, and git clone on it is ordinary Git (Mindket's note).
  • To run the maker's lint: Python 3, since CONTRIBUTING.md runs python3.
  • For a tutorial: whatever it names. Each tutorial lives on its own site and says what it needs.

Per-platform notes

  • setup/read-and-search.md: the README on GitHub, a fork, a local copy, and how to find a tutorial in it
  • setup/ai-agents.md: giving Claude Code, Codex, Cursor and other agents the list (Mindket's notes, since the maker documents no agent)
  • setup/contribute-and-check.md: the entry format, the pull request rules, the lint and the link checks

Update or remove

A local copy is a Git folder. To update it, run git pull inside it (Mindket's note, ordinary Git). To remove it, delete the folder. A fork is removed on GitHub, in the fork's settings (Mindket's note, a GitHub feature, not a line from the README). The README gives no uninstall steps, and nothing else is installed.

Outbound connections

  • Reading the README on GitHub loads GitHub. Every link in the list loads the tutorial's own site: blogs, GitHub repositories, YouTube videos and course pages. Those sites are not Mindket's and not the maker's.
  • python3 scripts/check_readme.py lint reads README.md and makes no web requests. check-links sends a web request to every link it checks. Source: https://github.com/practical-tutorials/project-based-learning/blob/master/scripts/check_readme.py
  • The maker's workflows run the link check each week on GitHub's servers. See setup/contribute-and-check.md.

Sources

Files
README.md  5 KB
setup/ai-agents.md  2 KB
setup/contribute-and-check.md  6 KB
setup/read-and-search.md  4 KB

4 files, 17 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

sebgCurated list of tutorials to build applications from scratch4 pointsGitHub Trending🚀 Skyrocketing! 🚀 (200+ new stars) 📦 practical-tutorials / project-based-learning ⭐ 278,155 (+394) 🗒 Python Curated list of project-based tutorials1 like · 1 reply@bdall_1想学编程,却不知道先学什么、学完怎么练? 这 8 个 GitHub 项目可以分别解决这些问题: 1. developer-roadmap 查看不同开发方向的学习路线。 https://t.co/go6lGP0agB 2. freeCodeCamp 跟着课程和练习学习编程。 https://t.co/DYTTAnGdXz 3. free-programming-books 免费的编程书籍和学习资源合集。 https://t.co/uKEYSts8rG 4. build-your-own-x 通过亲手实现数据库、编译器等项目,理解它们的工作原理。 https://t.co/mWAUZSVUso…r/learnprogrammingThe projects Imade using project based repo from github...redbellProject-Based Learning: A curated list of project-based tutorials4 pointsTechandstream with Kevin Josué Marville | Software EngineeringWorking at Bell Labs must have been rather stimulating, with such talented people and innovative projects. What specifically caught your eye about Brian Kernighan’s story today? github.com/practical-tu...1 like@wanerfu$80r/letscodecommunity10 GitHub repositories to master Python 👇ibobevProject Based Learning4 pointsTom Dörrhttps://github.com/practical-tutorials/project-based-learning@wholovesmaths@pacil_menfess Hi, sender. Based on my experience, the best solution is practice and practice. Ini ada bbrp resources ya: - https://t.co/3p2ilugHHb - https://t.co/LeG7PSVs0R - https://t.co/bOe55SiRPu - https://t.co/48tcN6MN0u - https://t.co/AJlYFbopEZ - https://t.co/uE7yeDHkJ7 (continued)ibobevProject Based Learning1 point

Searched

More from Mindket

See all from Mindket

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

New

Similar projects

See all in Education

REA: Reverse Engineer Anything

morluto · MCP server

Pick

An MCP server and CLI by morluto that lets your coding agent study binaries, desktop and Android apps, websites and firmware on your own computer, and back eac…

New458k

Vāgdhenu by prathoshap

prathoshap · Kit

Reads classical Sanskrit verses aloud in a chant style, using one trained voice and a reference clip that sets the rhythm. For people who study, recite or need…

New

Limite 1B - Violetto

paradigma-inc · Kit

Solves hard math problems with a 1B-parameter model trained from scratch for fast, high-volume reasoning. It suits developers who run math workloads on an NVID…

New