Is Programming an Absolute Must for GIS Undergrads?
August 13, 2015
Justin,
I see programming is an integral part of GIS but it is not currently in my programs’ curriculum, and I haven’t been able to add it in with my other classes as of yet. Is it an absolute must as an undergraduate? And how far into it should I delve into (intro?, intermediate?)
Harel
Dear Harel,
Programming is an important 21st Century skill. If you aspire to a career in GIS you should at least be familiar with basic programming concepts and ideally you would know how to build simple programs.
It’s difficult to advise you how to acquire these skills. Computer Science departments in most Universities tend to do a sub-par job of teaching practical programming skills. Most computer science grads that I know say they didn’t learn anything relevant until their first real job. I think that may be an exaggeration but the reality is that programming is an applied skill and most computer science professors are more inclined to teach theory. Furthermore, and I’m sure there are many exceptions, in my experience academia is typically at least one technology generation behind the private sector. If you want to be a software developer, GIS or otherwise, you must be ahead of the curve in terms of knowing the latest and greatest frameworks and technology stacks.
As such, my suggestion for learning programming is to seek out an intro class at a local community college or online. In addition, I think your best bet is to find a class teaching Python. If the class is taught in Java, for example, you’ll spend an inordinate amount of time trying to figure out the formatting complexities of the syntax. Python keeps things simple so you can focus more on the programming concepts and less on figuring out where you’re missing a semicolon.
Ideally, you’d get the best of both worlds by taking computer science classes while also reading and hacking away on your own. But, of course, it’s difficult to find time to do everything.
Clear as mud?
Unfortunately, there’s no simple solution. You really do need to learn programming if you want a stellar GIS career but CS courses in your college or University may require a lot of effort with insufficient payoff in terms of practical knowledge. So you have to be independently tenacious to come away with the right skill set.
That’s not a bad thing. Tenacity is a good skill and mindset to acquire. In fact, you’ll need tenacity in your career more than you’ll need any particular technology skill.
Best wishes,
Justin
6 Comments
Good post!
A few other Python advantages.
It is an interpreted language. This facilitates trial-and-error exploration of both the language syntax and the CS concepts.
It supports the major CS concepts (objects, inheritance, lambda) in a natural way.
It’s useful for both real computational work and small glue/system-task programs.
It has a rich online community for both classes and Google searching.
There are other languages that hit some of these buttons, but none seem to put it all together like Python.
Dear Readers, Pete is a real computer scientist so his endorsement of Python carries a lot more weight than mine.
Pete, thanks for sharing your thoughts with my readers!
Thanks a bunch. Seems as though its a “learn as you do” sort of deal. I will definitely try to find an online python course in the near future!
I promise I’m not a paid shill, but I’ve been very happy with the Treehouse (teamtreehouse.com) Python course. It’s only $9 a month for students, and they also have classes in JavaScript and web frameworks, which are also useful in a GIS career.
Best of luck!
Hi Joseph – thank you for sharing this offering!
I’ve been playing around with http://www.codecademy.com . They have free courses for Python, Java, HTML, and others. It has been pretty helpful for an understanding of how Python works.