> I'm guessing the answer is making small things, but what exactly? I've made so many to do list apps I don't know what to do with them
My favorite way has always been to not just build small things, but build small useful things. There is always something that could be better, and there is always a subset of languages best for the task at hand. If it's a CLI, then a language that can compile to binary tends to be best (for me at least), so that already limits the languages somewhat. Then depending on what the task is, it might make sense to learn a new language for it.
Then naturally over the years I've picked up 10-15 languages this way, by just following what each language seems best at, and not being afraid of spending 2-3 weeks writing something basic.
Then for each language you learn, next one gets a lot easier, especially when most mainstream languages today are Algol-like languages and more similar to each other than different.