I am a self-taught programmer with 14 years in QA experience (most of it as a Software Developer in Test). My experience in QA helped increase my understanding of design, many different core/fundamental technologies (html, http, tcp, msaa, etc) and exercised my analytical and critical thinking skills, all of which helped prepare me to become a developer.
Once I began writing code (starting with some simple tools, web sites/services and automation) there was a lot more to learn. My QA experience was nice to have, but it was for the most part only indirectly beneficial to my ability to learn to write code well. Being successful in QA does not necessarily correlate to being successful in development, I have seen great testers forced into development roles that did not enjoy it and were not as good at it. I have also seen great testers turn into great developers and even some not so great testers turn into great developers.
I have chosen to stay in a QA role (Software Development Engineer in Test). I spend the vast majority of my time performing development tasks (spec'ing, mocking up, writing code, unit testing, etc). Many large companies (Microsoft, Google, etc) only hire QA resources that can write code. My pay is on par with what a developer gets paid. I enjoy the breadth of projects and the variety of things I get to work on in this role. Often a developer will get a lot of depth in one specialty.
My point is that writing code is great, you have the option of staying in a QA role or not and still writing code. You can also move into a development role or work on your own projects, do what makes you happy. Just keep in mind that the road to becoming a great developer is a long one. There is a huge difference between learning the basics of a programming language and learning all the ins and outs of a programming language and writing maintainable, performant, secure code using appropriate algorithms and design patterns. By the end of your career 30 years from now, you'll still be learning new things.