Good question - where do "learning exercises" end and "useless amusement projects" start?
If I want to learn a new language I might do some fun exercises or hit an online course or a book, both of which contain lots of "useless" toy examples and exercises.
For a high school student this may be a hello world, for a CS professor this can be a small OS.
I believe the "learning exercises" are over when you are able to develop solid real world software with the skills you have but you decided to keep expanding "horizontally" your skillset out of desire for novelty, desire for visibility or just fear of missing out. We all know people with 10 years of working experience that start new libraries to deal with a super-niche engineering problem already solved by 5 other libraries just to say "I made this and it went around" or "All the other libraries suck because they are built on different opinions than mine". Obviously 99% of these projects die very early just to be followed by a new one.
If I want to learn a new language I might do some fun exercises or hit an online course or a book, both of which contain lots of "useless" toy examples and exercises.
For a high school student this may be a hello world, for a CS professor this can be a small OS.