Under development
- Intro
- GIS Fundamentals
- Intro to CS
- Data Analysis with Python
- GIS Programming with Python
- Databases
- Spatial SQL
- Version Control
- ETL
- Web Development Fundamentals
- Web GIS
- Front End Libraries
- Backend Web Development
This repository lays out a path to take someone with no GIS experience to a proficient GIS Developer. The sections are organized by skill level and meant to be progressed through sequentially. This was highly inspired by Open Source Society University.
Resources mostly come from highly effective and free courses as well as blog posts and tutorials. There is a mixture of proprietary (ESRI) and open-source materials.
Please feel free to contribute and correct any errors that I inevitably will make.
If you've taken an intro to GIS course or used GIS in the workplace for more than a few months, skip this section. Otherwise, let's review some materials to make sure we have a basic understanding of what GIS is, what common GIS tasks are, and what GIS tools exist out there.
Choose one of desktop softwares below and run through the associated course to get up to speed. This will take about 40 hours and will give you a great foundation in GIS.
ArcMap and ArcPro are proprietary desktop software for performing GIS analysis distributed by ESRI. These are the most widely used in the industry and learning them is the safest bet at dipping your feet into the industry. Getting to Know ArcPro comes with a free one-year ArcPro license and is well worth the money if you are serious about entering the field. If you take an intro to GIS course through a college, chances are you'll run through this book as a majority of your course work.
The most commonly used open source desktop software. It is free to download and has a wide array of plugins that let you do just about anything with GIS.
Courses (Choose one) | Difficulty | GIS Software |
---|---|---|
Coursera GIS Specialization | Easy | ArcPro |
Getting to Know ArcPro ($40) | Easy | ArcPro |
Official QGIS Tutorial | Easy | QGIS |
Learn basics of programming. How much you enjoy one of these courses may be a good indicator of your success in programming.
Courses (Choose One) | Difficulty | Languages |
---|---|---|
Introduction to Computer Science and Programming using Python | Medium | Python |
CS50: Introduction to Computer Science | Hard | C, PHP, JavaScript, SQL, CSS, and HTML |
CS50P: Introduction to Programming with Python | Medium | Python |
Learn how to use popular data analysis libraries in Python such as Numpy and Pandas. I'm listing quite a few paid options here because they are of very high quality and are interactive.
Resource (Choose one) | Difficulty |
---|---|
Geo Python | Medium |
Python Data Science Handbook | Medium |
Python for Data Analysis ($28) | Medium |
Dataquest ($23 - $50 / month) | Medium |
Data Camp ($25 - $30 / month) | Medium |
Brandon Rhoades Pandas Tutorial | Medium |
Learn how to write scripts to perform GIS analyses and automate repetetive tasks with Python.
Courses (Choose One) | Difficulty | GIS Software |
---|---|---|
GEOG 485: GIS Programming and Software Development | Medium | ArcGIS / ArcPy |
Automating GIS Processes | Medium | GDAL, OGR, GeoPandas, Shapely, QGIS |
- GEOG 489: Advanced Python Programming for GIS
- Geographic Data Science
- Python for GIS Progression Path
- Coursera: Spatial Data Science and Applications
- Datacamp: Visualizing Geospatial Data in Python
- Python Scripting for ArcGIS (ESRI)
- Geoprocessing with Python (Open Source)
- GeoPySpark
- Introduction to Geospatial Data in Python
Learn how to query data, make tables and views, and perform data analysis with databases.
Courses (Choose one) | Difficulty | Database Engine |
---|---|---|
SQL Zoo | Medium | SQL Server, Oracle, MySQL, DB2, and PostgreSQL |
Stanford - Introduction to Databases | Hard | Unknown |
CS145: Data Management and Data Systems | Hard | Google BigQuery |
Learn how to store GIS data and manipulate it in a database.
Courses (Choose one) | Difficulty | Database Engine |
---|---|---|
GEOG 868 - Spatial Database Management | Medium | PostgreSQL / PostGIS |
Official - Intro to PostGIS | Medium | PostgreSQL / PostGIS |
CS145: Data Management and Data Systems | Hard | Google BigQuery |
Learn how to manage projects using version control.
Resource (Choose one) | Difficulty | Software |
---|---|---|
Git Documentation | Medium | Git |
Git Offical Resources | Medium | Git |
Git Tutorial by Atlassian | Medium | Git |
Learn how to extract, transform, and load data.
Courses | Difficulty | Skill Taught |
---|---|---|
Dataquest Data Engineer Path ($24.50 - $50 / month) | Hard | Database Optimizing, ETL, Task Management |
FME Workbench Tutorials | Medium | FME, Spatial ETL |
Learn the basics of web development. It's very important to do this before trying to jump into web GIS.
Courses (Choose one) | Difficulty | Languages |
---|---|---|
CS50: Web Programming with Python and JavaScript | Medium | Python, HTML, CSS, Javascript, SQL |
Colt Steele's Web Developer Bootcamp ($10, search for coupon) | Medium | Node.js, HTML, CSS, Javascript, NoSQL |
The Odin Project | Medium | Ruby, HTML, CSS, Javascript |
- Colt Steele's Advanced Web Developer Bootcamp ($10, search for coupon)
Learn how to add maps to your web applications.
Courses (Do both) | Difficulty | Languages / Frameworks |
---|---|---|
GEOG 863 - Web Application Development for Geospatial Professionals | Easy | HTML, CSS, Javascript, ArcGIS Javascript API |
GEOG 585: Open Web Mapping | Medium | QGIS, GDAL, OGR, GeoServer, TileMill, Leaflet |
- GEOG 865: Cloud and Server GIS - Requires an ArcGIS Enterprise Account and an active credit card to register for AWS free tier.
- Offical Leaflet Tutorial
- MapTime Boston Leaflet Tutorial
- MIT Leaflet Workshop
- MIT Leaflet with PostGIS, NodeJS, and Express Workshop
- ArcGIS REST API Documentation
- ArcGIS: Publishing a map service
- Python - Update Hosted Feature Service
Learn how to make modern web applications using front end libraries.
Courses (Choose one) | Difficulty | Framework / Library |
---|---|---|
Tyler Mcginnis: Free Online React BootCamp | Medium | React |
Maximilian Schwarzmüller: Angular 7 (formerly Angular 2) - The Complete Guide ($10, search for coupon) | Hard | Angular |
Maximilian Schwarzmüller: Vue JS 2 - The Complete Guide ($10, search for coupon) | Easy | Vue |
Front end development is such a broad topic that I'm just going to link to the brilliant frontend section of the 2018 Web Developer Roadmap. You will have picked up most of these skills already by now but getting comfortable with package managers, build tools, state management, CSS preprocessors, and front end testing will put you at a great place for front end development.
Learn how to serve data to a client with a backend server. Almost all of the backend GIS development job postings I've seen require .Net Core (C#). I've seen a few GIS projects using Flask, Django (Python) and Java, but C# definitely seems to be the dominant force here.
Backend development is such a broad topic that I'm just going to link to the brilliant backend section of the 2018 Web Developer Roadmap.
- GeoDjango Tutorial (Python)
- Make a Location-Based Web App With Django and GeoDjango (Python)
- GeoTools (Java)
- Hibernate ORM (Java)
- LocationTech Proj4J Tutorial (Java)
- LocationTech JTS Topology Suite (Java)