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.).
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).
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.
VBA and GIS
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.