Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
GitHub repo · OtherFree

Project Based Learning

A large, community maintained GitHub list of tutorials where you learn a language by building a real project, organised by language from C and C++ to Go, Python, JavaScript, Rust and Swift. Projects range from web servers, chat apps and blogs to interpreters, games and neural networks. It suits anyone who has finished a course and feels stuck with nothing to build, and is a better next step than starting another course.

GitHub stars

284k

GitHub · Sept 2026

Forks

36.4k

GitHub · Sept 2026

Licence

MIT

GitHub · Sept 2026

Last commit

September 2026

GitHub · Sept 2026

Format

GitHub repo

Topic

Other

Provider

Community maintained

Level

Beginner

Access

Free

What is in the list

The README is organised into sections for around two dozen languages, including C and C++, C#, Clojure, Dart, Elixir, Erlang, F#, Go, Haskell, HTML and CSS, Java, JavaScript, Kotlin, Lua, OCaml, PHP, Python, R, Ruby, Rust, Scala and Swift, plus a section of other resources. Within them you find project types such as:

  • Systems: operating systems, compilers, interpreters, databases and containers.
  • Web: full stack apps, APIs, blogs, chat systems and progressive web apps.
  • Games: Breakout, Tetris, roguelikes and simple engines.
  • Data and machine learning: neural networks, sentiment analysis and computer vision.
  • Mobile: iOS, Android and Flutter clones of well known apps.

Tutorials are a mix of written guides, multi-part series and videos. The repository runs an automated link check to catch dead links.

Why building beats another course

After a first course, many learners fall into "tutorial hell": they can follow instructions but cannot start anything alone. A project tutorial is a bridge. It still guides you, but it produces something whole, and the natural next step is to change it: add a feature, swap a library, deploy it. That is where real learning happens.

How to use it well

  • Pick your strongest language and a project slightly beyond your comfort zone.
  • Follow the tutorial once, then close it and rebuild the core parts from memory.
  • Add at least two features the tutorial did not include.
  • Put it on GitHub with a README explaining what you added yourself. That is what makes it worth showing.
  • Only then move to a new project, ideally in a different area (web, then systems, for example).

How it compares with Build Your Own X

Build Your Own X focuses on recreating existing technologies to understand how they work. Project Based Learning is broader and more beginner friendly, with more web, mobile and application projects. Beginners often start here and move to Build Your Own X once comfortable.

Where it falls short

It is a list of external links, so quality and freshness vary. Some tutorials use older library versions and need small fixes, which is itself good practice. There is no guidance on which project suits which level, so read a tutorial's first page before committing.

Common questions

Is it maintained? It has about 284k stars and was still receiving commits in September 2026.

Is it free? The list is free and MIT licensed. Almost all linked tutorials are free, though a few point to books or paid platforms.

How long does a project take? From an afternoon to several weeks, depending on the tutorial.

Best for: learners who have finished a course and want guided projects that produce something real.

open sourcefree coursebeginner friendly

Ready to start?

Opens on Community maintained in a new tab.

Open resource
Link broken or out of date?

Report a problem

With "Project Based Learning". Only Tauseef reads this.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.