Free GIS Programming Tutorials: Learn How to Code

From GIS Geography:

Learn to write code for free in any GIS programming language

What do successful self-taught GIS programmers eat for breakfast?

A healthy dose of Python, JavaScript, SQL, VB.NET, C++, HTML, CSS… In that order are the most popular GIS programming languages.

It’s not necessary to have GIS programming skills to land a job in the industry. But it’s a feather in your cap if you do. And it will certainly help.

If you’re just starting out, we flaunt some of the best, free GIS programming resources available to pave your way to coding competency:

-Thanks to Reddit user Korlyth for his contributions and inspiration to us for creating this post.

 GIS Programming in Applications – Python, C++, .NET, C#

Python has been a standard language in GIS because Esri and open source tend to gravitate toward it. Of all GIS programming languages, many consider it to be the front-runner.

In addition to Python, C++, C# and .NET languages exist in GIS:

C++ lets you work in multiple environments. While C# and the .NET languages offer you good development tools and interaction with Windows-based software.

We suggest to learn Python first because its usually the first language a company looks for.

Here are 3 bare-boned courses to start your journey into Python programming:

You won’t truly learn Python unless you apply it:

Build your own toolbox to manage, process or display GIS data of your own.

A good example would be to analyze a large Excel file. Import that data into ArcGIS and run an analysis on that shapefile with your Python script.

New Toolbox

Flaunt your new skills on your portfolio page. Add to your CV that you have a working knowledge of Python programming.

The big advantage of using Python is this:

You automate workflow and repeat redundant tasks. If you can save a company time and money with a working example, you’re as good as gold.

If you get good at Python, it isn’t that hard to transfer your skills to JavaScript. This is the way to go for developing your own web mapping applications.

GIS Programming in Python
GIS Programming in Python

Web Development: HTML, CSS and JavaScript

Web development is all the buzz these days.

…And the GIS industry is no exception as it is gravitating more these days to web mapping development.


Starting with the basics, HTML gives a structure to web pages like this one. HTML is the markup language that browsers read headings, tables, lists and more.

While CSS stylizes it. CSS tells your browser to give color, fonts and a layout to webpages.

Assuming you have zero programming skills to start with, these 2 introductory classes will help you build a solid foundation to the 2 most fundamental web markup languages – HTML and CSS:

  • Intro to HTML/CSS (KhanAcademy) – Making webpages begins with the basics. Start learning how to use HTML and CSS to make webpages. (Intro to HTML/CSS )
  • Intro to HTML and CSS (Udacity) – Learn HTML and CSS which are markup languages and the building blocks that make up the web. (Intro to HTML and CSS)

You could start by building a basic non-GIS web page so you can learn these languages individually. Once you have a better idea about syntax and how they work together, you could switch gears into GIS with some of the tutorials.

Embed an ArcGIS Online or Google map on your webpage. You could start by using a pre-existing web map service such as CartoDB and using HTML, CSS, JavaScript to put the web map on your own website and edit it.

But if you really want to make your webpage dynamic, then take a look at JavaScript:

Make Your Webpages Interactive with JavaScript


JavaScript is run in a browser. It manipulates the behavior of your web-based content.

HTML, CSS and JavaScript all work together to create dynamic web content..

Again, the assumption is starting at zero. These 3 courses deliver a good base in JavaScript:

  • Introduction to JavaScript (KhanAcademy) – The KhanAcademy courses are very introductory and won’t take you very long to complete. This one starts with the basics and ends with object-oriented design. (Introduction to JavaScript)
  • Javascript Basics (Udacity) – Udacity courses will help expand on the info learned above. Most introductory classes, but helps you to dive deeper into whatever direction you would like. (Javascript Basics)
  • HTML/JS: Making Webpages Interactive (KhanAcademy) – This tells you how to include JavaScript libraries on your webpage, so that you can use functionality built by other web developers.(HTML/JS: Making Webpages Interactive)

From here, it’s time to challenge yourself. Put your knowledge to action with a project of your own.

Create your own personal web map project by starting simple. Take latitude and longitude coordinates and put them on a web map with Leaflet, ESRI API or D3.

You’ve gone through the necessary courses. You’ve put your knowledge to action. It’s time to give your resume a boost and tell employers. At this stage, it wouldn’t be unreasonable to add “working knowledge of HTML, CSS, JS” upon completion.

Build Sophisticated Webmaps using Leaflet, OpenLayers and More

Rich web maps can use open-source JavaScript libraries like Leaflet.js to really bring them to life:

