I am a GIS Programmer/Analyst in Vermont with formal training as an Environmental Scientist with GIS. I have found throughout my GIS career the need to learn programming skills. I currently work for a consulting firm where the majority of my tasks are automation using Python scripts and creating custom ArcGIS components using ArcObjects for VB.Net. I am completely self taught in these technologies.

I very much enjoy the programming work I do and I would like to move toward becoming a professional GIS Software Developer. Can anyone recommend an appropriate path to take toward this goal? Specifically, I am interested in formal training to learn the best practices in Software Development that could be applied toward GIS software.


6 Answers 6


I think the answer is based on if you are willing to go back to school or not. You did mention "formal training"; ultimately some of the best formal training you will get for computer science is in school.

It also sounds like you already have a knack for programming. You picked up scripting with python through ArcGIS, which is already a really good thing to know. What you need to know now is likely simple things like:

  1. (OOP) Object Oriented Programming practices vs. Procedural Programming practices
  2. Static Languages vs. Dynamic Languages
  3. Lower Level programming vs. Higher Level
  4. TDD (Test Driven Development)

There are several more I could mention, but these types of principles are the things you will need to eventually learn. Ultimately there are APIs and tools for GIS software development for almost every programming language.. It sounds like you need to learn the fundamentals to make sure your design is good, the best place to do this (IMO) is school.

After going through a lot of it myself, what I found most helpful are the things I learned about OOP. Understanding Object Oriented Design is the key to programming design in today's working environment.


You will want to consider also if you are really looking for general programming or to keep more in the ESRI realm. While a lot of ESRI training is geared towards Arc developers a formal 'school' approach will get you thinking about things differently.

One cost there is you will then see some things that will affect your ESRI work; since the patterns you often follow in ESRI will not fit the textbook methods a good CS program will want to teach. Add to that a CS program will take you in more directions that may not really benifit you in your goals if you are going to keep ESRI GIS in your business line as your career path.

jsmith above is right; those are good areas to consider; but with ESRI they can be a double edged sword.


If you want to be a full stack GIS programmer, you may want to also investigate the open source world of to see how many algorithms are implemented. Codebases like GDAL, GRASS GIS and GEOS/JTS are all well documented and mature codebases and are open to contributions. In some development circles, commit track-records are more important than certification/credentialing.


Keep in mind where you want to word, I'm a GIS Developer that grew up in Microsoft land using Visual Studio and SQL-Server, using ArcGIS JS. Now I work for NYS in a JAVA land using Oracle and Leaflet. I have to admit while I still avoid Java, yet JavaScript and Leaflet are fun and PHP is easy for web services. All set, the college computer classes I took gave me some theory but practical use working with others was the biggest help.

Learning resources like Udacity, Sitepoint, Lynda.com, and Packt all helped bring my skills up to where I feel comfortable, without going back to school. In my case having a family means I still have to keep working and talking to some schools, they kind of looked down on Python, PHP, and even JavaScript. Many are geared to big full blown apps yet my work now is mainly focused simple web apps.

Before going back to school think where you want to be in 5-10 years. Most CS programs are not geared toward GIS Development and most GIS programs do not include programming or database classes.


If you were near Austin, I'd recommend UT's Software Quality Institute.


ESRI trainings can be a good starting point, but since the course is very short (5 days max!) and covers a great deal of aspects, you can gain good horizontal depth but very less vertical depth in the subject. As for programming, I am sure there would be some good books available with ESRI catalog.

Not the answer you're looking for? Browse other questions tagged or ask your own question.