Where Do I Start: Learn How Programmers Think
Common programming blunders can be your best friend when trying to craft your own exploits. If you spend a little time reading what some of these common blunders are, they can uncover potential attack vectors or just show you the weird ways in which computers can store and recall data or access system resources.
Stumbled across a neat article that lists some of the ways in which programmers make mistakes every day. There are some good links in the articles and the comments section.
You don't have to be a gifted programmer to craft exploits, but you do need to learn basic programming skills at some point to graduate from metasploit script kiddie to ethical hacker.
Where do you start? Read, play in your lab, and learn PERL/Python/C++ or some other common language.
Worth a read if you are brand new or a 'salt dog'.