Learning by Building Something Imperfect
One of the fastest ways I have experienced real learning has been through learning by building something myself. There is a huge difference between understanding something in theory and facing it when you actually try to build it. I’m not saying this to discourage your or anything like that, but as you start building things (in my case, developing a system), very few things work exactly the way they should.
When you only read or listen to explanations, everything seems clear. But when you begin creating something of your own, problems appear that you never saw in the books. At least in my experience, books usually give you descriptions of tools, but rarely show how everything integrates in a real situation.
The best way to learn is by doing.
— Richard Branson, entrepreneur and founder of the Virgin Group
That is the moment when learning becomes real. Ideas stop being abstract and start having consequences. Something does not work, one part fails, a technical decision turns out worse that you imagined, and so on.
Building something that might fail forces you to think for real. You are no longer repeating information. You are making decisions.
Why Learning by Building Changes Everything
When you build something, knowledge stops being passive. Every concept must turn into action. It is not enough to understand it; you have to apply it. And that is where many assumptions begin to break.
The mistakes that appear in the process are not interruptions to learning. They are a central part of it. Each failure reveals something that theory alone cannot show.
Learning by building creates a different kind of knowledge. It may feel slower at the beginning, but it is much harder to forget.

The Project I Almost Abandoned
I remember when I was building a system in Java using JSF. I started with enthusiasm, but after a few weeks it became frustrating. Nothing worked exactly the way I expected. The solutions I found created new problems. And many of the things I had learned in classes and books simply did not work.
There were moments when I thought about abandoning the project or even changing programming languages. It seemed easier to go back and watch some YouTube videos, but they never really matched what I was trying to build. Instead, I kept struggling with a lot of code that was not giving the results I wanted.
However, continuing to work on that project taught me more than any course I had taken before. Not because the project was perfect (I think we’ll talk about that another time), but because it forced me to solve real problems.
How to Learn by Building Something Real
The first step is accepting that the project might fail (many books explain this too) and that you might not even know why. If you only try to build safe things, your learning will be limited. The risk of something not working is part of the process.
The second step is starting small. A simple project is enough to activate the learning process. You do not need something big; you need something that foreces you to apply what you know.
The third step, which I think is one of the most interesting, is treating every error as information. Instead of seeing it as a failure, use it as a signal that shows where you need to improve.
You might be interested in: Unlearning
Building Teaches What Studying Cannot
Reading, listening, or watching explanations can give you a foundation. But building something of your own transforms that knowledge into experience. It is the difference between understanding an idea, living its consequences, and adapting everything according to your needs. It is like building a custom-made suit.
When you work on something that depends on your decisions, every result carries a different weight. What works becomes clear, and what does not work becomes clear as well.
That type of learning stays with you much longer.
I have not failed. I’ve just found 10,000 ways that won’t work.
— Thomas Edison, inventor and businessman known for developing the practical electric light bulb
The Value of Building Even When It Might Fail
Building something that might fail requires intellectual courage. I have seen many colleagues in different fields who never built anything meaningful simply because they were afraid of failing. Building menas accepting that the result is not guaranteed.
But it is also one of the most effective ways to learn. When something depends on your effort, your attention changes.
Maybe the project will not work the way you expected. But the learning you gain in the process is rarely lost. Personally, I prefer this path, of course combined with some theory and clear concepts along the way.