Learning GIS programming: An overview
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!
PNDs are not dead. The surprising review of modern navigation device (TomTom GO 50)
Over the last years I had quite straightforward opinion about PNDs. Me and most people I know use smartphone as main navigation device from at least 5 years. Old PNDs that came across my way during that time had poor quality hardware and even worse user experience. Slow, ugly, simply terrible… For me PNDs were dead.
Two months ago I’ve joined TomTom (in a department responsible for data capturing, not consumer devices). As a self confess gadget addict I’ve turned to marketing department and started testing TomTom’s hardware. My main focus went to TomTom’s fitness watches, which are really cool (but I will comment on that topic later this year). I didn’t really think about playing with old PNDs. But somehow I did.
Last week I took for testing TomTom GO 50, which is entry-level PND model. For me this was a biggest gadget surprise this year. This is why.
When I was using my last PND it was looking more or less like the example on right. Not only the device itself but also the windshield mount and the user experience of the software seemed to say: “Made in China”. My surprise was really huge when I took in hands TomTom’s device. It has a really high build quality with windshield mount kit better than the one I’m using for my iPhone.
The device has a large 5-inch screen on the front and big, loud speaker on the back. I makes a really good impression. And this is said by a person who would always choose the iPhone and HTC One over plastic Samsung smartphones. But still my favorite part is windshield mount which is small, high quality and very practical. You just twist it and it sticks to the window or dashboard. Simple and easy.
THE USER EXPERIENCE
Another surprise came when I started the device. I was expecting old school grid menu and ugly maps… but the system was looking much more like a modern smartphone design. It did resemble any of the old-school PND user experience the times I had Windows XP installed on my PC. It’s really fast, easy and very good looking. I didn’t expect that at all. Of course the screen is not as responsive as on a smartphone but the over all experience is really good, especially when we’re talking about entry-level model you can buy for less than $130.
When it comes to map design I believe that TomTom is far ahead of the competition. Even Google Maps app doesn’t look that good. One of the coolest features is “the line view” on the right which shows you traffic information and point-of-interest along your way. Very simple but extremely useful.
MAPS AND REAL-TIME TRAFFIC
When it comes to road data quality TomTom is one of the global leaders. The company releases 4 map updates per year and with the device you get Lifetime map updates. You can also connect the device to smartphone and get free real-time traffic information. There is really not much to add…
For me it turned to be the biggest gadget surprise this year. I was expecting to travel back in time (at least 5 years) to play with stone-age technology. I didn’t think that I’d ever want to own a PND again. But I do. Why? First of all it is not always convenient to use your smartphone for everything while you’re driving. Second of all I’ve noticed that this year my iPhone was getting extremely hot during summer when running Google Maps. As an effect it didn’t charge in a car, which left me without a phone (and camera) when I’ve reached my summer destination at least few times. Finally it’s a really cool piece of hardware with great over all user experience. I guess that from now on I will stop skipping PND department in electronic stores. I might find something even cooler.