Start off with something simple. Of course learning to program or advancing your programming and designing and managing skills is not going to be simple :-). But if you take small steps it will make it happen.
IMHO unix/linux is very good for starting to program and write games. If you wish you can take writing games to a high level on ubuntu. Skills learned transfer to any platform.
Start off maybe using SDL library. There are a good few examples available. Start with small examples. You can also find big SDL projects and get the source, build and hack on them for fun. You can program in c or python or more languages. SDL lib is available on linux, windows, mac, android, ios :), . . . http://www.libsdl.org/
Start with python if you are new to programming. And start with really simple things like printing "Hello world". You could also start programming with graphical oo lang like scratch or blockly.
Python SDL library is pygame. The documentation discusses python's suitability for game development. Read this: http://www.pygame.org/docs/tut/intro/intro.html
You can have lots of lovely shiny things and have arcade style games working perfectly with python. If you move into 3d rendering or other intensive operations it is common to have optimised code in other languages e.g. c doing that part while a higher language like python is still used for management.
At the start setting up a programming environment can be tricky. Some simple things e.g. just putting a coloured pixel in a window sometimes just work easily but sometimes don't. Argh. Persist. Read the documentation. Read the internet. Make it do what you want :)