Me gusta el material del curso Python para Geoprocesamiento de Chris Garrard. http://www.gis.usu.edu/~chrisg/python/2009/ Personalmente, considero que la manipulación programática de OGR / GDAL es indispensable.
Con respecto a encontrar la mejor opción para usted, considere el software o geoestack en el que desea ser el más experto (como ArcGIS, QGIS, PostGIS-GeoServer-OpenLayers), y luego elija los lenguajes de programación que mejor se adapten a su elección. Esto se podrá descubrir al consultar el idioma de la API asociada u otros tutoriales de personalización. Existe una gran cantidad de recursos de aprendizaje de programación en línea, y una búsqueda web de su paquete de software preferido + idioma + "tutorial" lo pondrá en marcha.
También creo en "aprender haciendo". Por ejemplo, crea un mapa simple con Javascript y Google Maps e intenta agregar geometría, estilo, interfaz de usuario y análisis de interés. Trabaja para ver qué es posible y qué no. A medida que construya, necesitará herramientas más sofisticadas para la personalización, y esto apuntará a plataformas, idiomas y bibliotecas relevantes.