GitHub

Project Based Learning

What is the project about?

This project is a curated list of programming tutorials focused on project-based learning. Aspiring software developers can learn by building applications from scratch.

What problem does it solve?

It provides a centralized resource for hands-on learning, addressing the need for practical experience in software development. It helps learners move beyond theoretical knowledge and apply concepts by building real-world projects.

What are the features of the project?

  • A categorized list of tutorials.
  • Tutorials are divided by primary programming languages.
  • Links to external resources (articles, videos, websites).
  • Covers a wide range of project types and complexities.
  • Contribution guidelines for adding new tutorials.

What are the technologies used in the project?

The project itself is a curated list, so it doesn't use technologies in the same way an application does. However, the tutorials listed cover a vast array of technologies, including (but not limited to):

  • Programming Languages: C, C++, C#, Clojure, Dart, Elixir, Erlang, F#, Go, Haskell, HTML, CSS, Java, JavaScript, Kotlin, Lua, OCaml, PHP, Python, R, Ruby, Rust, Scala, Swift.
  • Frameworks/Libraries: React, Angular, Vue.js, Node.js, Flask, Django, Ruby on Rails, Spring, Xamarin, Flutter, .NET Core, ASP.NET, OpenGL, SDL, LLVM, and many more (depending on the specific tutorial).
  • Databases: MongoDB, Redis, PostgreSQL, RethinkDB, Mnesia.
  • Other Tools/Concepts: WebSockets, REST APIs, GraphQL, Docker, Machine Learning (TensorFlow, Keras, scikit-learn), Deep Learning, Computer Vision (OpenCV), Web Scraping, Blockchain, Interpreters, Compilers, Operating Systems, Game Development.

What are the benefits of the project?

  • Practical Learning: Emphasizes hands-on experience.
  • Comprehensive: Covers a wide range of languages and technologies.
  • Structured: Organized by programming language for easy navigation.
  • Community-Driven: Open to contributions, allowing the resource to grow and improve.
  • Free and Open Source: Accessible to everyone.
  • Skill Development: Helps learners build a portfolio of projects.

What are the use cases of the project?

  • Beginner programmers: Learn fundamental programming concepts by building simple applications.
  • Intermediate programmers: Expand their skills by tackling more complex projects and exploring new technologies.
  • Experienced programmers: Learn new languages or frameworks through practical application.
  • Anyone wanting to build a portfolio: Create projects to showcase their skills to potential employers.
  • Educators: Use the tutorials as a resource for teaching programming.
  • Self-taught learners: Guide their learning path with structured projects.
project-based-learning screenshot