Those of you who have been following me for a while know that one of the biggest projects I worked on until now, is my Dark Souls Scene made in Blender.
I started working on it because of a competition I wanted to be part of, where the prizes were 3 games, two of which I really wanted - Hitman and Hollow Knight.
Sadly, I didn't win, but after 3 days of work I was left with an unpolished 3D model with bad textures of a scene from a game called Dark Souls. So, I started working on it, trying to improve it, and after around a month I finally ended up with what you can see in the link above.
After the project was done I realized something really important that is helping me make a lot of progress nowadays when it comes to pretty much everything. I'm talking about learning by taking on big projects, by working on things that you don't know how to properly do yet.
When I started working on that Dark Souls scene I didn't have a lot of knowledge about 3D or Blender, except the basics. I knew how to create a few things using that software, but nothing more. However, because I really wanted to create something more, I decided to challenge myself and to learn while working on that particular scene.
I ended up watching dozens of tutorials and figuring things out as I was working. I made several mistakes, especially when it comes to texturing, my models were really badly built because I used multiple shapes in situations where I could've used only one, and all that resulted in a pretty long render time and the entire scene lagging quite badly when I was trying to edit the textures.
But all that helped me make more progress when it comes to both 3D in general and using Blender, than any other tutorial/small project I worked on in the past. Now I'm working on another big project as some of you may already know, and the process is pretty much the same - I need to create things I don't know how to create yet, so while working I need to constantly search for tutorials and articles that could teach me how to do specific things. All that helps me learn a lot better than any method I tried before.
It's the same with coding - I just started coding around a month ago, and while I'm not a professional, not even close, I still managed to create this Survey Form and this Product Landing Page after learning the basics of HTML and CSS from FreeCode Camp.
Those projects were quite complex for my knowledge and required me to spend quite a lot of time reading articles, coding and watching a lot of videos explaining how certain things worked. But while I had to work quite hard on some fairly simple projects, I learned a lot more than I would have by doing something a lot less challenging.
The idea behind this "strategy" is that by forcing yourself to work on something that is way beyond your skills, you expose yourself to a lot of failure and a lot of things that you must do, but you can't yet. That usually allows you to figure out what you know and what you don't, what you need to learn and how to properly formulate the questions that could get you the best answers.
One of the worst things when learning a new skill isn't the fact that there things are that you don't know. It's the fact that there are things you don't know, things you don't even know exist. By working on a really complex project you'll stumble upon those particular things you had no idea existed, and by figuring out how they work or how to solve certain problems you'll make a lot more progress than someone who simply watches tutorials and never has to deal with "real" problems.
So, if you never really managed to properly learn new things in the past by watching tutorials and reading articles or books, then working on a big project as soon as you learn the basics could be what helps you learn a particular skill.