Ah, so now I have a new excuse for my crappy code: I struggled with English in high school!
Seriously though, I can't write creatively, and for that matter can't write scientific papers all that well, but I'd like to think my code has gotten to a decent point (or at least had, I don't get to do anywhere near as much coding as I used to). But for me, there's no question that it came from a lot of practice. Quite frankly, I just didn't know enough when I was starting to realize how important it can be to worry about writing clean code that's decently commented. Eventually I learned that if you do it right the first time, it tends to mean a lot less fixing the code later
.