Technology evolved and developers can not understand everything anymore. So how does the world survive then? People specialise, that’s how! After you finish your degree, you don’t train to become a Computer Expert, but rather you focus on one area in particular: databases, security or WebDev, for example. Everyone knows that, yet not everyone knows all of the possible options from the start of their career.

Back in the day, I was part of a student society whose members were predominantly Computer Scientists, just like me. The nice thing about this society was that besides interacting with current members, you could also get a chance to talk with past members as well. That gave me the possibility to see what my prospects were: by talking to those older members, I could see where they ended up, and where I could end up.

Long story short, it was through one of these members that I got to hear for the first time about the role of a Developer Advocate. It blew my mind! Not because I did not expect somebody to have this role, but because I was not aware that such a title existed. Until that moment, I have never really considered the specific paths I could take in my career. Of course, I knew that, for instance, some people worked mainly with Open Source, while others alternated between different projects all the time (I’m talking about freelancing), but I always put them under the same umbrella: Software Engineering.

And to some extent, that is right. However, the problem is that’s not enough. How can you take a job after you graduate and not look at all the options? Will you be satisfied if you go for the first free position? If not, you and I are alike. So the next question is obvious: where do you find a complete list of all the available jobs?

******

The answer is disappointing. I searched far and wide on the Internet and nowhere I could find such a list. At least not a full one. The reason for that is linked to the evolution of technology: in the same way new frameworks are out all the time, the industry creates new jobs all the time. Developer Advocacy was not a thing back when computers were invented because software companies did not need an appointed person to engage with the users and find out their opinions. A more concrete example is that of the Database Manager: it’s clear that there were no people in charge of databases until databases were invented.

Nevertheless, don’t lose hope! Even though you can not find the list anywhere, you can create it yourself. The most important part to remember is that the job market is quite predictable. Just like the iPhone presented programmers with a whole new industry (app development), so does every other piece of tech. In turn, this means that if you’re interested in one particular part of a system, there’s probably a job related to it, and that job has a title you’ve not encountered before.

With that being said, I could go on and on about the differences between software and hardware-oriented jobs, between product managers and software developers, between maintainers and producers. I could even go deep into the details of software jobs in Biology, or History, or even Politics. But all that information is out there. It has been debated for years and this article would not add much to the discussion. The lesson you could take from here is that software is broad and you’re bound to specialise in order to get anywhere.

Finally, some words of encouragement that even senior software engineers would benefit from: switching niches after a few years is ideal. Don’t spend too much time working on the same topic, as it might get boring. Instead, move on to a new field and start exploring from the ground. It’s going to be a lot more fun and you’re going to have a lot more fresh ideas.

If you feel like I missed anything or you want to continue the discussion, leave a comment on Facebook or Twitter or send a direct email at [email protected].

References:

  1. https://archive.org/details/james-burke-connections_s01e01
    – On the complexity of technology
  2. https://medium.com/@ashleymcnamara/what-is-developer-advocacy-3a92442b627c
    – Microsoft Employee on Developer Advocacy
  3. https://www.prospects.ac.uk/careers-advice/what-can-i-do-with-my-degree/computer-science
    – On the prospects of a Computer Science degree
  4. https://www.quora.com/What-are-some-career-paths-for-a-Computer-Science-major
    – Another list of prospects, with more details this time
  5. https://www.quora.com/What-is-the-role-of-software-engineering
    – Simple question that hides the essence of the article
  6. https://www.reddit.com/r/cscareerquestions/comments/2ew81o/what_is_the_truth_about_the_software_engineering/
    – Discussion from 2014 that talks about employability in Software Engineering as a whole
  7. https://thinkfractional.blog/secret-ipad/
    – On how one company managed to predict a new industry