5

I graduated from college a year and a half ago and have been working as an engineer at a software company since. It has been a good environment for me to gain experience in.

However, one concern I have had recently is that if I were to unexpectedly lose my job, my only professional experience would be with the deprecated language that is what I mainly use. While I know that any experience with a large codebase is good, I've noticed that many game development/software engineering job postings ask for "x years of professional experience with technology y", which seems to imply that generic coding experience may not be enough for me to find another position in the future. The "professional" part of that sentence also seems to discount personal projects with more relevant technologies.

Is this paranoia reasonable? Do the specific tools you use early in your software career have long-lasting implications for what opportunities are available to you in the future?

3
  • 2
    First off, please ensure that your username isn't the same as your actual name. You don't want your employer finding out you're thinking this. Secondly, technology changes very, very quickly. In my opinion you could recommend new software languages and technology, but don't expect it to be taken up quickly - and make sure you don't say that the main reason for this is because you're worried your skills will be obsolete in the job market. Research if/how it would benefit your company.
    – user25730
    Commented Dec 16, 2019 at 21:34
  • Don't mind the "x years with Y technology". I've seen requirments for 5 years experience in two year old technology. Commented Dec 17, 2019 at 8:51
  • 1
    While I agree with the close votes to the letter of the phrasing, I disagree that this question should be closed. OP is touching on an important part of career development: stagnation. The question can be rephrased to not be "what should I do?" and more towards "is stagnation dangerous to career development" without changing the core question.
    – Flater
    Commented Dec 17, 2019 at 10:05

4 Answers 4

1

I've noticed that many game development/software engineering job postings ask for "x years of professional experience with technology y"

I've come across vacancies where they ask for 5+ years of experience with Visual Studio 2019. Think about that for a second.

Job requirements are often not as precise as you're making hem out to be. Maybe it's a copy/paste error (they just meant Visual Studio), maybe it's a weeding tactic to avoid having to unsuccessfully interview entry-level developers. Whatever the reason, most employers will actually judge you based on the value you can bring rather than the boxes you tick.

Exceptions of course do exist, but I reckon you wouldn't want to work for those employers anyway so you're not losing out.


which seems to imply that generic coding experience may not be enough for me to find another position in the future

The general ability to think analytically and algorithmically beats knowledge of a specific framework every single time. A good general developer is able to pick up any library and build working knowledge in a short timespan. A framework wizard might be completely lost in a totally different framework for a significant amount of time.

However, it's much easier to test framework knowledge (e.g. asking applicants to answer straightforward syntax questions) than it is to gauge general coding skill. Many interviewers fall into the trap of asking straightforward questions. Doubly so for junior developers, as they are usually only asked simple questions, which tends to mean you get syntax/specific framework questions instead of abstract thinking exercises.

It's perfectly understandable that a non-coder interviewer is unable to gauge general coding skill using anything other than cut-and-dried answers; but you should see it for what it is: an quick sampling of your knowledge.

Personally, I don't remember syntax very well. Part of that is having my own snippet repository and StackOverflow available. What I do have, is the ability to judge what is reasonably possible in a given framework/situation and quickly gauge how to break down a problem into its constituent steps (each of which I then look up on SO or a snippet repository).
When interviewers ask specific syntax questions, I redirect to saying something along the lines of:

"I don't know how to write an XSD document by heart, but I know it allows for easily configurable validation of an XML file, both in the presence of certain elements and the specific values it contains. I would need to look up the specific syntax, but I know that I can configure [X and Y and Z] to achieve the validation that you need."

Generally speaking, this passes the test, as it shows the core skill of breaking down a problem, isolating the unknowns and having accurate expectation on solving them.

Your mileage may vary with different companies, but I get back to my earlier point that a company who cannot see the wood for the trees is not a good company to work at (long term). If the company has their blinders on, odds are they're also going to have blinders on when it comes to your day to day work and your working environment.


One concern I have had recently is that if I were to unexpectedly lose my job, my only professional experience would be with the deprecated language/engine that is what I mainly use.

This is the main reason to avoid stagnation.

Not only are job standards and technologies evolving at a much higher rate than they did a few decades ago (quadruply so for software engineering), but people tend to job hop more than they did in the past. Gone are the days of expecting to work for the same employer for your entire life. Again, quadruply so for software engineering.

