I say this because I've worked with a lot of inexperienced developers that commonly have a stack of half finished projects, or things they've re-written half a dozen times to get the architecture right. I'm my experience you learn a lot by finishing things, and being constrained by previous decisions.
Bonus points if you can get customers relying on your work, nothing motivates like support emails.
Consider someone with little to no experience with programming trying to build a single app and planning it out and refactoring and refining it continuously, compared to constantly creating and archiving multiple toy prototypes of the same app and then considering the best among those.
(The app's size and complexity should be commensurate to a single clay pot in a ceramics course.)
It requires the students to actually try to make something of quality, sure, but only to the same degree that the students in the original (apocryphal) story did- after all, those students could easily have shown up with a pile of baked misshapen clay instead of proper pots.
creating 1 pot using 10 tons of clay = writing 50,000 lines of code for 1 project
vs
writing lots of different projects = creating lots of different pots.
It's like order and chaos, what you want is to find a balance that allows you to explore, and leave things a bit open so they can also be extended, but also sound and precisse enough so that it actually works, and does the job.
That matches "the quantity trumps quality" idea above more closely in our industry.