This question is kind of non-specific.
You can start the game development by starting to learn about automata theory, compilers, and start from writing a compiler for your own language. On the other hand you can start by taking completed game engine and create your game on it. And anything in between these two.
As for my point of view, I strongly recommend learning some programming language (be it C, C++, C#, or even things like Haskell, etc. ... basically any programming language will do fine), any of these can be used to creation of game. Even if you will decide to use F.e. Unity (which is very popular these days), you'll still need to know C#. Also understanding the basic concepts behind programming will generally help you understanding how-to work with some specific game engine language (and some do have specific language - UnrealScript for example).
Asset creation is different part of the story. There is a ton of asset creation tool (and toolsets). For 2D there are photoshop, gimp, inkscape, etc. etc.; for 3D there are a lot of modellers like 3ds max, maya, blender,... and also sculpting software like zbrush, mudbox, ...
Of course learning that much of things will eat damn lot of time.