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
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.
There 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).
Python for ArcGIS: Really useful article on resources for learning to use python for ArcGIS.
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.
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.
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!