There are 3 'levels' of code in civ modding.
XML:
This is where most of the basic changing happens for things like adding units, buildings, techs, civics, etc. and where you change their stats.
This takes as long as it takes to read a few turtorials on doing specific things.
Python:
This lets you do more things and in differing levels of dificulty, this controls a lot of the HUD and screen interface stuff. Along with being able to do many other things. (look at some of the python based mods/mod components to see what people have been able to do (and sometimes not do) with python.
SDK/C++(I think I can never remember if it is C+ or C++!):
This is the source code of the game, and allows you to do the biggest and baddest things, and affect just about everything in the game. (Mods Like RoM:AND, C2C and the amazing Fallout: Tame The Waste

Have custom Source Code.)
As for how long it would take you to learn the code, that really depends on how long it takes you to learn coding languages. You could read a few tutorials and start playing around with some things fairly quickly, other things may take a whole lot longer to learn.
It really depends on how big you want your changes to be, and whether or not there are mods/mod components to do what you want. So whether you would just mod mods, or whether you would be coding content from scratch.
If all you want is to make new units, buildings, techs, etc. or change their existing stats, then all of that can be done in the XML and is no more difficult than word processing, once you had read a few tutorials or the modiki to see how it works and what things you need or want to change.