How to be a geodev
Rene Rubalcava | May 3, 2017
I recently made a comment in jest about how to be a Geospatial Web Developer.
It was inspired by perusing this reddit thread.
I've talked about similar topics before.
Although, said in fun, it's not too far from the truth. There's no set-path to becoming a geodev. There are some basics you should learn for web development, but even in geodev there are subsets. Are you focused on visualization, general app dev, algorithms? My point is, you're going to learn a lot as you journey down that path, things change and technology flows, so be adaptive, be flexible, be ready to learn. Those are details, learn the basics first.
I've been doing this a while, so I figured I'm at least minimally qualified to answer this question.
Be a geodev second and a web developer first.
Think of it this way, web development is your role, spatial is your niche.
I'm a big believer in specialization. As a geodev, I do web development, I just happen to focus on working with maps and the importance of location information.
Web developer first, geodev second.
So let's focus on the Web Developer part of this question.
I'm a huge fan of compile-to-js languages like TypeScript (technically same thing), Elm and PureScript. But that's like some next level shit right there.
Look at it this way, frameworks are for developers, your users don't give a shit how you built it, as long as it works.
Now normally I wouldn't say CSS is a required. But we're looking at being a web developer here. You don't need to know all the CSS magic and there is some crazy shit you can do in CSS.
But... as you up your webdev game and say are interested in progressive web apps, knowing some HTML semantics coupled with CSS will be really beneficial to load your pages as fast possible, so users aren't staring at a white page while your app loads. Yeah yeah, server-side rendering (next level shit) can help with this, but lets stay a little closer to the metal here.
You have quite a few options to work with spatial data on the web.
Mapbox - They provide some nice customizable basemaps and the latest uses WebGL exclusively for all drawing, which is pretty cool.
Carto - Carto has some nice analytic and visualization tooling. What I really like is they expose PostGIS queries via their API.
Leaflet - Really simple mapping library, can do some powerful stuff if you put the work in.
OpenLayers - Really powerful mapping library. Works with a variety of services, been around forever, I'm a fan.
Google Maps API - Probably got the online mapping party started. Google maps can do quite a bit for an enterprising developer, but be sure to check out licensing limitations for its use.
So, what do you do with this information?
You're probably not building a ArcMap or QGIS into a browser, you're most likely building a focused app. It's generally a good idea to know a little bit about each of these mapping technologies. But again, just like being a web developer, you are specializing in geo, I would pick one and focus on it. But you never know when a new job may have you working with new tech, so it's still a good idea to know a bit about each one.
I'm just covering frontend dev here. We're not even talking fullstack, which would mean knowing some server-side tech (.NET, node, you down with OTP and so on) or learning SQL to work with database queries and data wrangling. That is really some next level shit that I couldn't really cover in a single blog post.
Want to a find an awesome community of geominded folks? The Spatial Community has you covered!
But let's stay focused on the initial question. How to become a geospatial web developer?
To reiterate, learn to be a web developer first, add the geospatial developer second.