Scripting With Snakes: A Beginner’s Guide to Python

Are you constantly running through a workflow, wishing there was an easier way to accomplish a task? Want to take advantage of ArcGIS Notebooks, but are unsure where to start? Then Python is for you!

What is Python?

Python is a general purpose, cross platform, open source programming language that is extremely powerful, once you learn how to use it. Learning any language is tough, but Python is a good place to start. It is relatively easy to learn, and is a good starting point if you are new to programming languages. Check out for documentation, downloads, and the latest news.

Women sitting with computer and book titled Python.
You can fit small Python learning sessions in, to work with your schedule.

What does it have to do with GIS?

While Python isn’t something you need in order to be successful in the GIS world, it will take your skills and workflows to the next level. It has many uses when it comes to GIS, from analysis to workflow automation to the ArcGIS API for Python. Find yourself running the same task or workflow repeatedly? Then Python is definitely for you. You can set up scripts to run tasks with one click while you are on lunch or catching up on other tasks.

Python can reduce the number of tasks you are performing and can also help you perform powerful analysis. When paired with technology like Jupyter Notebooks (or the new ArcGIS Notebooks), you gain access to powerful analysis tools. Below is a video from the 2019 DevSummit on advanced spatial analysis that you can do with Python and ArcGIS Notebooks.

ArcGIS Notebooks Server demo from the 2019 Esri DevSummit.


When learning Python there are many paths you can take on the road to becoming a Python master. There is no wrong way to learn Python if you start with the basics and move at your own pace. You can take traditional classes, self-paced online classes, or learn on your own. Below are online resources, classes, and books to get you going in the right direction.

General Resources

The Python Tutorial is an exhaustive tutorial on the basics of Python. This tutorial is self-guided with step-by-step instructions to get you familiar with the language. It will familiarize you with terminology, syntax, formatting, and the basics of working with Python.

Python Crash Course is a great book to get you started if you prefer to have a physical reference with you while you learn. It covers the basics of Python in the first half of the book and gives you projects to work on in the second half. If you prefer an online resource then check out the free text Think Python.

Programming Foundations with Python from Udacity is a great online course that is free! The course is broken down into 7 exercises that will take you through the building blocks for a strong foundation. This course has the opportunity to work on mini-projects that allow you more hands on experience with Python.

GIS Resources

Python Scripting for ArcGIS is a great text to have at your fingers if you are an experienced ArcGIS Desktop user learning Python.

Getting started with arcpy.mapping tutorial is a quick and basic tutorial of using Python with ArcMap. With a handful of basic workflow tasks, you can get a taste of what Python can do.

Esri’s training courses offer you the opportunity to try out Python in an environment you are already familiar with! Here are a few that I recommend checking out:

What Next?

Once you have a handle on the basics of Python, you can start integrating it into your GIS workflows. Working on projects or tasks related to your day-to-day work will allow you to grasp concepts easier. Try scripting a process rather than running the tool from ArcToolbox. Work on something that you know the expected results; it will make it easier when troubleshooting mistakes.

Want to learn something else? Check out these articles:

Solution Engineer

Michelle is a passionate and self-starting GIS professional looking to change the world with mapping. She works with our Enterprise team, supporting the daily operations of our GEOPowered Cloud.