Learning GIS programming: An overview

25

progLanguagesThe diversity of programming languages and tools being used in GIS (in general in the Geospatial industry) today is truly staggering. Depending on what the position requires, one would be expected to have expertise in SQL, python, C++, Java or JavaScript, Flex and PHP (just to name a few). Knowledge and competence in programming is a essential skill set and a critical requirement for most Geospatial job opportunities these days.  A vast majority of job openings in the Geospatial industry require some expertise in programming, application development and software management.

As Geospatial professionals/graduates/students, some of us overlook the importance of programming in our careers. Some of us believe that our spatial skill sets are niche enough to compensate for the lack of our programming expertise. Well that might not be totally wrong. However, knowledge of programming is most certainly going to open up a whole new array of possibilities! It might be a good idea to have a look at recent job postings in the Geospatial industry to get an overview of the requirements 🙂

So which language(s) should you be learning to excel in the Geospatial industry? Here’s an overview of programming languages that are widely used in the Geospatial industry.

Overview of Programming languages for GIS

JavaScript: WebGIS is certainly the next big thing in GIS and right from big data to twitter visualizations, everything that involves Web User Interfaces is being written using JavaScript. Google Maps, OpenLayers and a whole lot of other applications run on JavaScript. Personally, it has been a great experience for me using JavaScript for WebGIS projects. It might have its own drawbacks, but its amazing to see what JavaScript can help you achieve. (JavaScript for Geospatial applications; An Overview).

Java: Java is one of the most commonly taught programming language in universities and many Geospatial solutions like GeoServer and GeoTools are written using Java and is certainly one of the most popular languages among Open Source GIS developers.

C++: A vast majority of the software we use is written using C++. Most companies still prefer to develop applications using C++ due to this very reason. In fact, GRASS GIS, QGIS and many other GIS software were written using C++ (and python). Most GPS receivers have their firmwares written in C++. If you are look at Geospatial industry as a whole, C++ is a certainly good language to know.

SQL: GIS is incomplete without a database and SQL is a arguably the most famous database access and management language. Most databases have their own additional SQL extensions but the syntax for common tasks is standard. It is definitely worth spending sometime to learn at least the basics of SQL.

Python: Very popular with Geospatial professionals working in the ESRI environment and is considered as the primary scripting language for ArcGIS. Python is a great “integrator” and is fairly easy to work with and is sometimes regarded as more of a scripting language but that debate is still raging.

Programming Coding GeoawesomenessThere are a many more programming languages like C, C#, Visual Basic.NET, Flex, ActionScript, PHP, VBA for ArcObjects, etc that are being used in the Geospatial industry.  If you want a complete overview of all the languages used in GIS programming, have a look at this link (Penn State – Geography Department).

There are many options and it is rather difficult to say which programming language is “the” one to learn. It might be a good idea to have a grasp of both Desktop and Web development languages, say Python and JavaScript for example. An even better idea would be to have a look at the company where you would like to apply for a job in the future and examine their programming language requirements. Here’s a list of tutorials/resources that might be handy.

Programming Tutorials/Resources

Python for ArcGIS: Really useful article on resources for learning to use python for ArcGIS.

JavaScript tutorial by Mozilla and OpenLayers: Might be the best way to kickstart your programming in JavaScript 1.01 course.

Geospatial for Java by GeoTools: A good platform to begin your Java adventures.

Learn C++: This is just one of the many tutorials out there for C++. It might be a good idea to start your journey side by side with some examples from GEOS. Here’s an OpencourseWare on C++ by University of Southern Queensland.

Coursera MOOC on Algorithms (starts September 5th, 2014).  Fundamentals of algorithms will definitely come in handy.

SQL Tutorial and PostGIS documentation: Learn the basics of SQL and then dive into the world of spatial queries.

Of course, people have different opinions on what makes a good programmer and what is the best way to learn programming. In my experience, I always found it engaging to build something and learn the language on the way rather than just follow a tutorial to the T. Learning GIS Programming or programming for GIS is without any arguments, a great addition to your resume as a Geospatial professional.

