When I finished college ages ago, I was getting ready to send out my resume. I felt my resume would easily end up on the top. I knew something like eight programming languages. I would send it to six companies, and then decide between five job offers. That seemed about right.
And so wrong I was. Only after hearing another computer science graduate brag about the number of languages he knew did I realize that everybody who went through a computer science program knew those same eight languages.
And only after about 50 or so resumes being sent out and a dozen or so interviews did I finally land my first job, a year or so after graduation, and after spending that year working in a room where I pulled printouts and stuffed them in bins for minimum wage.
Fortunately, after so many interviews, I started seeing patterns to what these places were looking for. This, of course, was many years ago, but much of the same still applies. I've spoken with many hiring managers over the years, and I've also been the one doing the hiring. And I've put together a list of what hiring managers are looking for today besides coding skills.
Let's face it: The vast majority of resumes they receive are from great coders. Not all, trust me. But still, being a great coder is not enough to land you that job. First, let's do a rundown of what coding skills you need. Then let's look at the other skills.
Yes, coding still matters, and your coding skills need to be top notch. Hiring managers go into interviews hoping that this candidate is going to be the best they've ever seen. And it's so incredibly frustrating and even disheartening when the applicant lacks the necessary coding skills. Here's a starting list of the bare bones of what coding skills you need.
Treat the above as the bare minimum. If you're unsure of any of this stuff, or even intimidated by it, then great! That's an area where you can practice and improve your skillset. Now let's move on.
In addition to being a great coder, you need to know how to use the tools. What tools?
For starters, the bash shell. Stop relying on VS Code's built-in Git support. Yes, it's awesome. And learn it, for sure. But spend your days with git at the command-prompt. Learn everything you can about how to use git in the command line. That includes branching, resolving merge conflicts, and the dreaded "rebase" idea. Learn how to have multiple remotes. And master everything you can about GitHub.
Then:
Pro-tip: You might get asked how you would decide whether to go with an SQL versus a NoSQL database. Understand the differences and when each is more useful than the other. Do NOT simply answer that you would "go with MongoDB" or "go with MySQL" without being told a specific use case.
Also, please know the difference between "Visual Studio" and "VS Code." There's a big difference.
Developers are finally figuring out how to make AI work for them. And hiring managers and team leads are learning how AI can help their teams build code faster.
Today, you are very likely to be asked during a tech interview how you make AI work for you. Do NOT say that you refuse to use it. Instead, explain how it's a great assistant.
You don't need to learn how AI works "under the hood" (unless you're aiming for an AI job). Instead, you need to know how to use AI effectively to help you produce better code.
While we're still a long way from AI simply building sophisticated apps from start to finish, we're very much at a point where they can be a great coding assistant. Practice with Google's Gemini and ask it to build a function for you. Just a function. Then look at what it produces. Is it correct? Go through the generated code carefully, and ask for refinements if necessary.
Pro-tip: Reading AI-generated code and spotting problems will likely put you far ahead of other people interviewing for the same job.
Today, hiring managers want people who can develop software for end users. Except in specific cases (like a company that developers coding libraries, for example), the end users usually aren't required to be highly technically competent. They're not expected to be tech geniuses. In fact, for the vast majority of businesses developing software, the end users are expected to be people who will turn over their hard earned money and use the product, which needs to be as easy as possible to use.
While you might get frustrated with your relatives and neighbors, in reality, they represent the vast majority of users. You're not required to help your relatives and neighbors, but a basic understanding of their (lack of) abilities and what makes them tick in general can go a long way during an interview.
Businesses have customers who are paying them money to build a product. And the businesses don't want techies who demonstrate a full-on disdain for the people who will be using the products. Instead, they want to hire people who "get it" and "understand" their customers because ideally these customers are together paying millions of dollars to the company who, in turn, are paying six-figure salaries to the developers who have empathy for the customers.
Now let's talk about soft skills! We're coders, and we often don't have the best people skills, which is why we ended up as coders in the first place. But push those thoughts aside.
At a bare minimum, you need to have good communication skills:
All of the above matter, and all of the above will likely come out during an interview.
But beyond that, there's an important truth in the hiring process: They're looking for somebody they like, somebody they want to work with on a day-to-day basis.
This is perhaps the single most important factor people make in deciding who to hire. It's true. If you ace the tech interview and are clearly the strongest candidate, but come across as a jerk? They're not going to hire you. Period.
And what's even crazier? Kindness and likeability are skills that can be learned just as much as any coding skill. Choose to be somebody they like. And that will push you far ahead of all the candidates. After all, if they don't like you as a person, why would they want to work with you on a daily basis? Be a great person.