- Computer programming skills can greatly benefit your GIS career.
- Combining GIS with software engineering skills can create new opportunities.
- Knowing how to pitch your CV and experiences to the right people is also critical to improved opportunities.
As one develops a career in GIS, certain ceilings may arise, particularly if organizations mainly only use their GIS experts as analysts with minimal career opportunities. Adding software engineering skills could be one way to improve your employment potential. In a MapScaping podcast, Dan Mahr talks about how he was able to transition to a software engineer, but still uses his GIS skills to benefit his career.
If you are employed as a GIS analyst, firms may simply treat you as someone who can make maps or conduct basic spatial analysis, such as merging files or running a basic hydrologic model. This might limit your career options for advancement.
Developing Programming Skills in GIS
The benefit of GIS, however, is that software such as ArcGIS or QGIS provide an interface with programming that can help people get started in learning how to code. Python, a popular language used in geospatial applications, can, for instance, be used within common GIS platforms, which allows you to begin to learn how to use this language to do basic functions or even operations that facilitate your analysis. Mahr discuses how trying to accomplish basic tasks helped him learn programming.
Often, automating repetitive processes such as clipping various spatial files could allow you to get started. Eventually, if you want to learn more, online tutorials that help you to learn more about the basics and structure of programming languages are probably needed so you can begin to understand key software engineering concepts.
This could also lead you to a course where you formally obtain a degree. Many universities, for instance, provide Master level degrees for career professionals to obtain a second degree in software engineering or computer programming. Having some geospatial background and experience with programming tasks can help you better understand data structures and operations that are often also common to GIS.
Moving from a GIS to a Software Engineering Career
Once you can develop your programming skills, you might want to begin to see if there are better career opportunities out there for you. You will also have to learn how to pitch yourself to recruiters or others to gain greater opportunities. While having a degree in computer science or comparable studies can benefit, it may not be needed.
Demonstrating key experiences, example code and projects you have done, and networking with people can all help you gain a software engineering related career without necessarily having the degree. One example is you might want to meet the hiring manager. Often meeting someone critical to the hiring process lets them know you as someone who is capable and able to be self-taught and motivated to learn new skills such as programming skills.
This can lead to an interview, where it is common that theory-related questions appear as part of a software engineer interview. You can practice for these questions with websites that provide example questions such as LeetCode. At this point, you should begin to understand concepts in programming, such as data structures and formal paradigms including object-oriented programming, and not just simply be able to code. Once you get the job, it is important to impress your colleagues.
If you are self-taught, that might already impress your colleagues because people can appreciate the difficulties of having to teach oneself. However, having soft skills, such as being able to work in teams and communication skills, are critical, as it helps group dynamics and shows you can contribute to team activities.
Once you have demonstrated key programming skills, you could now have the option of going back as a GIS analyst or going into software engineering. Either way, by expanding your skills you now have greater advantages in your career paths.
Software Engineering Can Require Geospatial Skills
As a software engineer, geospatial problems are common and having GIS experience is critical. Software engineers often do not consider, for instance, implications of geospatial data, including geocoding tasks or coordinate transformations. Knowing something about the spatial processes that are affected by such operations provide advantages for a software engineer because you can see the purpose and potential issues with the tasks and not just simply being able to program the operation.
Furthermore, there are many companies out there requiring programming that deals with spatial operations. Companies such as DroneDeploy build their entire business on conducting geospatial operations for UAV imagery with various automated or semi-automated capabilities that help customers.
Even with increasing low code or no code solutions supported by GIS tools, programmers and software engineers will be critical to developing such applications to help create automated or mostly automated tools. On the other hand, it is GIS analysts, with minimal programming skills, who could be threatened in their employment with such developments.
For software engineers or those with software experience, you could enhance your opportunities either by going into management or staying as someone with primary software skills but within a track that promotes more senior software skills. For instance, becoming a technology lead, senior software engineer, or even software architect can sometimes be positions comparable to senior management in organizations.
Having Programming Skills is Also Important for a GIS Career
Having software skills, in effect, broadens your skills and opportunities, whether you stay in GIS or move to other areas. Additionally, as you learn software skills you realize you can begin to learn multiple computing languages, as the concepts and structures are often very similar from one language to another.
Having skills in multiple languages, such as C, C++, Java, and Python, will only enhance your attractiveness for employers. To begin, however, it is best to learn one language, such as Python, and then use what you learn to get to know those other languages. In many ways, it is comparable to being able to learn multiple GIS platforms by getting started with one.
Regardless of the ultimate career path you take within GIS, or even outside of it, having software engineering and programming skills can greatly help. Increasingly, with the rise of data science, cloud computing, and artificial intelligence in particular, skills in programming will only become even more important to GIS and other areas.
Dan Mahr has also written a blog post about Pivoting from GIS analyst to software engineer.