One of the most anxiety inducing parts of getting a job in software development isn't learning how to code or getting your resume into shape, it's surviving interviewing. This is probably true of most fields, but software companies seem to go out of their way to find new and creative ways to pile on the stress!
From phone interviews to Skype video conferencing straight on through to in person interviews, they're all absolutely nerve wracking and can make even the most confident people a little jittery.
It's so easy, when you're nervous, to say the wrong thing, or to hesitate longer than you'd intended, to second guess everything you've said or how you sat or what you were wearing or whether your webcam is straight or not.. did they hear you humming Hedwig's Theme in the waiting room? 🦉 Did you really leave your laundry pile on that table back there... will they notice if you quickly move it? 👖👚👗👕🧺 🤯
I've been through quite a few interviews over the years and sat on both sides of the table. To this day, I get nervous, regardless of which side I'm sitting on. I'm absolutely not an expert on how to overcome all your fears and anxieties or how to nail every single interview, because every single interview will be completely different. Hopefully, though, I can share some tips and advice that will make it a little less terrifying and a little more successful.
Above all else, practice makes something closer to perfect! Anything you can do to make the interviewing process feel a little more normal is going to make things go a lot smoother.
Do some mock interviews with a friend, current co-worker, find someone online who's willing to pick up the phone, your neighbour, the cashier at the shop down the road.... ANYONE willing to read some questions out to you, this is a huge step forward.
Practicing this, even with someone you know, will help you solidify what you want to say and how to say it. Note: I don't generally advise memorising and repeating anything verbatim, but having a good idea what you want to say and how you want to respond will make it easier to respond to similar questions in the interview.
If you can find a mentor, someone who's a year ahead of you, maybe even a couple mentors, someone a few years ahead, 10 years ahead... Get advice from them. Practice with them. They'll be able to learn more about you and help you identify things you might struggle with in an interview. (If you don't know anyone else, drop me a line! We can chat!)
Once you've done those things, start taking interviews, even if you're not all that interested in them. You might be surprised! Sometimes interviews taken on a whim turn out to be game changers. Nothing beats a real interview for practice. And if you're going to bomb on a real interview, it might as well be for a job you're not sure you want! 😁
Inevitably, unless you're applying for a role you're drastically overqualified for, you're probably going to run into a question you don't know the answer to.
I've seen a lot of advice on this one, suggestions like talking around the subject.... I tend to get right to the point. Just flat out tell them. "I don't know." That can be a perfectly valid answer on its own. If you feel they're looking for more, a good way to follow that up is "But, this is how I'd go about figuring it out..."
It's ok not to know everything. Tech is huge. It's great to know things, but it's a lot more important to know how to figure out the things you don't know.
There are also a lot of cases where you DO know the answer, but don't realise it. If you're unsure what they're asking for, you should absolutely ask them for clarification. "Could you please explain what you mean by binary search tree?" Sometimes just getting the definition is enough you can go work out a solution for it.
This is a really common issue in tech, as not all data structures, techniques, patterns, etc have the same names in every language, framework or methodology. We also have a habit of using acronyms for absolutely everything! Sometimes names can be different by industry or region as well. Asking for clarification is absolutely ok.
They say the best way to learn something is to teach something. There's a huge amount of truth to this. In order to be able to teach another person anything, you need to know more than you'd need to know just to do the thing in the first place.
There will be a lot of things you might know well enough to do them on a daily basis. You might have enough knowledge that you can figure something out with a quick Google and that's good enough when you're working. But in an interview situation you don't always have access to Google! (You should... because it's completely unrealistic to NOT have access to a computer and the internet while programming... but interviews are what they are!) You still need to be able to answer those questions and the best thing you can do is over-prepare.
By learning how to teach others to pass whiteboard tests, you put yourself in a better position to pass them. It's also a great way to pay back the community of developers who have supported you in your journey!
This is one that a lot of people miss and it's a shame. If a company hires someone who's not a good fit, they might miss out on some time/money, but most won't really struggle. If you take the wrong job, it can be extremely harmful to your financial and/or mental health.
You should absolutely be interviewing the company more than they're interviewing you. You should be looking for a situation that feels right to you. Where you'll be respected for who you are and what your current capabilities are, but also encouraged and enabled to grow and learn more.
What's important to you will depend on you. For some people it might be about flexible working hours, will you have a mentor to help you grow, do they offer remote working, what sort of clients do they work for (sometimes this can be a really big deal!), are there opportunities for supporting charity events, social activities, work-life balance, etc. Ask the interviewers directly, ask to talk to some people who would be your co-workers so you can ask them. It's well worth taking the time to do this, as these things make a huge difference in finding a great role over one that just pays the bills.
When it comes down to it, the people who will be interviewing you have other jobs. They may well have never interviewed someone before!
The first time I interviewed someone for a technical job I was 20, I had no clue what I was doing! 😬
This is something a person has been asked to do between their normal duties. There's a good chance they're hiring because of a high workload, so this person might well be stressed out and strapped for time.
That's a lot of factors that could lead to them doing a lot of things that really aren't going to help them gauge whether you're a good candidates and a lot more things that could make this a really uncomfortable experience for everyone involved.
This is a good opportunity to try to be accommodating and understanding of the situation they're in. Going in with some empathy and a good attitude can go a long way toward making everything go smoother.
No, not an alcoholic drink! (Maybe after! 🍾) While I'm sure that could calm your nerves, that's probably not a good idea!
You're going to be talking a lot, which will dehydrate you and dry out your mouth quicker. It's a simple thing, but when they offer some water, take it! There's nothing worse than trying to answer questions when you're parched.
Also, did you know that when your mouth is dry, you make more clicking and popping noises while speaking? (Fun lesson learned from podcasting! 🎙) Having a glass of water at the ready can help with these. It's not the sort of thing people actively notice most of the time, but I try to avoid clicking and popping at the people who are interviewing me. It just doesn't seem like something I should do. 😁
I say this all the time when talking about resumes/CVs. But this is entirely true in an interview as well. A big part of the interviewing process is deciding whether or not you'll be a good fit in the team. There are a lot of different ways this is done, some good, some bad. Most somewhere between. But you should always be you.
By pretending to be something else you're sabotaging this for everyone. If you're really not a good fit, or if they really don't like you for who you are, this isn't going to be a good experience for you.
Now, I know, when you've got bills to pay and just need a job, sometimes "good experience" takes a back seat. I totally get that. If that's the case, then your best bet is always going to be to get yourself into a position of financial safety first, THEN go find something that's a good match.
In general, though, if you can be yourself and find a team that appreciates that and gets value from your unique knowledge and personality, that's the best situation to be in.
There's a lot going on with interviewing. There are a lot of different personalities involved. There are also a lot of pressures on both sides to get things right. All this leads to interviewing being one of the highest stress points of becoming a software developer.
In an ideal world, you'll run into an organisation and an interviewer (or interviewers) who work hard to make this process smoother and less stressful, but that might not be the case. They might not even be capable of doing that.
When it comes down to it, though, if you don't get this job, you'll learn a lot from the experience and take that with you to the next interview. There are so many jobs out there for software developers and so many ways for us to differentiate our skills.
Keep learning, keep trying! It won't take long before you're back here announcing your new role! In the meantime, if you've gotten this far, you're a real software developer already. Welcome aboard! ⛵️
If you'd like some more tips and information about building your resume and interviewing, we talk about these subjects a lot on our podcast Getting Apps Done
Specifically it's worth checking out: