Value of a Python programming course

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:

  • http://www.python.org/
  • http://docs.python.org/tutorial/index.html
  • http://www.tutorialspoint.com/python/
  • http://en.wikibooks.org/wiki/Python_Programming

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.


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.