Learning GIS Programming

Caitlin Dempsey


Having some competence in programming has become a critical requirement for many geospatial positions.  The majority of GIS analyst level positions require some expertise in programming and application development.  So which languages should you learn for GIS programming?

Python is a popular scripting language in the GIS arena, especially for those wanting to work with Esri’s ArcGIS and open source QGIS desktop products. Learning Python is the way to go for scripting and creating tools inside of the ArcGIS framework.  C# is another recommended programming language that is relatively easy and intuitive to learn.  Learning .NET will also allow you to customize ArcGIS.  Using VBA is on the decline and Esri will no longer support VBA beyond ArcGIS 10 (Users who have custom functionality built using VBA should actively plan strategies to rewrite their applications using a supported development language such as Python, VB.NET, or C# so their applications continue to be operational and supported in future releases of ArcGIS.).

For web-based applications development, learn HTML, JavaScript, and CSS as a baseline.  Java, PHP, and ASP.NET are additional programming languages for more advance web development.

Where to get started?  Learning the basic concepts of programming is very important.  From there, move onto a specific programming language.  Below is a guide to finding online resources and books to help you learn programming.

Do you have a recommendation on learning programming for GIS?
Leave your tip or resource link in the comment section.

GIS Lounge is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com. Amazon, the Amazon logo, AmazonSupply, and the AmazonSupply logo are trademarks of Amazon.com, Inc. or its affiliates.

The Basics of Programming

How to Design Programs: An Introduction to Programming and Computing
While dated, this is a must read for anyone how wants to learn how to program.  The September 2003 edition can be accessed free.

C++ in GIS

C++ is an essential programming language for developing customizations and plugins for such popular GIS programs as QGIS and ArcGIS.

Object-Oriented Programming with C++
Free online courseware (lectures and tutorials) from University of Southern Queensland’s OpenCourseWare (USQ OCW).


Those wanting to program Web GIS will need to become proficient in JavaScript.  Many web GIS applications require this language such as Google Maps, Leaflet, and ArcGIS.

Start Web Development with GIS Map in JavaScript
This course on Udemy will introduce students to the ArcGIS JavaScript API.

Python and GIS

Python is a scripting language that is popular for extending the capabilities of ArcGIS and QGIS.

(also see Python and GIS for more resources)

Beginner’s Guide to Python
Free, online resource to learning Python.

QGIS Python Programming CookBook
Learn how to use Python to create dynamic maps in QGIS with this free preview chapter of QGIS Python Programming CookBook.

Python Scripting for ArcGIS
Learn about this book from Esri Press that teaches experienced users of ArcGIS how to develop their programming skills using Python without the need for prior programming experience.

Google’s Python Class
Free class from Google to learn Python.

Python for Software Design: How to Think Like a Computer Scientist
Book that provides a concise introduction to software design using Python.   This book is the updated version of How to Think Like a Computer Scientist: Learning with Python which can be downloaded for free under the GNU Free Documentation License.

Geoprocessing with Python using Open Source GIS
Structured  course outline by Chris Garrard of Utah State University with links to open source software, course slides, and data.


Getting to know ArcObjects: Programming ArcGIS with VBA
Book by Robert Burke that provides a basic overview of programming and programming ArcObjects within the Microsoft Visual Basic for Applications (VBA) development environment.

GIS Programming Makes You Lazy
Tutorial Site  that provides and overview of the concepts of Objects, Classes, and Interfaces, VBA, and ArcObjects.


Photo of author
About the author
Caitlin Dempsey
Caitlin Dempsey is the editor of Geography Realm and holds a master's degree in Geography from UCLA as well as a Master of Library and Information Science (MLIS) from SJSU.

Free weekly newsletter

Fill out your e-mail address to receive our newsletter!

4 thoughts on “Learning GIS Programming”

  1. Great guide. I’m a first year in university hoping to end up doing GIS and this is a great way to give me a competitive advantage before getting GIS specific.

Comments are closed.