Might seems bit too far fetched ; but i'd recomend you to learn the basics of drawing (with pencil and paper) try to sketch up a car or a person or whatever ; the idea is that you draw the importants parts without much details ; you would have a shape but not all the details ; and based on that you can think of design trough design layers ;
- what is the problem we solve ?
- what are the constraints ?
I'd also recomend you yo keep refactoring and improving your code ; if it isn't good, juste rewrite it ! document it, make sure you will not get lost