You received that email, welcoming you through the doors of a prestigious (or not so prestigious) software company in order for you too showcase your skillset for a shot at their salary package. And now you are probably doing what everyone else in that same position does, and you are Googling questions and learning what a red-black tree is and the many steps of the software development life-cycle.
And while that is the most common approach, it might not be the most efficient or useful one. And that is the topic of this post. As someone who was interviewed many software developers and who has equally participated in many interviews on the receiving end, I've heard and said every possible combination of answer and semi-answer and I know what sounds good and I know what immediately makes the conversation go south.
Know your future employer
Each company has their own standards and guidelines normally as to how they conduct interviews and which questions should be asked and will be asked. Do your homework, as many times these questions can be found online in order to give you an idea of what you are stepping into. This isn't something that you could do 10 years ago but that is available now due to the more transparent nature that companies are adopting.
Some companies ask very specific and technical questions. Acronyms are important and exact definitions will garner you extra points. Some companies ask no technical questions whatsoever and focus more on the individual as a person. While other companies will barrage you with cryptic questions that only a high IQ individual could muster an adequate answer for. It's good to know what you are getting yourself into as I mentioned.
It's also beneficial to have an idea about what your employer actually does, so that you can ask some valid and poignant questions about your future job position. This is a good way to steer the interview in your direction if only temporarily. And most people won't find it difficult or offensive to spend a good 10 minutes answering your questions about what they do.
Review your algorithms
Red black trees, binary search trees, the Fibonacci sequence, to name a few. These are my least favorite questions to answer and to ask. They only prove memorization ability on a very narrow topic. But they do gets asked. If you attended some form of higher education, you no doubt spent too much time analyzing these formulas and converting them to some form of text-based interpretation. If you are fresh out of college, then maybe you're in luck as these will still be fresh in your memory. At least in my case this was true. I may not have known what a database was or how to log in to a server, but I could hash out algorithm after algorithm just fine. And while it didn't land me the job, it did give me some form of encouragement that I knew what I was talking about.
Lucky for you, this list is normally kept small. So memorize them. At least those 3. Know what they are, and what they are good for. And be able to write out at least a half functional version from memory if necessary. While these questions might not necessary have any meaningful value to anyone, they do get asked frequently enough that it helps to be prepared.
If you are a more skilled professional however, then you've probably learned that these algorithms aren't too useful in your day to day life and as such they are just a distant memory that you discuss around the watercooler as you make jokes about trending interview questions. And so you might have some trouble working through these and might even find it offensive. Suck it up and study. At the end of the day, the person holding your resume is the one giving out the points and if you want to win the game, you must play it and play it well.
Work on your soft skills
Knowing how to answer questions that anyone can Google is only one aspect of a technical interview. Being accepted among a random group of peers is another complete different thing. It's almost ritualistic in the way that it functions really. And for that to work out well, you have to follow some form of socially acceptable behavior. Confidence is important for example. People don't normally want to associate too much with the anxious person who doesn't make eye contact. So practice making eye contact. Not in a forced and creepy manner. But in a natural or even semi-natural fashion.
Stumbling over words can also convey that you aren't as skillful as you'd like to be. Practice speaking slower. When presenting on stage, most public speakers will tell you to bring it down to around 50-75% speed. More people will be able to understand and you won't get overly excited when answering questions that you don't know. So practice and practice often. Practice with friends. Maybe not family so much as they won't be as critical and give valid feedback. And be aware of your speed as you answer questions. Most people tend to speed up their tempo when they get overly excited.
We're social creatures by nature, and so most of us will work towards functioning within a similar group. Most people will go into an interview with a stoic approach. No smile, no laugh. Short answers. The impression left behind is anything but memorable. Remember you aren't the only person interviewing for these jobs. If you aren't seen as friendly and approachable, then somebody else will. Your stoicness will only work to strengthen the perception of the other person in the long run.
No interview is complete without the set of personal introspective questions that make us freeze like a deer caught in headlights as our brain looks for a valid answer that won't totally make us look like terrible people. And that's the whole point of these questions. To put you into a tight corner in order to get a real response. Some become defensive at such questions while others will answer in a way that makes them look positive.
What scares you in life?
That's a powerful question. One that I have been asked in the past from an HR Director with a razor sharp intellect who wanted me to crack on the spot in order to gauge my reaction and take notes. And rightfully so. That's not a question that you ponder on a day to day basis. But its a human question and at the end of the day companies want to hire humans in order to co-create, mingle, and not create too much of an overall distraction to the other employees.
Be prepared to answer these questions. Questions about your strengths and weaknesses, and about your goals in life. About your future plans and about what makes you angry. But always explain your reasoning. Even if it sounds like it's a negative trait, maybe you are correct in your logic behind it.
Before anything else, preparation is the key to success - Alexander Graham Bell