Do GIS Professionals Need a Developer Toolkit?

Updated February, 2014.

These days, “Is there an app for that?” is not just part of the general vernacular, the question has become almost rhetorical. With few exceptions, the answer is expected to be yes. Surprise (annoyance even) is a common reaction if it turns out there is no app for a particular need. With Google, Facebook, Android, and Apple regularly dominating media headlines, developers own the “sexy job du jour” title.

So it’s no surprise there’s been lots of conversation about whether GIS professionals—analysts, specialists, technicians, and others—should add programming to their list of must-have skills. And how much weight are organizations giving to programming expertise when evaluating GIS job candidates?

The fact is that a lot of GIS professionals have been enthusiastic about programming for a long time. If you attend any Esri event, you’re almost guaranteed to overhear some power ARC/INFO user fondly reminisce about jamming with AML (ARC Macro Language). If there are former ArcView 3.x users in the room, Avenue talk rules. When ArcGIS came on the scene, many GIS professionals embraced VBA.

Given this strong tradition, the current conversation should focus not on whether GIS professionals should cultivate a programming language, but which languages and which platforms will help them do their jobs faster or better. The main reason to learn a programming language is to accomplish something, after all.

Here are some reasons you may want to consider.

Be more productive by automating ArcGIS tasks and workflows.

  • How: You can create scripts to execute time-consuming or repetitive tasks, and optionally set scripts to run after business hours. You can document and easily repeat complicated workflows that some projects require. You can  share your scripted workflows with other ArcGIS users to boost their productivity too.
  • Language: Python. Python is the replacement for AML, Avenue, and VBA. It’s free, cross-platform, and integrated into the ArcGIS platform. If you want to script ArcGIS tasks, learn Python if you haven’t already.

Extend the value of GIS throughout your organization.

  • How: If there are non-GIS users in your organization who perform GIS-powered tasks, you can help them be more efficient by simplifying things for them. Give them the ArcGIS tools they need without overwhelming them with a lot of other features and functions. Maybe they never even know they’re using a GIS application—maybe they’re just opening a map, getting information, and printing a report.
  • Language: For desktop environments, add-ins are a relatively easy way to create and deliver a custom ArcGIS experience. The Microsoft .NET Framework (VB.NET and C# languages) is commonly used to create add-ins. At ArcGIS 10.1 and up, Python add-ins are supported.
  • More and more organizations are having non-GIS staff use web applications to do their jobs thanks to their cross-platform accessibility and lower system footprint. One way to quickly create custom web mapping applications is to use the ArcGIS Viewer for Flex or ArcGIS Viewer for Silverlight. With the Viewers, you don’t have to write any code, you just configure the tools and data you need to deliver a friendly experience and enhanced productivity to end users.

Add new capabilities to support your organization’s unique business workflows.

  • How: If you really want to embrace your inner developer, you can learn how to create custom GIS applications accessible to desktop, online, or mobile workers who create, maintain, manage, or make decisions using your organization’s geographic content.
  • Language: This depends on your organization’s preferred platform. Custom desktop applications are often developed using ArcEngine and .NET, Java, or C++. At ArcGIS 10.1 and up, the ArcGIS Runtime SDKs are a great option for mobile apps and lightweight desktop apps. For web apps, the ArcGIS API for JavaScript has many benefits and has a lower learning curve than other APIs. If you already know some HTML, you may actually have fun learning JavaScript.

Bottom line:

  • Do you need to learn a programming language? If it’s not a requirement of your current job, then learning how to program is optional.
  • Can programming help you perform your job better? More than likely at least one aspect of your job could be done better if you knew some programming.
  • Can programming knowledge make you more valuable to your employer or potential employers? A non-scientific review of major job posting sites reveals that about half of GIS-related postings list a programming language as either a requirement or a recommended skill.  It’s a good bet that sharpening your programming skills is worth the effort and will help you grow your career.
SuzanneB

About SuzanneB

Suzanne is a Maryland native with a degree in English Literature who enjoys writing about Esri technology and other topics. She works with Esri Training Services in Redlands, California.
This entry was posted in Uncategorized and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

7 Comments

  1. curtvprice says:

    I think the ModelBuilder visual programming environment (especially with the enhancements included in 10.0) is taking the place of what used to be “personal” AML and Avenue programming related to automating complex workflows. So, I would add ModelBuilder offerings to the Python offerings above under Be more productive by automating ArcGIS tasks and workflows.

  2. graeme says:

    I agree with curtvprice: Python is awesome but has a steeper learning curve than ModelBuilder, so if all you need is to automate relatively straightforward steps and business rules, the latter will suffice. ModelBuilder also has an advantage when you want to document your model using labels and graphics in a way that could be published. Python is by far the better option for me but I was surprised by how much could be done using ModelBuilder even when model elements/tools numbered in their many hundreds.

  3. ceverhart says:

    Thanks for putting this out there, these types of articles are great for pointing people in the right direction.

    Over the years, I’ve had to use all of the features mentioned in this article to solve problems. My question is – does every GIS analyst need to have this knowledge? From my own past experience, the answer to my question is “no”, but you should have at least one analyst with programming skills in your organization or department. The more the better, but not everyone has an interest in writing code. Does that make them a bad analyst? Not at all, there are a lot of skills that make up an analyst, programming is just one.

  4. deodato2001 says:

    What version of Python will ArcGIS 10.1 use? If it is not version 3.x, are there plans to deprecate version 2.x?

  5. Python is essential now, and .NET is necessary for desktop customization/extension and great for web services/server side web development. Then you mention Flex and Silverlight without mentioning Javascript? With ArcGIS Online and HTML5, how could you leave out Javascript? Considering Javascript’s place in web development, all of the great JS toolkits, the full featured ESRI API, and the questionable future of Flex and Silverlight, I consider it amiss to not give it mention. Last web app I deployed took less than an hour using templates on ArcGIS Online and simple editing of a config file (and it works on and ipad!). Even Adobe is abandoning Flash! With the last Developers Conference demonstrating the increasing interest, JavaScript should be higher up the list of languages to learn.

    • SuzanneB SuzanneB says:

      Thanks, this post is referring to the stand-alone ArcGIS Viewers for Flex and Silverlight. Esri has no plans at this time to build a stand-alone JavaScript viewer. The ArcGIS API for JavaScript is a popular development environment and is included on the Esri product and training pages linked to in the post. Just to be clear, Esri continues to actively support Flex and Silverlight development; you can find a good read about this over at the ArcGIS blog.