Developers Must Know Everything, Or I’m Out of a Job

I was talking with a fellow developer recently about some of the more recent “tools of the trade,” so to speak.

That is, we were discussing some of the newer frameworks that have been made available, web server software, configuration management tools, and dependency management applications.

I don’t know if this is a good thing or a bad thing, but the truth is that for the past couple of years, my technology stack hasn’t changed all of that much: Everything from the database all the way up through the IDE that I use has remained the same.

This isn’t to say that learning new technologies isn’t important, but I think that there’s something in our culture – at least in the United States – that invites us to spend our time spreading ourselves very thin across a variety of technologies rather than becoming specialized in a smaller subset of tools.

Developers Must Know Everything

For anyone who’s been on the web for more than a couple of years – especially if you’ve worked as a designer or developer – then you no doubt have seen how quickly software is released, changed, adopted, and forgotten.

It’s the way things are.

Granted, the really good stuff lasts for years – even decades – and there are some things that come on to the scene that I think will be around for a long time, such as GitHub, and then there are other things that come on to the scene on which the verdict is still out – like Snapchat.

I kid, I kid.

But in all seriousness, I think that we have a significant problem – at least in Western culture (that is, the United States) – that makes us feel guilty for not knowing every single technology that is available.

Look At The Job Search Engines

If you want to take a look at what people are looking for out of programmers these days, hop on to one of the major job search engines and then begin looking for computer programming and/or software/web development related jobs.

You’ll not only find a ridiculous number of tools, languages, and acronyms requested of the talent they are looking for, but you’ll often find developers cramming every language and acronym under the sun to game these search engines.

Just because you’ve written Hello World in a programming language does not constitute knowing” a programming language.

But what we’ve done is create this system where people try to recruit other people who have a vast array of knowledge on a particular topic, and the people are forced to claim they know a vast array of certain things in order to get noticed.

And then we all look the same.

What’s even worse is that it can make someone feel guilty – or even dumb – for not knowing everything that others claim to know, or that others request that their talent know.

That really sucks, especially when there’s a level of intuition that we have that recognizes being a specialist in a field is something to be valued.

Imagine This For Any Other Job

Case in point: Try to imagine this particular scenario is other fields. It doesn’t matter of it’s something like medicine or law, or something like mechanics, or engineering, videography, or the arts.

We like to know that the people to whom we’re going to see and/or are hiring for an event or commissioning for a task are experts in their field, their slice of the industry, or their area of knowledge.

A lot of times – admittedly, not always (because there are exceptions) – we value depth over breadth and seek it out.

Time Breeds Greater Knowledge

I don’t want to come off as if I don’t think it’s impressive to know a variety of things throughout the course of your career.

One of my favorite hobbies is playing the guitar and listening to music – sometimes simultaneously, sometimes not :) – but the guitarists whom I admire the most have a wide variety of inspiration from which they pull, and they have a wide set of types of music that they like.

But the music they create is often of the same genre throughout their career, and they often use the same types of effects, guitars, and so on to achieve a certain sound.

Yes, they may grow broader over time, but it takes decades.

Similarly, as we – that is, programmers – move throughout our career, I think it’s only natural that we learn and adopt new tools in favor of old ones, but that doesn’t mean we drift far from where we started (again, some do – exceptions, remember?).

And we may pull inspiration from a variety of source, and gain knowledge in a variety of areas, but why should we expect this to happen in the course of a couple of years?

What Do I Know?

Now, I don’t claim to know which is the right thing and which is the wrong thing. For all I care, it’s a neutral matter, but I do think that there’s something to be said for being a specialist over a generalist.

And if you’re spending more time skipping across the pond of software dabbling in each thing that crops up rather than getting deep into a handful of technologies, you find yourself on your way to becoming a “jack of all trades; master of none.”

Who am I say the latter is any worse than the former?

I do know, however, that some of the people that I look up to the most – some of the people whom I respect and admire the most – didn’t know a little bit about everything there was available in their field.

They knew a lot about a little bit, and that took them very far.

