In a recently published book called Skill Up: A Software Developer Guide to Life and Career, author Jordan Hudgens distinguishes five types of software developers. This makes it easier for developers to narrow their focus on what type of developer they want to be in coming years.
Now let´s continue this line of thought with regards to geospatial developers, meaning developers with a geospatial background. What do these developer types mean to them, and what languages and frameworks are at their disposal?
- The server-side developer.
As explained by Hudgens in his book, server-side specialists spend most of their time working on building and implementing algorithms that enable programs to work properly. Programming languages that are required for this layer of the development stack are Ruby, Python, Java, or C++. I would add .NET to this list with regards to GIS, as Esri-based GIS applications run on Windows-only. There are great opportunities for GIS developers in the area of server-side development, but be aware of the complexity of a language such as Java compared to Ruby and Python. The latter two are much easier to learn (assuming these are your first steps into programming). Knowledge of various spatial databases is also recommended here.
- The front-end developer.
- The mobile developer.
- The full-stack developer.
Full-stack development requires all of the above: server-side development, front-end, and mobile technology. For GIS developers, this means you have to know all three, which is not always possible.With regards to GIS developers, there are opportunities in all three areas but if you look at GIS developer jobs, you will probably see more jobs targeted at frontend and/or backend developers than full-stack developers with GIS skills and knowledge. Becoming a full-stack GIS developer is probably something of a long-term career option. If you´re just starting out as a developer, choose any of the other options and fill in the gaps later.
- The data scientist.
If you like working with (spatial) data, perform data analysis either directly inside of a GIS or through Python or R (or even big data analysis through cloud ecosystems), this is a great field to be in. You can also automate workflows or create Python or R scripts and maybe use Jupyter notebooks to share your work with others. You don´t have to build web-based applications as a geospatial developer, as the data science requires a whole different set of skills in order to be successful.
Source: “Skill Up: A Software Developer’s Guide to Life and Career” by Jordan Hudgens (Packt Publishing, July 2017).