« Will 2009 be a transition year for location based services? | Main | State funded GIS in Maine »
Saturday
Dec272008

How to become a GIS Programmer

There was a post on the NEARC List Serve recently that grabbed my attention.   The post read something like "Please give me your thoughts on the quickest way to become a GIS programmer as it seems that I could be more employable with these skills."  The post really struck a chord with me as we have a very difficult time finding good GIS programmers at PenBay Media.  I have been pretty frustrated with the University system and its inability to graduate well-prepared developers of any stripe let alone GIS developers.  Most of the responses to the post were very narrow (one was LEARN JAVASCRIPT) and technology specific which frustrated me and I am assuming the original poster.  I have been thinking about the issue for some time now, and here is my advice:

1.  Learn an object-oriented programming language.

I try to be technology agnostic.  The choice of platform should really be determined by the organization that you wish to work for and what you want to really achieve with your programming skills.  Each organization has its own IT preferences and truthfully the differences in capabilities of the different platforms are in the margins.  Learning the concepts of object-oriented programming, however, is a must for any good developer.  Pick your platform - Java or C# and learn the fundamentals of object-oriented programming.

2.  Learn how to develop for a 3-tier web architecture.

If you want to build applications that people will use to solve real-world problems, then you must be able to design, develop, and deploy web applications.  This means that you need to know how databases work, you need to understand how application servers work (how they scale, how your application design will affect performance, etc.), and you need to understand how security is handled in a web environment.  In order to do this, you will need to be competent in a number of different technologies including SQL, HTML, XML, JavaScript, CSS, and your application server of choice.

3.  Learn what coordinate systems are and how to use them.

The concept is simple - we live in a roundish world and we make flat maps.  Coordinate systems help us to resolve the whole round to flat thing.  The implementation is anything but simple.  There are thousands of different coordinate systems that have been developed over the centuries each optimized for linear distance or area in a particular part of the world or for the whole world.  You need to understand the basics of coordinate systems to be a successful GIS developer.  Period.

4.  Apply what you have learned to real-world problems.

This is what seperates the wheat from the chaff.  This is also where I belive most Universities are failing their students.  Being able to repeat coding patterns from text book examples does not make effective developers.  Effective developers create solutions that people use to solve real-world problems.  In the hiring process, this is where the real stars stand out.  When I am interviewing developers, I am only marginally interested in the school that a candidate attended or the grades received.  What I AM looking for is practical experience.  I am looking for developers that can demonstrate their ability to listen to users, to understand their problems, and then design, develop, and deploy solutions that help solve those problems.

I am a big believer in learning by doing.  If you want to become a GIS developer, start developing solutions.  Start small and build up.  Each time you do something new you will learn something new.  As you develop more, and more interesting applications you will simultaneously be building a portfolio that will be your biggest help in landing a new job or a more interesting job in your current organization.

Reader Comments (2)

Stu,

This is an interesting article. One of the hurdles that we encounter when hiring folks is that people with a geospatial pedigree are often light when it comes to heavier IT principles, while folks with heavy IT skills, usually, know very little about GIS. My running hunch about this is that most people with exposure and expertise in GIS, whether academically or professionally, use GIS as a support tool rather than study it as a core service. For example, many of our analysts have degrees in geology, chemistry, environmental science, etc. Even those with straight geography degrees usually have user-level exposure to how the overall system works. Core IT concepts such as networks, SW design, DBs, hardware, etc., are often never discussed. This puts them at a disadvantage in the real-world.

One of the toughest questions we continually face is: “Is it easier to hire a strong IT person (e.g. developer, system engineer, system architect, etc.) and train them in GIS or to hire someone strong in GIS (e.g. data, surveying, etc.) and train them in IT?” With developers we usually hire IT people and train them in GIS, with system engineers and PMs, we hire GIS talent and train them in IT. Either way, for those in school for GIS, I would highly recommend some core CS classes….I promise that they will not be wasted and, if you have the opportunity, get a minor or major in IT….especially if you like technology.

February 28, 2009 | Unregistered CommenterDave Williams

I am a GIS analyst in transportation planning. worked for 5 years, and then started to take courses in database, .net programming and testing applications. Looking forward for a GIS developer career. IF any positions are available who can hire a GIS analyst and train in .net, please let me know. thanks

February 18, 2010 | Unregistered Commentersara

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>