13 Replies to “Developers Must Know Everything, Or I’m Out of a Job”

  1. Solid points.

    What I’ve noticed a lot lately is clients looking for people with very specific skills, when they should probably be looking for a more generic skill set. Up one level.

    For example, look for a killer Javascript developer, instead of a “Backbone Guru” or “Knockout.Js” expert. These types of job postings make me feel like I need to know every technology under a particular technologies umbrellas, instead of focusing on being an all around great javascript guy.

    The flipside of that is that the internet encourages extreme specialization. There are experts in those particular technologies, somewhere, so they can be demanded by clients.

    1. For example, look for a killer Javascript developer, instead of a “Backbone Guru” or “Knockout.Js” expert. These types of job postings make me feel like I need to know every technology under a particular technologies umbrellas, instead of focusing on being an all around great javascript guy.

      I think this is a mixed bag – as these technologies get more and more powerful, I think having someone who has specialized in those technologies would be a better bet; however, this does assume that they’re already experts in JavaScript.

      I mean, I know there are a lot of people out there who write their JavaScript using jQuery and their great at it; however, I still think that people who understand vanilla JavaScript are more likely to write more performant jQuery.

      That’s a generalization, but you get the point.

      So, for now, I think you’re right in that they may need to bump it up one level, but as time passes, that may go away.

  2. What’s even worse is that it can make someone feel guilty – or even dumb – for not knowing everything that others claim to know, or that others request that their talent know.

    That really sucks, especially when there’s a level of intuition that we have that recognizes being a specialist in a field is something to be valued.

    Only 4 years into my career, this is me. I have a great job now, but I remain constantly busy and don’t give myself enough time to learn more tools. I’m worried about 10 years from now, if what I know today will be irrelevant. That’s something I’m trying to adjust in 2014, but it’s still hard to decide what those new tools should be too.

    1. That’s something I’m trying to adjust in 2014, but it’s still hard to decide what those new tools should be too.

      Let your job and the things you love working with / working on guide that.

      That may be cliche advice, but I’ve found that that’s the fastest way to find what those things are – if you can ditch a lot of the stuff that’s you look at and go “ugh, I hate this [tool|language|environment|etc]”, then maybe it’s time to try something else.

      That said, I’m not naive enough to know that some places force developers to use things they dislike. And that just sucks.

  3. Lately, I’ve seen lots of job openings for something they call “full stack developers”. People who do PHP, HTML, JavaScript, CSS, LESS, jQuery, Angular, Underscore, Symfony, Zend… This seems to me to be a near impossible find. Or you’re gonna find a junior that’ll end up a backend developer or frontend developer.

    That being said, as a backend developer myself, I feel there’s no escaping learning about new frameworks, having some understanding of sysadmining, know how JavaScript stuff interacts with a backend, etc. I feel like I have to know a lot of different things, to be good at my job. I don’t necessarily have to be a jack of all trades, but at least one of many trades.

    1. Bram –
      Sadly what they described as full stack isn’t what it is.

      Full stack = Server + Back End + Front End.

      To that end, I’d encourage you to learn front end and server side stuff… it’ll make you a better back end developer. Having a knowledge of HOW your code interacts with everything else helps you to write better code and be more efficient! Especially if you get on the command line ;)

    2. I feel there’s no escaping learning about new frameworks, having some understanding of sysadmining, know how JavaScript stuff interacts with a backend, etc. I feel like I have to know a lot of different things, to be good at my job.

      “Know” or “be familiar with?” I say that, because I think they are different things – and if you mean “be familiar with,” then I think we agree.

      I think as part of our job, we’re likely to come into contact with a lot of technologies – I’d never argue against knowing enough to do your job, or learning enough to get something done; however, I do think that finding his/her specialty is important because that’s their core competency and where they are likely to add the most value.

      I don’t necessarily have to be a jack of all trades, but at least one of many trades.

      Even still, master of few, maybe? Of course, this is just me :).

  4. This makes a lot of sense.

    A quarterback needs to have a knowledge of the routes his receivers run, the duties of his linemen, and the role of his special teams squad, but if he claimed to be adept at all of those positions—It’s probable he’s mediocre at most of them. An exceptional quarterback will be knowledgeable of his team’s roles, but only play his own.

    As conveyed in this article, I see a similar principle in Web Design/Development, User UX/UI, and SEO/Marketing. To play them all is stretching too thin.

    Now let me go edit my LinkedIn profile…

  5. This article speaks to a lot of developers. Job ads make it seem as if you must be an expert full stack developer and then some, when many of these ads are written by HR and carried out by recruiters, neither of which even know what all these acronyms mean.

    If we use the tools we have effectively, and are able to integrate what we actually need, as opposed to what people tell us we need, we are going to be all right.

    1. If we use the tools we have effectively, and are able to integrate what we actually need, as opposed to what people tell us we need, we are going to be all right.

      Agreed – but to your point about HR and recruiting, it’s a tough spot to be in.

      They’re looking for someone who knows everything, but how are they going to find that person? Either someone lies and it comes out in an interview, or we be honest and say “No, I don’t know X, Y, and Z, but I’m really specialized at X and Y and think I could offer a lot of value there.”

      …or something to that effect :).

  6. I think it is just not specific to developers, job marketplace is becoming more competitive everyday. It looks intimidating and scary no matter what field you are in. But the key is to be confident about what you do, be open to learning and have faith that if you work hard, then every thing is going to be just fine.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.