Michael Pollan is one of my favorite authors. Each of his works follow a similar pattern. Define an overarching theme (gardening, cooking, eating), then define some components, go into the history and practice of each sub component. For example in his work A Place of My Own the overarching theme is architecture and some sub-components are location, design, material, etc. In the section on location he talks about Feng-Shui and energy flow of the earth to find the right spot for his house going into the history of Feng-Shui and providing examples of buildings like Falling Water as ideal locations. In the end its a great example of personal project exploration.
This weekend I read an article where the author mentions that "toy projects are meaningless because they aren't real". At first I was taken aback, I have a lot of pet projects and I don't feel that they are meaningless. Slightly insulted I read on and then flipped through my GitHub Account and realized that though many of these projects don't provide meaning to others they mostly helped me with either understanding a problem or learn something new. In a previous post I mentioned about how I learn a language but to actually understand technologies or problems I do a Michael Pollan approach to programming. I first think of a problem or some area you want to explore, define how it will look and then build it.
I do this a lot with my projects. If I want to learn a new language I tackle a problem I've already solved so I'm focused on how the language feels. If I'm exploring new technologies I use a language I know and I try to explore the technology. These projects aren't useless. They are reference material for future development and tend to build on themselves.
That being said it's great to find a problem you want to solve and build something to solve it. Having a backlog of both problems and solutions available is great to helping me moving forward. I keep a list of technologies to learn and patterns to try. Understanding their use cases will then help you know if it's a tool to solve a problem when it arises.
TLDR; don't build things that don't mean anything to you, build things that you think are interesting or can help.