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?
Learning Python or Javascript is a good start.
ESRI has some appropriate training plans already developed that have a lot of free content if you are under maintenance:
https://www.esri.com/training/catalog/5e14df4436e7e15d09b53cff/arcgis-api-for-python-fundamentals/
https://www.esri.com/training/catalog/5eb193be59bcad254d30a591/arcgis-api-for-javascript-fundamental...
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:
https://www.esri.com/training/mooc/
Another alternative is to find someone who already does this kind of work and is willing to mentor you.
Good luck.
Jay
Jay
Washoe County GIS