Learn to write code for free in any GIS programming language
What do successful self-taught GIS programmers eat for breakfast?
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:
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:
- Programming Foundation with Python (Udacity) – Actively learn to code in Python for free. (Programming Foundation with Python)
- GEO485 GIS Programming and Automation (Penn State Open CourseWare) – Learn to use the Python scripting language and automate GIS tasks in Esri ArcGIS desktop. (GEO485 GIS Programming and Automation)
- Python Scripting for ArcGIS (Esri) – Create custom geoprocessing tools and learn how to write Python code in ArcGIS. (Python Scripting for ArcGIS – Download data and PDF through Esri)
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.
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.
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.
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
…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:
- Open Source Web Mapping (Penn State Open CourseWare) – Use free and open source software (FOSS)for creating web maps online. (Open Web Mapping with QGIS, GDAL, OGR, GeoServer, TileMill and OpenLayers)
- OpenLayers 3 Examples – Code examples of clusters, animations, GeoJSON, heatmaps, WebGL and more. (OpenLayers 3 Examples)
You won’t truly learn how to create dynamic web maps unless you apply it.
Test your knowledge with a more complex web map project. For example, make a web map with at least 2 toggleable layers.
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. 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.
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.
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.
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
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.