Learning by building - Have any of you done this, and at what point?

I’ve seen people in various places say to learn by building projects. Have you or anyone you know learned this way? Do they mean they took zero courses/watched zero tutorials? The same people have said you need to learn the fundamentals, but that could take a long time too, including someone new to all this such as myself.

The stronger your foundation, the better structures you can build on top of that foundation.

Me, circa Feb.2024 :wink:


  • Which do you prefer?

It is true that different people have different learning preferences. I suppose it comes down to what you prefer or which approach fosters better results for you. However, based on what I have observed on this site (which is a small sample by the way and not representative of the entire Python community at large), is that those who attempt to create small projects a la brute force (learning by building projects), without learning the required fundamentals, generally seem to be the ones that run into the most problems because they, at the fundamental level, do not really understand what they are doing (because they do not fully comprehend the fundamental building blocks - i.e., lists, tuples, dictionaries, functions, function arguments, list comprehensions, generator expressions, scope, modules, packages, classes, inheritance, composition, OOP, etc.).

In my opinion, based on observation and personal experience, favor learning the fundamentals first. That is, learn the language well. Afterwards, building projects (and reviewing programs/scripts) should come more natural with less effort.

Just my two cents.



You learn by doing.

Start with the fundamentals, read a tutorial, try the examples, experiment with them, and, ideally, practise by working on a little project that interests you.

With experience you’ll get a feel for the language and how things work, and it’ll become easier.


I have learned a great deal by building things, but I wouldn’t say it’s “how I learned”.

Mostly, there are three sources which I learned from:

  • courses/education, which gave me some relevant background and theory
  • trying stuff, making a mess, cleaning up my mess, etc (“learn by building”)
  • the people I interact with (at work, in my hobby work, on this forum, etc)

The kinds of things you learn vary between sources. I think it’s unlikely that you’ll be able to learn without trying to make things. I also think it’s unlikely that you can learn only by making things.

All of these learning processes synergize and, ideally, feed forward. I would start with courses or tutorials, which will give you structure.

Trying to jump in with “just make something” starting from 0 is likely to defeat you a bit. That said, once you know a bit, having a vision for a project and learning and fighting your way through to build that project will be a very rewarding way to learn.


I learn by building things but not in isolation. For me, I’m most successful learning something through project-based courses. If I’m not at a point where that’s realistic, small task based courses are great. I’ve really benefited working off of platforms like Treehouse.

Good luck!

1 Like

Thanks for the replies.

I have some ideas (nothing detailed yet). Maybe I’ll start building my ideas with whatever I learned so far, even if I might not use it once I am clear on the project. That way I can practice and learn from the course’s material, and work on my projects helping me to get better.

I would say the major limitation is in the tree-like documentation. If you had a good index you can probably chose whatever method you like. But here you are kind of pushed to full reading and learning one way. The other one is much harder, due to missing structure of the documentation.

But yes, the success is usually based on your motivation. So if you are highly motivated with building your project, why not. At least you will have right question for Stack Overflow, where you can asked basic questions. But if you ask on basic questions hidden in the code, it will be just fine.

I am not sure, wether this aplies. Even person learning something in the isolated area of coding, may get strong basics, becouse they simply need to learn the basics.

The question is, wether this pre chosen way of learning is motivating or demotivating. The clue of success is usually digged in motivation, not in the way of learning.