Regardless of how skilled you are in your craft, interviews can still be rough for most developers and software engineers. Here are 10 tips from a senior developer to help you in your job hunting process.
Even during my best interviews there were still plenty of things that went wrong. Things such as not being able to answer questions regarding certain technologies, to running out of time during live coding challenges to the other party having no idea who I was or that I was coming in that day.
So here is a compiled list of 10 tips to prepare you for your next coding interview, most of which are based on my own personal experiences from the past decade.
10. "I don't know" troubles
You don't know every concept known to humankind. That's just a fact that you will have to live with in this reality. And when meeting with a complete stranger, those "don't know" situations can make you sound like you have no clue what you are doing. I've been there plenty of times.
There is a good chance for example that you will be asked a question regarding a programming language feature or concept that you aren't quite familiar with.
"What is multiple inheritance in regards to C#?"
You may or may not have worked with multiple inheritance in your past. But here it is, staring at you in the face, with your future career on the line. So what do you do?
If you're like most people, you'd probably just answer with a:
"I don't know" or "I'm not too sure"
With the hopes that the person will just move on to another question. And they will move on, more than likely, but not without taking some points off.
And by your 3rd "I'm not sure", there's a good chance that you could just call it there, shake hands and go home.
So instead of "I don't know", say something that you do know that could somehow be related to the question. If you don't know about multiple inheritance, then maybe talk about single inheritance. If you've never used a specific programming language, mention it and go into the ones that you do know and go into detail that might be related.
Because really, the whole point of the interview is to gauge your areas of expertise and to do so in a restrictive 30 minute window.
Just don't let the last words that you spoke be "I don't know".
9. Avoid short answers
This is particularly true if you get asked a question where you have a large amount of experience and knowledge. You only get so much time to talk during job interviews, and when you have that baton passed to you, make use of it.
If the question asked reminds you of a story from your previous job, then share that story and paint a better picture to the person on the other side.
Remember that you are not the only person interviewing for that particular role. You might be the first from the list of 10, or you might be right in the middle at number 5. In either case, you're going to want to stay memorable and telling stories can do just that.
8. But avoid long answers
And on the other end, if you don't have as much experience in a particular area or if the story doesn't help to paint you in the best picture, then knowing when to cut a story is important too.
The more time you spend battling through to get a cohesive answer out, the less time you will have overall to get to the better questions. I've been stuck in situations where my stories aren't landing and I can see the confusion/boredom in the interviewer and really all that I'm doing is eating into my own time.
it's not just about having the right answers, but also about delivering them effectively. When answers are long-winded or meander off-topic, they not only dilute the impact of your expertise but also risk losing the interviewer's interest. Remember, interviewers often have a set list of questions or topics they need to cover.
7. Practice your algorithms
This is the part that every programmer hates. Even myself, after 20 years of software development I will still get asked time and time again to implement some kind of Linked List or BST or to figure out how many permutations of something it takes to do something else.
And it's really just a part of the current hiring culture with software development that we can't seem to get away from. Real world skill and relevant projects take a back seat to data structures and algorithms. So if you really want that job, then you will indeed to spend a few hours practicing.
I've met with recruiters from some of the larger tech companies and even for software management roles, one of their tips is to practice my algorithms.
6. Research the company
From the point of view of interviewer, I can personally say that when a candidate has done their homework and knows about the company work, culture and history it usually makes for a better interview.
They are more engaged and seem more enthusiastic about wanting to actually work at that company. And more importantly, they are able to navigate the interview slightly in their direction as they ask questions or bring up points about the company.
And again, not enough credit goes to being able to stay memorable and to actually have a pleasant 30 minute conversation in an otherwise very stressful scenario.
5. Work on your soft skills
Working on your soft skills is crucial when preparing for programming interviews. While your technical prowess gets your foot in the door, your soft skills are what open it completely. These include effective communication, problem-solving, teamwork, and adaptability.
In the world of programming, where projects are often collaborative and require constant communication with team members and stakeholders, these skills become indispensable. During an interview, demonstrating your ability to clearly explain your thought process, actively listen to the interviewer, and respond to questions appropriately, can significantly elevate your chances.
More importantly though, often times the person interviewing you is the person that you are going to be working with day in and day out. And that's huge. Because you typically spend just as much time per day with your co-workers as you do with your family at home.
And if you're easy to talk to, provide good verbal and physical queues, laugh when appropriate, etc, then the other person doesn't have their guard up.
4. Selectively apply
If a job position is clearly not a fit for your skills and experience then it is best to just avoid it. You might hear that it is a numbers game in the end and the more the merrier. And that's true, if the job is aligned with your skills and experience.
If you don't have the skills for a job, the interviewer is going to find out within the first 2 minutes and will almost immediately pass on to the next candidate. And that's just not a good use of your time at all.
Only apply to the jobs where you truly believe that you could do well.
3. Ask important questions
Usually near the end of any job interview you will be asked if you have questions about anything. Most people respond that they don't, in their own way, and the interview typically ends there.
But recall what I said above. Every chance that you get to talk and to showcase your talents, you should take. Because that next candidate is probably outside the door waiting for you to finish.
Questions that I have typically asked in the past include:
How big is the team?
Are there any big projects in the works?
Do you use VS Code?
The last one isn't really important, but just makes you more relatable. Because of course they use VS Code.
2. Keep applying
Even if your last interview went incredibly well and it would be crazy if they passed on you, keep applying to jobs.
I've had interviews go amazingly well in the past, only to wait day after day and week after week without even an update.
It happens. You're only as good as the next person that's going to walk in and also have an amazing interview.
I've also had multiple job offers stack up at the same time because I did keep applying no matter what. And it's a much better feeling to have to turn down offers, than it is to not get them at all.
1. Just act natural
I get it. Some people get nervous during interviews or any other kind of social interactions. But typically if you look like you're uncomfortable in your seat and your artificial smile is starting to droop a bit, then the other person is going to feel uncomfortable as well.
From an interviewer point of view, I've had plenty of people smile at me uncontrollably for hours on end. And truthfully, it makes it hard to gauge just who that person is.
Be yourself, act normal, everything is cool. Because if it doesn't go well, then there's always a second chance somewhere else.