There is a counterargument to be made, though it's situational: as a technology ages, there will be less developers willing to work with it, which increases your leverage for both job availability and salary. I know a COBOL developer who is highly paid specifically because he's one of the few people who can keep companies' outdated infrastructure operational.

That being said, it's generally more advisable to move with the market than it is to fish for the outdated tech opportunities - but I'm reasonably sure fringe exceptions exist.


Is this paranoia reasonable?

I also want to caution you to not become a perpetual pioneer, i.e. someone who always looks for the newest tech to work with. Companies, especially big companies, tend to move slower and are never at the forefront of technological advancement because they specifically wait for a technology to be tried and tested before committing to it.

A few years ago, there was a virtual firestorm of new frontend JS libraries that would die out as quickly as they became popular. Andecdotally, my own company moved from presentations on "Tech X is the future!" to presentations on "X is outdated, Y is the future!" in the span of 1-2 months (I'm looking at you, knockoutJS...). It was just impossible to keep abreast of new technologies when they enter and leave the scene that quickly.

I'm a .NET developer, and .NET is generally considered to be a slow-moving framework that allows for innovation but at a reasonable rate so companies can keep up without making major gambles on new frameworks and whether they'd live to see the next month.
I stick with .NET specifically because there is a lot of job security in the tech stack as companies that work with .NET tend to stick with .NET.

So I want to urge you to find a balance here. Don't stick to outdated tech, but don't become too restrictive in what you label as "modern" tech either. See which technologies are most common in the job market that you're interested in.


Is this paranoia reasonable, and if so would it be wise to have a conversation with management about this concern?

Some employers are reasonable and you can definitely talk to them. They may agree that to keep you on, they will have to also allow you to keep up to date on modern technology, whether by putting you part time on projects with modern tech or allowing you training resources to keep yourself up to date.

Unless the company is deadset on only ever using the outdated technology (and go down with the ship eventually), they're going to have to innovate, and having employees that are capable of innovating are a massive benefit. Use that to your advantage to convince your employer that keeping your skills honed and up to date benefits the company too.

Some employers are not reasonable, but given the question you're asking you wouldn't be happy working for them long term anyway, so again you don't really lose out by talking to your employer to gauge if they are reasonable. If they respond unfavorably, you're able to re-evaluate your employment at any time.

1

I've noticed that many game development/software engineering job postings ask for "x years of professional experience with technology y", which seems to imply that generic coding experience may not be enough for me to find another position in the future. The "professional" part of that sentence also seems to discount personal projects with more relevant technologies.

Don't obsess too much over the wording of requirements. And don't let that dissuade you from experimenting with other game engines/languages.

I graduated from college a year and a half ago

One year and a half is not long. Try to wait at least two years before you try moving on to a new employer.

0

Is this paranoia reasonable, and if so would it be wise to have a conversation with management about this concern?

You want to tell your current boss you're afraid you won't be attractive to other employers? I don't think that's a good idea...

Or, if I'd like to be able to work with companies using more modern technology in the future, would it be best to just keep my nose to the grindstone?

I think you should keep trying out new technologies in your spare time.

Pick up a small hobby project to work on one or two evenings a week, using a different platform or programming language. Feel free to abandon projects or stash them to try out yet another thing. The goal isn't to master one particular second language, but to keep trying out new things every other month or so.

Another option is to look on Meetup for events in your area. At least in my area, there's quite a few groups promoting their pet new language/platform and giving demos to people who want to give it a try. (It's probably also a good way to casually stay visible to potential new employers.)

0

There is potential for it to impact your future job offers however, only after about the 3 year mark. - Skills should be transferable, you know that, I know that, a future employer doesn't care and wants someone with the skills already available. This applies to mid/senior levels, often exceptions are made for juniors.

Juniors are employed with an expectation they will be learning. Mid/senior level are hired with the expectation of being able to do the job.

I was stuck in a place doing VB for a number of years. Getting a job with a C# company afterwards was almost impossible. Even though I knew C# syntax my 7+ professional experience of VB counted for nothing.

I wouldn't raise this as a concern to management however, I would look into the new technologies in your own time. Make notes about the pros/cons and then talk to your management and suggest that you try out this new technology stating why it would be a good move for the company.

You must log in to answer this question.