I have never made a game before, but have been interested for a while, but i have no idea where to start.
could someone recommend some software on where to start, and how to actually program a game.
I also have a keen interest in game designing. I would suggest you to learn graphics under c if you know C language. Its very easy if you know C language, I myself learned it with help of a book "Graphics under C by Yashwant Karnetkar" . I have tried some simple games like snake xenia , bricks, packman and learned a lot. Try learning this language I'm sure you will find it interesting.
You should learn a programming language first. I suggest C or C++. You should buy some books on those programming languages and check out http://www.gamedev.net
They have a lot of good stuff for beginners to read.
I suggest that you start reading a bit about computer graphics, start off with OpenGL graphics pipeline to get the different aspects of what happens in you PC and then pick a specific programming language (I use C/C++), there are many different game studios you may use (like XNA...) but if you want you can start off with OpenGL, it is nice and very useful and then when you're really acquainted with graphics, start by creating some animations to lead you to a final game design.
I've been studying games at uni for the past 2 years, and if you want to do any graphics programming (especially 3D graphics), I would highly recommend learning some of the maths first. I'd focus on geometry, vectors, matrices, and their application to 3D graphics/physics. This will make learning the graphics APIs and programming a lot more straight forward.
If you want to jump in the deep end and want a really good reference book, I highly recommend "Introduction to 3D Game Programming with DirectX 9.0c - A Shader Approach" by Frank D Luna. It was our prescribed text for learning shader programming, but it has a little bit on maths and programming that will at least point you in the right direction if it's not enough. Obviously it's DirectX, so Windows only.
Having said all this, everyone (including me so far =P) seems to be assuming you want to program fairly "serious" 3D games, which generally means C/C++ with OpenGL or DirectX. If you're learning yourself, you might find it more rewarding and easier to get started with a higher level programming language like C#, Java or Python and program some basic 2D games like tetris or space invaders. As pointed out above, a framework like XNA could be a good place to start. Once you're more comfortable with programming, and basic games concepts, then you can move onto C/C++ and graphics APIs if you feel like it. Learning 3D maths, graphics, and C/C++ all at once could be quite daunting, so starting out small is probably a good idea.