Dan Abromov’s Things I don’t know as of 2018, is a refreshing take on the knowledge gaps of software developers. Even though Dan is the creator and maintainer of a widely used package used with React, his list of knowledge gaps in web development is quite an eye-opener. And he made them public too!
I’ve worked alongside a lot of great developers, and I’ve been amazed at both their spread of knowledge on web development but also their gaps. I rarely pay attention to the knowledge gaps though. It’s easy to be amazed at the breadth of one person’s knowledge and not focus on a person’s knowledge gaps. Perhaps they just didn’t get round to that gap, and focusing on their knowledge gaps feels wrong, but should that be the case?
As I’m approaching 20 years working in software development, I’m starting to know the excellent job descriptions from the bad ones. Merely listing a long list of tech experience that you would like in a candidate is a poor way of getting the right one. In my view, the best candidate can come in and use their soft skills to learn and get up to speed in a few months regardless of their experience. I think it comes down to the fact that more organisations want their candidates to hit the ground running from day one. No training or onboarding, just another cog in the big development machine.
Given the number of languages, frameworks and other techs in web development, it’s a near impossible task to keep up with everything, but I’m taking two things away from Dan’s post.
- There’s no harm in not being up to speed with everything that a full stack web developer should do. Sure, I can deploy an app using Cloud66, Heroku and Dokku, but I can’t say the same for Docker and Kubernetes. I can deploy web applications, but only on the technology that I have chosen to learn.
- I’m considering changing my job description to be more specific. Sure I can be a jack of all trades, and know a bit of everything in the web development stack, but I’m sure I would be better off describing myself as a backend web developer instead and focusing on the technologies around that.
With these points in mind, I’m renewing my focus on Ruby on Rails as well as adding to this the knowledge that I need for the gaps around it.
It’s good to know though that I am not alone in not understanding a few topics that have been popular in the last couple of years.
Trying to keep pace with most of the topics in the web development world is a task in itself, but there’s enough work to keep me marketable as a backend web developer even if I do focus on a single core skill.