If it's a tool, I find a book packed with practical examples, follow it for a few chapters to get the gist of it, and then build something with the tool. I toss the book away at that stage and look at online resources that would help me in a real-world scenario. Then I usually return to the book because later in the book you usually find best practices and similar. At the end, I improve those things I've built with best practices I've learned.
If it's something theoretical, I write down notes with it in a Q&A format, and then test myself by answering those questions using spaced repetition (at the time I wrote them, a few days later, a week or two later, and a month or two later).
> How do you pick a subject or tool to learn?
I have a list of tools I'd like to learn and then I tackle whichever one seems most relevant to me from the list. Currently on top of it is tmux, which I have a practical use case for. AWS is somewhere at the bottom of such list, because I can't think of a project that would benefit from knowing it.
If it's something theoretical, I write down notes with it in a Q&A format, and then test myself by answering those questions using spaced repetition (at the time I wrote them, a few days later, a week or two later, and a month or two later).
> How do you pick a subject or tool to learn?
I have a list of tools I'd like to learn and then I tackle whichever one seems most relevant to me from the list. Currently on top of it is tmux, which I have a practical use case for. AWS is somewhere at the bottom of such list, because I can't think of a project that would benefit from knowing it.