How to improve
Read other people’s code.
Experiment with the language itself .
Experiment with all the basic classes.
Write the same program from scratch each time trying a different way.
Spend time reflecting on a design and try to identify parts that worked well, felt nice and looked beautiful.
When you find yourself spending a significant amount of time designing over implementing it’s time to start learning OOD methods and Design Patterns.