Let’s start with a disclaimer: I am not a programmer. Like many of you, my first real exposure to programming came as I entered the diverse world of GIS. Working alongside programmers, I realized how much there was to gain from having a more direct line of communication with my computer. So, I resolved to start teaching myself a bit of programming: something approachable that would tie in to my ArcGIS Pro work.
Luckily, there’s a perfect programming language for my needs: Python. If you’re reading this, I suspect it might meet your needs, too.
As a non-programming GIS user, maybe you’ve been interested in learning Python for a while but didn’t know where to start. Or perhaps you’ve never felt the need to learn to code – if that’s the case, hear me out.
This will be the first in a series of posts in which we’ll work toward learning Python together. You can think of it as a sort of grassroots, beginner-to-beginner introductory tour. I’ll draw from my own firsthand experience and the insights of Esri team members to help you streamline your own learning experience. Today, we’ll discuss how and why you should learn Python, and why it doesn’t have to be an intimidating process. In the next post, I’ll outline the types of learning resources and how to use them. After that, I’ll provide an introductory hands-on tutorial.
Why learn Python?
Python isn’t a requirement to successfully use ArcGIS Pro (I’m going to talk about ArcGIS Pro a lot in this post, but the same goes for ArcMap). Still, you may have found yourself yearning for more customization, or feel you’re wasting time on long or repetitive workflows. In this case, a bit of programming knowledge can take you to that next level, especially when it comes to efficiency.
Perhaps you perform the same GIS workflows every day, month, or year. Maybe they take you a long time, or you have to shuffle through your notes to remember how to do certain things. With Python, you can write scripts that will save you from these headaches by automating your workflows. And that’s just the tip of the iceberg.
Python is the scripting language of choice for ArcGIS Pro. It has its own module, ArcPy (where you’ll find the Python translation of all your favorite GIS functionalities). You can also run code directly in your project using Pro’s built-in Python window and immediately see the results on a map. What’s more, once you learn the basics of Python and start using the ArcPy module, things will start looking familiar. That’s because, as a GIS user, you already know the workflows Python is performing for you, and the tools it’s employing. You’ll just be using a new tool to complete these familiar tasks.
Plus, if you want to branch out later, having the basics of Python under your belt will be a huge advantage in numerous scenarios beyond GIS.
Okay, but is this realistic?
The short answer is “yes,” but I think it’s important to debunk a myth about the learning process. Has a programmer ever said something like this to you?
“Learning Python is SO EASY! You could teach a [small child/border collie/sleeping person] how to program in Python.”
Please, take this sort of statement with several grains of salt. Don’t feel bad if learning Python seems daunting – and please don’t give up for that reason! Python is easy to learn for a programming language. If you don’t know how to program, you won’t just be learning Python – you’ll be learning the essentials of programming at the same time. Still, learning Python on your own is a very realistic goal if you put in the effort. Thousands of people have gotten their start programming through Python. It’s one of the best languages to start with for several reasons:
- Python integrates seamlessly with ArcGIS (the most important reason, obviously), so you don’t need to be an expert to begin putting it into action.
- Python was originally designed as an easy-to-learn alternative to the challenging C language. As a result, it reads a lot more like English than most other programming languages you’ll encounter and is much more intuitive.
- The online Python community provides a great learning resource and is actively supportive of those new to the language.
I hope by now you’re on board and excited to start learning. In my next post, we’ll dive into the many resources that will help you do just that.