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 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. Because you can leverage so many Python libraries, many consider this GIS programming language to be the front-runner.
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:
- The Python Scripting for ArcGIS Free Book by Esri guides you to create custom geoprocessing tools and learn how to write Python code in ArcGIS.
- Next, the Programming Foundation with Python in Udacity helps you actively learn to code in Python for free.
- Finally, our list of free Esri training courses and MOOC teaches you Python scripting language and automate GIS tasks in Esri ArcGIS desktop.
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.
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.
Show off 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 with cloud-based platforms like ArcGIS Online.
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.
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
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.
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.
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:
- Khan Academy’s Intro to SQL: Querying and managing data helps you manage data in a relational database with SQL. This free course teaches you how to use SQL to store, query, and manipulate data.
- Udacity’s free course on Intro to Relational Databases gives you the necessary knowledge to write code using a database as a back-end.
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.
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:
- Robin Lovelace and James Chesire’s Introduction to Visualizing Spatial Data in R give you hands-on experience with R’s popular graphics package ggplot2
- R Spatial Cheatsheet is for Geospatial Data in R and Beyond. The key functions and manipulations of spatial vector and raster data.
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
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.
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.