My next Scratch project is underway - a dystopia simulator inspired by EVERY YOUNG ADULT SCI-FI NOVEL EVER.
But first I have to complete it. Programming challenges so far have included creating a scrolling map that can be changed as new tunnels are built, and having large numbers of dystopian citizens exploring it. One of the best features of Scratch is, it's surprisingly fast at parallel processing: so you can have large numbers of active sprites and still keep everything moving quickly, as long as each object has a fairly short routine.
When I started programming as a child (I was raised in BASIC IV) I learned by experimentation and mistake-making. Over the years I've learned a little of other languages: 6502 Assembler, Basic V, C, Inform, DarkBASIC, COFFEE, HTML and Python. Scratch is the first language I've tried that brings back that feeling of experimentation.