I am considering upping my programming skills by taking a python geoprocessing course through ESRI. Before I part with the hefty registration fee, I would like to get your opinion on the value of 24 hrs of instructor led python programming. I am primarily interested in learning the following:

  • For those of you who have taken a course such as this, did you walk away with applicable skills or more theoretical knowledge?
  • For those of you who have recently been in the job market, did you find employers looked favorably on having a class such as this on your resume?
  • For employers, does a specialty course like this really matter, or do most GIS analysts/specialist learn python programming on their own?
  • 1
    This is a list of many questions, please try to limit your questions to a single question. Sep 7, 2019 at 1:56
  • @Ifyoudonotknow-justGIS This is one of those "legacy" type questions that was asked back when site standards were being formed.
    – Aaron
    Sep 7, 2019 at 1:58

9 Answers 9


I am of the opinion that any course you have on your resume cannot be a bad thing. Your initiative to take a course to increase your knowledge can only be seen as a positive thing to prospective employers.

I cannot speak to the value of the ESRI course but it will probably be of high quality. It will, however, be focused on python implementation within the ArcGIS environment. It will not teach you programming best practice techniques that you will gain through a university course. You will most likely gain knowledge of how to implement tasks that will help you in your working environment.

I recommend reading up on Python and practicing as much as you can prior to the course to get the most out of it.

Here is a good source that helped me learn the basics of Python. Some other sources to help you out can be found here:

EDIT: If you can get your current employer to pay for the course, all the better.

Good luck.


I took a paid course through Geospatial Training Services, but I didn't pick up all that much. It was generally just: type this, type that.

The course that really got me going was the Python course through Penn State's GIS Master's program. It's free, of high quality, and it makes you think. They give you several exercises to work through. Solutions are included through code and video.

The course focuses on arcpy (ArcGIS). If that's the software you're using I highly recommend the course.

NC State offers a programming course in their Master's of GIS program too. It goes into more detail than the Penn State course on the built in Python Modules / language as a whole. There are some specifics on arcpy as well.

To @WolfOdrade 's point MIT's Computer Science program offers their Intro to Com Sci & Programming course (in Python!) under the open courseware license too. The course covers all the basics of Types, Loops, Control Structures, etc. without a bias towards any API.

  • Another option for vanilla python is Learn Python the Hard Way. The pdf is available for $29 if you prefer a hard copy, but the web version is free. There are distinct, digestible topics that you can work through in series, or as you need a refresher.
    – Roy
    Dec 31, 2013 at 3:45

In addition to a (potential) increase un employability, I think learning to use python is always a good idea. It makes your workflows reproducible, allowing you to version control how an analysis develops in time. If a co-worker asks you how you did this or that, you can just pull up the script. In addition, if someone asks you which postprocessing steps changed in the last few weeks, you can answer that question. Imo this is hard to do with the GUI.


In addition to Fezter's advice, I'd recommend getting a good Python textbook and working through it. I have Beginning Python by Magnus Lie Hetland. But to be honest, I'm not thrilled by this one—not enough exercises and sample code throughout much of it compared to a more college-oriented text like Big Java by Cay Horstmann, which I taught myself Java with.

(as an aside, I'd love to find a more college-oriented Python textbook. If anyone knows of one...)


Another resource that you might want to look at and is FREE is the text How to Think Like a Computer Scientist - http://www.openbookproject.net/thinkcs/python/english2e/. Working through this and some of the other resources (like Penn State) will make it easier for you in the ESRI class.


Like Fezter, I agree that the ESRI course would be of high quality. However I think that like most APIs, the ESRI model is nearly impossible to understand without a background in 1) object-oriented programming and 2) design patterns. I'm talking 'Rain Man tries to figure out Hu's On First' incomprehensibility. Even seasoned programmers without this background will have pretty much the same experience.

With any sort of formal training in these two areas, programming against ESRI APIs (and pretty much everything else) becomes quite easy without any additional training and this is a knowledges base that transfers well to other settings.

I guess my point here is that I would get a couple 100- level CS courses from a local college or something under my belt before anything else, or at least read some of the comprehensible great material published on these subjects.


I picked up this book about a year and a half ago (Python Scripting for ArcGIS) and found it to be very good as it is geared toward ArcGIS. I had picked up some other Python books from the library and found them hard to relate back to GIS. I do not have a programming background, but this book was quite helpful in going over the basics as well as info specific to ArcGIS.

It took awhile to plod through the exercises, but it gave me a good foundation to work off of. I found the best way to learn is to just go out there and try to make up some scripts. You sure do figure stuff out after you bang your head into a wall several hundred times!

Edited to add: I did take an ArcPy course that was more discussion than lecture and while it was somewhat helpful, I think learning it on your own (with a mentor, if you are lucky enough to stumble across one) is the best way.


I'd like to add that there are Python courses from the University of Helsinki aimed for geographers.

  1. Introductory course:
  2. Quantitative Geology (continuation)
  3. More advanced material:
  1. For those of you who have taken a course such as this, did you walk away with applicable skills or more theoretical knowledge?

Mostly applicable skills. Learn what is most important/usable from someone skilled, then go home and practise/focus on this.

I went on an ESRI course in arcpy and what I've had most use from the course is for example:

  • da.Cursors
  • List / dictionary comprehension
  • How to build sql queries which work in ArcGIS
  • Describe function
  • Pandas

It would have taken me a lot of time to figure out these on my own.

Some arcpy knowledge is very useful in learning pyqgis (and the other way around). The same principles apply in both.

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