I pick a project I want to complete or a cause I want to contribute to. Then I look at the smallest step I can take to work toward that (learn the basis of a new language, protocol). Then I iterate (learn a framework, tool). Then I try to close a bug or release the project to the wild. This usually leads to comments on a PR or someone opening bugs with the project, and then I have to learn something new to fix it.<p>I think it&#x27;s much easier to learn things when you have a goal because you have to learn tiny nuggets of knowledge that are useful. I find learning something without the context of how to apply it to the real world is very difficult, so I generally don&#x27;t just go out and learn things (tech-wise) without a legitimate usage in mind.