Source articles: List of GIS Software and Overview of Programming Languages for GIS

Please leave a comment with links to your favorite tutorials/resources to learn a particular programming language. It would be awesome if you shared your experiences regarding programming in the Geospatial industry as well 🙂 Looking forward to all your comments/experiences!

I am one of those passionate "Geo-geeks" and "Geo-people" who is just too excited about everything Geo and Management. Location information and spatial technologies are just too big to take a back seat and watch them revolutionize the world. Always curious and looking for ways to innovate, I guess that it comes naturally by the gene pool I inherited from an engineer Mom and a researcher Dad.
  • S.S.Ramakrishnan

    Hi,

    It is a good article in all respect . We in IRS are thinking to form a Division in informatics as our course is Geoinformatics, which comprises of two or three staff members to start with.The main focus is to advise and guide the student to learn the skills of programming.
    I am surprised even Fortran programme is used by many researchers in climate modelling and photogrammetry.

  • Mišo

    Hi,
    When you are talking about programing languages in GIS, it shouldn’t be avoided MAGIK, the full OO programing language used in GE’s Smallworld (now days moving to Java virtual machine) .

  • Pingback: Learning GIS programming: An overview | Geoawes...()

  • JJ

    I agree with Miso. I would also add that SQL Spatial extensions like those in Oracle are also key. A lot of GIS analysis can be done directly against the spatially enable data using the spatial extensions.

  • Pingback: Learning GIS programming: An overview | Geoawes...()

  • Pingback: Code | Pearltrees()

  • Muy buen artículo.
    Saber CSS también es útil para estilos si trabajas con TileMill o GeoServer.
    En español: Lenguajes de programación para GIS: http://mappinggis.com/2012/11/lenguajes-de-programacion-gis/

  • Chandan Kumar

    Really this is a great information for beginners…

  • Pingback: Learning GIS programming: An overview | Geoawes...()

  • Shoaib Khalid

    I am new to gis programming. I use to do the spatial analysis using the ArcGIS desktop. which programming language you recommend to start with?

  • Pingback: What are the Best Programming Language Tools in Developing a Responsive Website? | allaboutinternettips()

  • Pingback: GIS Programming: languages breakdown | Hc Svnt Dracones()

  • Nitin

    I am asp.net ddeveloper. & i don’t know the gis programming. how i can start the development in gis programming. which language i should prefer.(Open Source Language)

  • Luis Perez

    Hi, excuse my English, i´m of Venezuela, excuse my English, is great, I’m starting a blog and would like to translate your article and put it in my blog. Of course, especting copyright, referring to author and web site.
    My blog is http://www.mundocartogeo.blogspot.com 🙂

  • pavan

    hello sir .i m working as a gis engineer(arc map) .and i want to move gis programing which programing language you preffer for learn.

  • Hi admin, i see your blog needs fresh content.
    If you are too lazy to write unique posts everyday you should search
    in google for:
    Ightsero’s Essential Tool

  • Pingback: Learning GIS programming: An overview | Six sig...()

  • Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a little bit, but other than that, this is excellent blog. A great read. I’ll definitely be back.
    bota salomon http://www.i-think.es/bota-salomon.php

  • Pingback: ¿A quién necesitas para crear una app? - Diego Laballós()

  • Peter Vancini

    Thank you for this article! It’s been such a great resource. I’ve even created a desktop shortcut to it and come back frequently to explore the various resources. I’d love to see this guide maintained and updated going forward. Kudos to Muthukumar and the Geoawesomeness team! You all really embody the spirit that attracted many of us to the geospatial field in the first place.

  • Aman Rustagi

    I don’t know GIS programming language, I only know C programming language. Can I still use geo codes in my C programs.

  • Pingback: A Change of Plans – Abdulfattah Aboguddah()

  • Shrinivas B.K

    hi, anyone please tell about “mapstore2” ., what are the prerequisite to learn this one. i need to integrate with my web application.