Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

Thanks for the advice.

share|improve this question
Is this the course? – blah238 Jul 12 '12 at 23:06
@blah238: Yes, that is the one. – Aaron Jul 12 '12 at 23:19
EdX has a free course on programming too. You might want to check it out – R.K. Oct 15 '12 at 9:17
A general criticism of Esri courses I've done is that they can hold your hand through every step, without imparting any real understanding of what you are doing, or why. A random person off the street could probably complete the exercises, but wouldn't have a clue about how to use the software the Monday after the course. Real world experience, backed up by self-learning, is more useful IMO. But a course can look good on your CV... – Stephen Lead Oct 15 '12 at 23:01
up vote 24 down vote accepted

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.

share|improve this answer
Great resources, thanks Fezter. – Aaron Jul 14 '12 at 15:37
For general Python, I would add,, and This one is cool because you basically have a Python interpreter built into your browser window (but it is in Python 3 and ESRI and many people are still on 2.x) – DavidF Oct 15 '12 at 17:40
+1 for CodeAcademy – nmpeterson Oct 15 '12 at 20:05
@DavidF, you should really change your comment to an answer so it doesn't get lost. Good info! – RyanDalton Oct 15 '12 at 20:49

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.

share|improve this answer
+1 for the MIT link – WolfOdrade Oct 15 '12 at 20:10
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 '13 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.

share|improve this answer

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...)

Hope this helps.

share|improve this answer
python geospatial development by erik westra. published by packt:… – Kurt Jul 13 '12 at 5:52
Take a look into Think Python: How to Think Like a Computer Scientist it's Free! – Alexandre Neto Oct 15 '12 at 11:28

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

share|improve this answer

why don't you join with these courses?

share|improve this answer

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

-1 - This question was asking specifically for details about what people gained from taking courses, and how they went about learning python, whether on the job, or through a class. This answer would be more useful if, for example, you included what was useful about these courses, and why you suggest taking them. Simply providing a list of courses with no context, won't help someone else who may be searching for an answer to the same question. – Get Spatial Oct 15 '12 at 21:28
As a beginner to program I wanted to catch the simple but valuable tips of programming. I am following these three (online free) courses parallel, not for certificates but for the knowledge and gaining skills. The second course uses python 3, others use 2.7. The class schedule for introducing concepts is different in each. Although it is pretty cool chance to practice the same concept in many ways. – Samanthi Oct 19 '12 at 6:15
They have weekly assignments,Finger exercises (available within online lecture video sequence), Discussions of students,Comments of instructors as well. – Samanthi Oct 19 '12 at 6:44

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.

share|improve this answer

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.

share|improve this answer

Your Answer


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.