If you're new to the ideas and concepts of programming check out Learn Python The Hard Way:
http://learnpythonthehardway.org I would not recommend Python for making full applications, it's a scripting language, but for getting your feet wet it's good.
When you understand the concepts you can move on to a real programming language, like C. You can also learn C the Hard Way:
http://c.learncodethehardway.org/book/
One advice the author is giving and which i fully agree is to stay away from IDEs (integrated development environments). using an IDE will teach you how to use that particular IDE, but not how the language works. A language is much more than just its syntax, i.e. how the code is written, but also how it works under the hood.
With C you will be perfectly equipped to go ahead and start making working applications, or go and learn another programming language. Most of the mainstream languages have their syntax based on C, so you'll feel at home everywhere.
As for software, for starters you'll want an editor, a compiler and Make (for C). You can use any plain-text editor, but there are also editors specifically for programmers, some commercial, some fee. There are also special high-performance editors like Vim or Emacs, which are the ultimate tools, but you should not get too concerned with them, your first priority is getting code out. Just pick an editor that feels good to you.
As for compilers, the cool kids these days use Clang (a front-end for LLVM), but there is also GCC (Gnu Compiler Collection). It doesn't matter for beginners, and as long as you stick to language standards your code will compile on any of them.
Finally, get Make. There are various variants of Make and it doesn't really matter which one you used. I have GNU make because that's what was already on my system. Make allows you to specify which source files to compile, which compiler flags to pass and so on, instead of having to tell the compiler each time.