If you want to create any kind of software, you first have to learn programming in general.
Your first step should be to get a good book that teaches you the fundamentals. A good book to start is:
http://www.ibiblio.org/obp/thinkCS/
(I strongly recommend the python version here)
This book is so well because it does not waste time teaching you a specific language or libraries but concentrates you on how to program.
Then you need to learn object oriented programming. A good book that does this is this book about Java:
"Thinking in Java"
http://mindview.net/Books/TIJ4
and you need to know about low level programming. Here, I recommend this book:
"The C Programming Language"
http://www.amazon.com/exec/obidos/tg/det...
And then, to become a really good hacker, you will have to read this one:
"Structure and Interpretation of Computer Programs"
http://www.amazon.com/Structure-Interpre...
there is a free online version here:
http://mitpress.mit.edu/sicp/
IMPORTANT: Beside all the reading, you have to constanly read other programs and write your own code. These three things are pretty much equally important to make fast progress: reading books, writing code and understanding other peoples code.
As an somewhat alternative route, Peter Norvig, one of the greatest thinkers of our time, has set up a document a while ago that teaches a good way to become a good programmer:
"How to become a programmer in *0 years"
http://www.norvig.com/2*-days.html