Leaflet Map
Example of Leaflet Map

JavaScript libraries are code someone else has written to make life easier for the rest of us. This is the same how Python modules are distributed. JQuery, three.js and bootstrap are examples of JavaScript libraries in use today.

When you use Leaflet, you can build your own web map from this JavaScript library. This is why JavaScript is so good with interactive viewing in GIS.

Leaflet.js is well documented and easy to learn. You can do almost anything with JavaScript from spatial analysis to robust basemap servers.

…As technology improves, web development is going to require using 3D visualizations tools such as WebGL.

Here are a couple of courses to fine-tune your GIS programming skills:

You won’t truly learn how to create dynamic web maps unless you apply it.

QGIS Webmap
QGIS Webmap Example

Test your knowledge with a more complex web map project. For example, make a web map with at least 2 toggleable layers.

From this project hopefully you will find why HTML, CSS, JavaScript, XML, JQuery and AJAX are valuable in web development.

As GIS technology shifts to the cloud, web development may just be the better career choice.

Databases – SQL and UML

Almost all modern database systems (DBMS) can use SQL.

Database Management System

A big part of GIS is database entry, editing and maintenance. SQL queries, inputs and deletions can all fine-tune your data.

You should be familiar with SQL and be able to perform SELECT, INSERT, MODIFY and DELETE statements. Joins, relates and further SQL knowledge is greatly valued in the field.

  • Intro to SQL: Querying and Managing Data (KhanAcademy) – Manage data in a relational database with SQL. This free course teaches you how to use SQL to store, query, and manipulate data. (Intro to SQL: Querying and managing data)
  • Intro to Relational Databases (Udacity) – Write code using a database as a back-end to store application data reliably and safely in SQL and Python (Intro to Relational Databases)

When given a database, explore the data models within it. Understand the structure of the database. This database design structure are often represented in UML diagrams.

It’s often the case you can use design tools like Microsoft Visio. Most design work for data models use it.

Practice, practice, practice!

Come up with a project and practice using your new SQL skills. If an employer asks for a portfolio, you have some good examples to share.

R Spatial


Statisticians and data miners use R for open statistical software development and analysis.

What you may not have known is that it’s already being adopted in GIS.

This is because R can visualize and analyze spatial data. It places emphasis on statistics, but it can do both.

It’s not a bad idea to learn some programming languages/packages that are not strictly tied to ArcGIS. And for this reason, R is often recommended:

  • Introduction to Visualizing Spatial Data in R – Robin Lovelace and James Chesire give you hands-on experience with R’s popular graphics package ggplot2 (Introduction to Visualizing Spatial Data in R)
  • Geospatial Data in R and Beyond – The key functions and manipulations of spatial vector and raster data. (R Spatial Cheatsheet)

Object-Oriented Programming (OOP)

Object-oriented programming (OOP) is a must-have skill for a GIS programmer. OOP is about maintaining code as objects and reusing code through instantiation.

You can apply OOP in conjunction with your programming language of choice.

Database schema

Most GIS development is leaning toward the OOP paradigm. And you should too! Mastering the concepts of OOP will propel your career forward in GIS programming.

  • Object-Oriented Programming (Udacity) – Build your own blocks of code as libraries and avoid copying and pasting lines of code. (Object-Oriented JavaScript)

GitHub and CodeAcademy Coding Community

You may be wondering why so many people use GitHub.

GitHub is like a Facebook for developers. Its open community helps developers see what their peers are working on.


Developers can inspect the entire history of a project by version. They can also study a projects’ code and modify it on their own.

  • How to use Git and GitHub (Udacity) – Use version control over the life of a project and optimize collaboration through GitHub. While you’re doing it this may seem pointless. Don’t skip it! (How to use Git and GitHub)

Over 25 million people use CodeAcademy because it’s great for learning syntax. It’s not only for syntax, but you can interactively take lessons in Python programming.

But CodeAcademy comes at a cost for the PRO version courses. Test it out, and it might be a good investment to start in Python.

Learn to Code in Python Interactively (CodeAcademy)

      – If you want to just start coding somewhere, CodeAcademy has the interface for you to do so. (

Learn to Code Interactively, For Free


From Zero to Somewhat of a Coding Hero

GIS Programming - Python, JavaScript, R and More
GIS Programming – Python, JavaScript, R and More

Code all day.

Debug all night

Knowledge in GIS programming is a nice showpiece for your CV. Learn multiple GIS programming languages and you’ll be a grand slam.




This entry was posted in Education and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>