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?)
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.