DEV Community

Cover image for The Benefits of Project-Based Learning

The Benefits of Project-Based Learning

SalarC123 on April 11, 2021

How is it different from course-based learning? 🧐 It's very self explanatory, but project-based learning is a learning technique that fo...
Collapse
 
rogertorres profile image
Roger Torres (he/him/ele)

I think the decision is heavily dependent on what you already know. Someone new to programming or new to a language/technology that is wildly different from their previous experiences will have a hard time navigating through the sources required to build a project. There's a minimum required to pull that off, and I think the books, tutorials, streams, and so on are more helpful to reach this threshold. That being said, once you are past this point, I totally agree that building projects is a magnificent approach. And I would also add something else: teaching is an astonishing way to learn things, especially if you wanna go deep.

Collapse
 
salarc123 profile image
SalarC123

I totally agree. You shouldn’t jump straight into projects if you’re new to programming. There should definitely be a tutorial stage where you get used to syntax or simple concepts before starting projects, but once you develop the right coding problem solving skills and learn how to look stuff up properly, your next step should be making projects.

Collapse
 
mathewthe2 profile image
Mathew Chan

I wouldn't say that the difficulty of finding a meaningful project is a con for learning by doing a project. I mean you could simply attempt the projects that courses teach you to do without reading the course material or visit web challenge websites. On the other hand, courses can save you a lot of time and head scratching later on since they usually cover the best practices for doing things.

Collapse
 
salarc123 profile image
SalarC123

You’re right that it’s harder to learn best practices with this method of learning, but I personally don’t try web challenge websites because I feel like they mostly offer the standard todo list projects and don’t let you express much creativity. I would feel more motivated to make something that I came up with or that I believe would be actually helpful to others.

Collapse
 
mejutoco profile image
mejutoco

I think learn by doing is one of the best way of learning. If you allow me the analogy, it is like playing a sport for fun and doing exercise as a by-product instead if exercising because "it is good".
As long as the expectations are clear that it is a project to learn, I cannot think of a better way

Collapse
 
truemail785 profile image
Ozair

Finding the right project is so difficult. My first post on dev.to was asking about project ideas. After a lot of googling and wasting almost a month trying to find a project idea, I realized that I was wasting a lot of time. I didn't wrote a single line of code during that time period. And then I started working on my first full stack project which was an eCommerce site (just because I wanted keep myself busy coding). After that I built a social media web app that uses socket.io for real-time chat and posting. And believe me I got to learn a lot during the process.
You can check them out here,
eCommerce site: ozcom.herokuapp.com
Social media app: ozfam.herokuapp.com

Collapse
 
salarc123 profile image
SalarC123

Thanks for sharing!

Collapse
 
akiwams profile image
Alhassan Kiwamdeen

Thanks for the write up and I can personally testify as someone who was suffering from tutorials hell and got liberated by project based learning. In terms of project ideas to work on, you can take inspiration from these 20 project ideas curated by Blog4Developers.

Collapse
 
puruvj profile image
PuruVJ

Exactly!!! Amazing article. Project based learning is the best. And if you combine the clarity of course with the unpredictability of building a project, you get the best of both worlds: Complexity management, as well learning best practices.

that's why I'm working on a course to create your own macos.now.sh.

Collapse
 
sas3380 profile image
Sayed Ali

Totally fine. I think the very first step for someone to learn a new skill is to grasp the foundations of any skill and then go for real-world projects to master it. I am sure this will be the best way to learn anything related to technology and also for other fields.

Collapse
 
stokry profile image
Stokry

Hello, I've made a generator of ridiculous (funny) ideas for apps. You can find it here: stupion.com/

Collapse
 
mychi_darko profile image
Michael Darko

Great info. I personally feel combining them gives better results though. Whenever I'm taking a course, I try to build a "real world" mini project using everything I've learned at that point.

Collapse
 
jenlooper profile image
Jen Looper

That's exactly how we built our Web Dev for Beginners course, which we are now using at Front-End Foxes School - aka.ms/webdev-beginners - some nice projects for everyone :)

Collapse
 
l0uiscouture profile image
Louis Couture β€οΈπŸ³οΈβ€πŸŒˆπŸ‡ΊπŸ‡³βšœοΈ

This is what I prefer and think is the best for learning