Free GIS Programming Tutorials: Learn How to Code

What Successful, Self-Taught GIS Programmers Eat For Breakfast

GIS Programming in Python
GIS Programming in Python

Last Updated: Aug 4, 2017

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, these are the most popular GIS programming languages.

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

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

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.

python logo

In addition to Python, GIS programmers use C++, C# and .NET. 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 it’s usually the first language a company looks for.

Here are 3 starter courses to start your journey into Python programming:

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

For example, build your own toolbox to manage, process or display GIS data of your own.

New Toolbox

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.

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

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

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.

Make Your Webpages Interactive with JavaScript

Web development is all the buzz these days.

…And the GIS industry is no exception as it is gravitating more these days with cloud-based platforms like ArcGIS Online.

HTML and CSS

Starting with the basics, HTML is the markup language that gives structure to web pages like headings, tables and lists. While CSS stylizes webpages with layouts, it also provides color, fonts and size.

But HTML and CSS are easy to learn. Your biggest hurdle is JavaScript. If you really want to make your webpage dynamic, then take a look at JavaScript.

Because JavaScript is run in a browser, it manipulates the behavior of your web-based content. In fact, Esri’s Javascript API is the successor of Flex and Silverlight.

JavaScript

Actually, HTML, CSS and JavaScript all work together to create dynamic web content. In addition, the Dojo toolkit provides language utilities and UI components.

Again, the assumption is starting at zero. These 3 courses deliver a good base in JavaScript and some HTML/CSS:

From here, it’s time to challenge yourself. Put your knowledge to action with a project of your own. For example, 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 often 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. For example, JQuery, three.js and bootstrap are 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 and Esri’s JavaScript API 4.

Here is a course to fine-tune your GIS programming skills:

  • Use OpenLayers 3 Examples gives code examples of clusters, animations, GeoJSON, heatmaps, WebGL and more.

But 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. A big part of GIS is database entry, editing and maintenance. For example, SQL queries, inputs and deletions all fine-tune your data.

Database Management System

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.

Here are some courses to brush up your SQL:

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.

But the best advice is to:

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.

R

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:

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.

  • Udacity’s Object-Oriented JavaScript helps you build your own blocks of code as libraries and avoid copying and pasting lines of code.

GitHub and CodeAcademy Coding Community

Finally, you may be wondering why so many people use GitHub.

GitHub is like a Facebook for developers. It’s an open community that helps developers see what their peers are working on.

GitHub

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

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.

Agree or disagree with the article? Let us know with a comment below.

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

2 Comments

Leave a Reply