Well that sir is just a really big question. My first bit of general advice is that when asking a question like that, you need to include some useful background information, such as...what GIS experience do you already have? Are you already proficient with non-spatial programming? Are you a student just starting out, or an experienced worker looking to switch gears? It is typically hard to get useful responses to such a fundamental question without setting the stage a bit, so we know where you are starting from.
Do you already know at least one programming language?
ESRI has some appropriate training plans already developed that have a lot of free content if you are under maintenance:
You couldn't go wrong taking a look at those plans and see if any of that aligns with what you want to do. Joseph Kerski
Beyond that, keep an eye open for the MOOCs, these are a free way to get a pretty good exposure to the many different aspects that are the science of GIS:
Another alternative is to find someone who already does this kind of work and is willing to mentor you.
Thanks Jay ! Good suggestions. Joseph
Joseph J. Kerski, Ph.D. GISP | Education Manager
Esri | 167 S. Taylor Avenue | Louisville CO 80027-3025 | USA
firstname.lastname@example.org | esri.com