Got that out of the way – There – let me backtrack a little……
I started in GIS back in 1992. Maybe it was 1993. Several things started happening about the time I sat down in front of the GIS workstation to start a career:
- I figured out I should have paid attention in typing class back in 1987.
- I sort of liked this whole maps and polygons and data thing
- I also figured out that I could write very small programs to handle repetitive tasks both in the Operating System and ArcINFO.
- I also should have taken more than 1 computer class.
Now – flash forward to 2017 (I’ll use the year for posterity) and I’ve had the following conversation with three people (probably more). I’ll paraphrase:
- Person1: “Yeah I’m new to GIS – I’m going to learn python so I can do GIS”
- Person2: “I’m using ArcGIS – my new goal to to learn python to do more GIS”.
- Person3: “I’m learning python as fast as I can so I can understand GIS”.
Probably the longest conversation I had out of the 3 conversations paraphrased:
- Me: Do you know how much I’ve used Python this month?
- Person: No – a lot?
- Me: None.
- Person: OMG WHAT?!?!
Python is everyone’s favorite. I like it. I know enough python to tear something up. I’m slightly javascript literate. I can write a shell script with some help from the google. I want to write a QGIS plugin which will be in python (at some point). I thought this morning about trying to use python to execute sql code against postgis because why not.
None of that fixes the current issue where a client has done something to a lot of data. I need to fix it. I’m not sure what I’m going to do to fix it. I have Geometry and Attribute issues. I can almost guarantee whatever I do probably won’t be in python. I’m probably going to spend a few hours talking to the client and asking “Why/What/How did we get to this point?”
Why am I having these conversations with people on programming? I remember back when ESRI started including python (ArcPy) in ArcGIS. I was pumped. I imagined this was going to be a lot like AML and things were going to be productive again. Back in the time of Avenue and AML, writing a small menu or anything to save clicks was like a caveman discovering fire. Python in ArcGIS didn’t lead to me writing a ton of scripts. I actually started leveraging more tools in ArcGIS to fix data (like model builder). Python provided that last little scratch for an itch though and it was useful. Most of my GIS Programming friends moved into different jobs and probably better pay. I remember day dreaming maybe that was my way out “Get better at programming and ascend to a better life in GIS”. Never happened for me – I’m not a programmer. I guess it’s still a thing in the GIS realm – “Programming gets you a better job in GIS”. At some point it’s turned into “Python Programming is GIS”.
If I flash back through my GIS career – oh the languages I have seen and been used by: AML, Avenue, VB, VBA, Perl (why that? long story), VB.Net, Python, and I’m waiting for the next thing. I’ve learned a lot of stuff and the only thing that has stuck longer than the rest is python. Two things have been a constant in this career since day 1: data and people. Both can be problems and both make the GIS tick along. It never changes by much. Some of the same conversations I had 20 years ago I still have on data with people: “What do you need to do and what do we need to collect to make that happen?”
So for those of you starting out in GIS:
- Learn about projections
- Learn about databases
- Learn about data
- Learn about the web
- Learn about your software of choice be it ArcGIS or QGIS
- Learn about LIDAR/GPS/Imagery
- Somewhere in that mix of things – experience a programming language. Play with 2 of them. Maybe 3. Find one you enjoy and stick with it. You may end up making a career out of it.
Just don’t learn python thinking that is how you learn GIS. It helps – but not much.
GIS is a big world. Programming is one part of the GIS machine.