Categories
Uncategorized

Figuring Out Your Most Marketable Skill

Don’t do this.

Are you a Software Engineer? Programmer? IT Professional? Whatever you call yourself, this advice goes out to someone vaguely involved in programming, like I am. Before I started my Computer Science degree at Oregon State, I searched through job postings for Software Engineers. I figured, if I knew what employers were looking for, I could tailor my education to what is most in-demand. I then patted myself on the back for my forethought and insightfulness.

Except that didn’t get me anywhere.

What it did get me, was a seemingly-random grab bag of names of programming languages, development tools, frameworks, and fancy-sounding buzzwords. Immediately, I felt overwhelmed. I wasn’t familiar with any of the things they wanted. Should I give up? Well, I’m glad I didn’t. Because even now, while I probably check more of those boxes, there are plenty of things that I am still unfamiliar with. And, I probably won’t be familiar with those things until I need to.

Should I be terrified? Should you, reader, be terrified, if you’re in the same boat?

Well, no, probably. Terror doesn’t help you check those boxes. But you’re also probably forgetting about something critical. You have a skill, one that trumps the candidate who has a couple more boxes checked than you do. This skill isn’t taught in any one single class, but it is something you learn over time. This skill is adaptability.

Tools come and go over time. The same company might have different tools that they use a few years from now. So what is the point of trying to perfectly know each one? Maybe you sound impressive, being able to go over a long list of things you know. But there are a couple of problems with that. One, this isn’t very efficient in terms of your time. Do you really have the spare time to go ahead and learn EVERY SINGLE TOOL that any prospective job might need? Even if you tried, would you really be proficient with those tools before your interview? Maybe you are a unicorn with endless dedication. I envy you. But if you’re not, maybe this isn’t the strategy for you. If there is a job that you are really aiming for, your dream job or what have you, then you should take the time and learn the tools needed for that job. It makes sense–eventually you want to be working there, so you want to be comfortable with the tools required. But realistically, you are not going to know everything you need to for the fifty job applications you just fired off. And that’s fine–you’re adaptable.

It takes a bit of a shift in thinking when you’re learning software engineering. When I began, I always felt like “oh no, I don’t know this at the moment and this means that I’ve failed”. But every software engineer that I know who is worth their salt doesn’t think this way. They know how futile it is to be prepared for everything ahead of time. Instead, they think “I can learn how to do this if I need to”. How interesting, isn’t it? That acceptance of not being prepared? Or at least, that’s what I thought. In reality, they’re not unprepared, they are learning on a more important skill–their adaptability. They know that they have the ability to learn new things quickly and effectively, and that this is more important than all of the preparation in the world.

Big companies know this, too. Right now, if you search “how many programming languages should programmers know?” you get a hilarious range of results. I know, because I just did that search. The results range from 1-2, 2-3, 4, and basically every variant up to 5 or 6. But in fact, if you look at one of the largest tech companies in existence, Google, do you know how many languages they require you to be proficient in?

One. One! Is more languages desirable? Maybe, depending on your specific job. But the famously-grueling code interviews are conducted with the interviewee’s programing language of choice. Why? Wouldn’t you think that one of the largest tech companies in the world would want more out of their candidates? They certainly can afford to be choosy. And they frequently are–but they know that a skilled employee isn’t to be judged by a range of checked boxes, but their adaptability. That is exactly why the interviews are so grueling, and why there are several different interview phases. A good candidate can figure things out on the fly, and problem solve. The medium (programming language) doesn’t matter. And even the biggest, most impressive companies see that.

So when you’re learning to program, don’t get caught up on what you don’t know. Don’t fret over tools you’ve never heard of. Because a good programmer learns to be comfortable with not knowing. They know that their most important skill is their ability to learn. And if you can become good at that, you’ll make a good employee anywhere.

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *