When I want to learn something I usually do so by doing. I try to set a goal of something I want to achieve. Set up a system with Arch linux with full encryption and LVM was something I wanted to do this weekend. I hadn't used that for a few years. I really struggled getting UEFI to work and I could simply have reverted to MBR/BIOS but I really wanted to figure out why it didn't work. In the end I figured it out, and in addition I learned a whole lot about how UEFI worked on the way there. And LVM and LUKS as well as I screwed a few things up and managed to fix them without reinstalling :P I knew about all these, but not to the depth I do now.

If I'd just ran through the Ubuntu installer I wouldn't have known this. Doing things the hard way is the best for learning. And more rewarding because you get exactly what you want.

I find I pick things up super quickly (at least in the IT realm) so usually I don't do a deep dive until I run into issues. I do try to get a handle on the overall architecture though. So I set things up the right way, and then I figure out the nuts & bolts along the way. I'm not someone for crunching through textbooks.

One thing I personally hate is tutorial videos, especially Youtube. I find them paced way too slow, whereas with text you can be super fast. So I never use video learning until I have to. I absolutely hate the stupid automated courses we have to do in work. Like office safety etc we have to repeat every year. They're really made for the lowest common denominator, which is apparently someone who can't understand more than 10 words per minute :(

And when you're working on something, try to not use youtube, facebook etc. Don't go looking for distraction. Unless you're really banging your head on the wall on a problem, then it may help to do something else for a bit. And try not to ask others if you can't figure something out. If you figure it out yourself it's more rewarding and much more educational and memorable. It also avoids being "that guy" :)

Tracking progress, I can't help with that. I often change my priorities as I go along, leaving stuff half-finished because I found something better or more interesting to do. So be it... I like not having a destination, and having a wide range of knowledge has helped me a lot in my job. What helps is that I live alone and technology is my job and my passion so I'm not struggling for time.

I don't really care if I don't finish something if it turned out it wasn't really what I was looking for, or I found something else that was more interesting. I hate using "methodologies", I always think something that someone else invented can't be perfect for me. I like to make my own way. I do sometimes look at them and pick out bits I like. For this reason I also avoid doing certification trajectories. And also because I think they are too much "the world according to" Microsoft/Cisco/etc. I care about technology, not about one particular company's take on it.

But anyway, don't take my advice for granted. Find out and then do what works for you. That's my #1 bit of advice. Everyone is different. I'm not very typical actually. I have very low discipline but yet I'm actually very effective (including in my job) because I have very deep interest and motivation. What helps me is just not worrying about the things I didn't finish. What's important to me is the journey, not the end result. Even a failed or unfinished project provided lessons along the way.

I really agree with the comment of adamcharnock below who said it should be fun. Absolutely agree. If something is super boring then don't do it unless you absolutely need it for some reason like a better job (but really how much better is it if you're going to be doing something you don't like?)