Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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.

Thanks in Advance Brian

share|improve this question
1  
Why formal? Some are saying there's a bubble in higher education, so maybe informal would be a better investment. –  Kirk Kuykendall May 17 '11 at 13:17
2  
I have essentially the same background. I went back and got my Masters Degree in GIS (Geography) but spent most of my studies (after I dropped my thesis topic) on studying translating maps into web applications (the Web API's were brand new at that point). From there it's led me to a couple of gigs as a GIS Developer. Becoming an efficient coder IMO is just a matter of doing it constantly. Try reading Clean Code by Robert Martin. It's been invaluable to me in making my code easier to read and more efficient to run. Good Luck! –  Luke May 17 '11 at 14:21
add comment

5 Answers 5

up vote 8 down vote accepted

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.

share|improve this answer
2  
Thanks for your response. I am definitely looking for a school program. I struggle with more traditional CS programs vs. software development specific programs. I'm thinking along the lines of a certificate program in software development that would teach the software development life cycle, best practices, and common tools. It's easy to learn another language. I need the fundamentals. –  Brian May 16 '11 at 20:35
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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