Top questions about GIS programming and their answers

It’s been quite a while now since I started interacting with GIS and specifically, GIS programming. This is a field where I have met friends, mentors, role models and other people doing amazing stuff for our world. As evident in the Geo-Interview series, professionals are changing the lives of many through sharing knowledge and empowering societies through exchange programs both at individual levels and at organization level. It is most likely that your organization,county government or even country is developing a GIS portal for use in different sectors that exist in the area or within the mandate. Information systems have come of age and automating information dissemination has been a focus by many groups over the years.

The emergence of initiatives such as Open Data and Open Standards, has helped us to share even more when it comes to the technology aspect of things. Having been on the look out for some of these fields, from the system development angle, I have interacted with many users globally. A good example is on the YouTube Channel that broadcasts GIS tutorials and introductory sessions for GIS programming. There is a wide gap on some of these sectors on matters involving programming and more-so to beginners. Spending my evenings checking user feedback and questions has helped me learn a lot in different areas related to GIS and also explored new frontiers as far as this is concerned. In this post, I compile a list of the major questions asked and their probable responses as far as I know;

How did you start on GIS programming?

My first interaction with GIS was way back in 2011, the year I got an admission to pursue a bachelors degree in Geomatics and Geospatial Information Systems at Dedan Kimathi University of Technology – Nyeri, Kenya. The first instances involved installation and configuration of GIS software, ArcGIS and MapWindow. Before joining campus, I had attended a diploma course on ICT at Institute of Advanced Technology(IAT). The passion for systems was well captured and it got me moving. Introductory courses on ArcGIS were interesting and gave us the motivation to venture more into the software. On part-time, some colleagues(A group of fellow enthusiasts) and I were working on something interesting, making our own mapping application using MapWindow and VB.NET. The motivation kept us on the move to learn more each day. We held meetups every week to share what each of the team member had gathered. Months after our first prototype, we presented to the department heads and some of the lecturers who gave us even more power and morale to be the champions in the field. By this time we were on track and headed for the big prize. In general, team work, motivation, passion, handwork and consistency made us realize the potential in us for GIS programming.

In your learning curve, what challenges have you met and how did you overcome them?

Mmmmh. Wow. This is always a big question for me. I can start by a quote by Abraham Lincoln, “If you want to have a great future, create it“. I started this endeavor with a goal in mind, knowing that this was the way and no matter what came on the way, I had to learn. The journey itself is rough; sleepless nights, loneliness, being a zombie-like creature, stress just to mention a few. The good thing with programming is that, a piece of code will stress you for a day, a week or even longer, but when it works, its too much fun. Having cracked new frontiers in your path feels so awesome. You will often fall in traps of laziness, feeling like you want to quit, be stressed but this can only be overcome by first, understanding why you started this endeavor and secondly, referring to the first point. I can share some hints on making something out of your hard work;

  • Team work – Having a friend(s) with whom you practice programming together and set targets that both of you have to achieve. This is one trick that works magic!
  • Consistency/Persistence – In any field, practice makes perfect. Consistency guarantees the perfection. Ensure everyday you have at least two hours of code and try to learn a new concept. This will help a lot
  • Challenges – These can be at personal level, by setting time-lines and goals to be achieved. In this way you ensure you are up to the task. Challenges can also be hackathons or code camps. In this place, you meet all geeky guys, high-level, intermediate and beginner. Participate in a project with some guys and share knowledge.
  • Research – Make the Internet your best friend. Join forums on-line, participate and learn. There are so many people out there, willing to help you. YES…YOU
RELATED:  Land information management database center launched in Mwea

Which languages should  I start with?

This is another hot-topic of discussion. Being in several social and professional groups, I have witnessed the heated debates around the languages to learn for a beginner or intermediate to be a GIS programmer. Well, this is of course expected. Everyone knows their “best” tool/weapon to get work done. To some it might be Python, to some its JavaScript or JAVA and so forth. As I mentioned above, I started with Desktop GIS using VB.NET . Someone might ask why I never used Python and I would say “Well, I was new in this sector and what I wanted to achieve would be done in VB.NET ASAP”. I wanted things done faster, easier and effectively. Later in the years, I met Python and ahem, am here now. The whole idea boils down to your objectives. Analyze what you want  and select the best options to achieve a solution. The three categories of applications, mobile GIS, Desktop GIS and Web GIS, do not carry the same rules, guidelines or even weight neither do they require the same tools. A person willing to get to web will have to check HTML, CSS, JavaScript, maybe Node.js, D3.js, AngularJS, ReactJS, Python and so many other languages and libraries. This is not the case for the mobile GIS or Desktop GIS guy.

Personally, I went the Web-GIS way and had to look out for some or almost all the languages mentioned above. Each programming language has, of now, built frameworks, libraries and extensions, all to help developers achieve their goals faster and effectively. Most of the GIS programers/developers are conversant with Python as it is the base language for the popular GIS systems in the market today. ArcGIS and QGIS. Python is cool for GIS and it will sort you out. Depending on the needs of the project, you will have a mashup of two,three or even more languages for your application. An example,the Weather Stations application, uses HTML, CSS, ExtJS, GeoEXT and GeoJSON where ExtJS and GeoExt are JavaScript toolkits. The application is only client-side so no much hustle(Its just a simple app).

In a nutshell, do more research on your objectives and evaluate each language to ensure you settle for one that suits your project best.

Wanjohi Kibui
About Wanjohi Kibui 23 Articles
A GIS Developer, Consultant and Author.Passionate about Geospatial technologies. To read more about his work, visit http://www.lifeingis.com Access video Tutorials on YouTube