In many ways, being a software developer is similar to being an athlete. The more hours you put into practice, the better you become. Sure there are the Linus Torvalds and Lebron James, but even they have spent countless hours to get to the level where they are. If you don't want to be destined as a Non-Programming Programmer, there are several paths you can follow to improve your skills.
Pick an open source project, preferably a project in the domain of your interest. Depending on the scale of the project, the owner(s) of the project may not immediately accept contributions from you, especially if you have not established yourself. Don't fret! Join their mailing list and start by submitting patches containing bugs or small feature requests posted on the project's site. Be sure to follow their coding conventions and etiquette. After time, you may be invited to their core team. How cool would it be to have your name on a project like OpenCV?
There are many sites out there that push your coding skills to the limit. Some sites, such as Project Euler, provide a series of programming problems that allow you to arrive at a solution on your own time. Other sites, such as TopCoder, have you competing against other developers within a specific time frame. Scores are calculated by both correctness and speed performance. Even if you never place high in the rankings, take comfort in the fact that pushing your mind to the edge helps prevent Alzheimer's Disease.
Be a Side Entrepreneur
If the other two options don't excite you, think of a feature that you want or other people want, then implement it. Besides being a better coder, you could make a small fortune. YouTube and Twitter both began as a single feature that someone thought would be useful. "Hey I want to share video with friends and family" or "Hey I want to easily send SMS text to a group of people".
Follow any of these paths and you will become a Level 280 Dark Zen Elf Warlock Über Coder in no time.