I think we often do a great job of flogging the dead horse of whiteboarding problems when giving coding interview advice. Heck, that's what I've dedicated the entirety of Boot.dev to. While the hard skills you'll need to be able to solve technical interview problems are necessary, it's also critically important to work on your soft skills.
From a high-level, there are two qualities you really want to exhibit in a coding interview:
Let's talk about why these two qualities are so important.
At the end of the day, companies don't hire people. People hire people.
Companies are a myth. If you don't believe me, read the "Sapiens" book. Anyhow, the point is that a company doesn't think for itself. Companies are made up of people, and the people in a company don't belong to a singular hive-mind. They don't do exactly what's in the company's best interest at all times. The people in a company are loosely aligned in their mission to make the company money, but each person has their own wants, needs, pains and incentives.
When you walk in (or sign in) to a job interview, remember that the people interviewing you are people. If they decide to hire you, it's not just because you're the candidate that they believe you're the best option for the company. Instead, it might be because you will:
- Save them time
- Make them look good
- Make their life easier
- Build out their team, giving them more authority and influence
- Deliver the project that will secure their next promotion
- Be fun to work with
People want to hire people who make their job easier
This is the first point I'll make where confidence matters. When you're in an interview you're making a sales pitch. You're quite literally selling your services to your interviewer. Your interviewer is very interested in your skills because they want to know if hiring you will take some work off of their plate. Your interviewer will be wondering things like:
- Will I have to hold your hand constantly?
- Will you learn the codebase and be able to contribute quickly?
- Do you bring new skills to the team?
- Will you be able to quickly learn the things you need to know but aren't yet familiar with for this role?
- Will hiring you make me look good?
By coming across as confident and self-assured you will naturally ease a lot of their concerns regarding your competence. Of course, false confidence won't help you - you need to actually know your stuff! That said, once you do know your stuff, getting yourself into a positive and confident mindset can help a lot.
I know, I know, it's easier said than done. That said, like Simon from Gurren Lagann, you can always believe in the me that believes in you.
People hire people who are enjoyable to work with
Being "confident" isn't the same as being a boastful goober. When I say "be confident" I'm saying that you should believe in your abilities, and if you don't know something, believe in your ability to figure it out.
However, competence is only one piece of the puzzle.
It's also very important that you have a fun, positive attitude. Remember, the people interviewing you are hyper-aware that they're going to have to spend hundreds of hours with you if they decide to extend you an offer. They want someone on their team that's fun to be around!
- Don't complain. You had a bad day? I'm sorry about that, but save the story for another time.
- Don't trash talk your past coworkers. It's safe to assume that if you didn't get along with many of your past coworkers you may have been part of the problem.
- Don't mention that you were let go or fired. No one is going to hire you out of pity. Don't lie when asked, but you don't need to bring it up.
- Be excited about the interview. Have fun, and try to relax. Treat the coding problems like fun challenges.
- Collaborate and use inclusive language. When working on a problem in an interview, use words like "well WE could do x..." or "I'm thinking WE could try y". It puts you on the "same team" as the interviewers, and makes you look like a team player. Heck, they might even be more generous with hints and tips.
Be humble - know-it-alls are not fun to work with
Let's switch gears and talk a little bit about humility. Like the title of the article says, it's important to have confidence and humility. Confidence communicates to your employers that you can help solve their problems, but humility helps in a few ways as well:
- Being humble shows that you're not an ass. You'll be more enjoyable to work with.
- Being humble communicates that you will be teachable and learn faster.
- Being humble means you're more likely to be willing to adapt to how the team does things.
How can you be confident and humble?
Humility and confidence can seem like a conflicting set of characteristics to be sure. I've chosen my words carefully; you should have confidence, not pride.
A confident person believes they are able to do something, or at least that they can figure it out. When they discover that they were in fact doing something wrong, or that there was a better way, they happily change their methods. Conversely, when a prideful person learns they weren't doing something well before, for example, maybe they receive some constructive criticism, they take it personally. Their feelings get hurt and they become stubborn; they may even refuse to admit that they had it wrong.
Be confident, but don't be prideful.
How do I "become confident"?
I don't have a good answer, but here are a few things that have helped me:
- Make sure you know your stuff. Learn the hard skills. It's a lot easier to be confident in your abilities if you at least have the abilities in the first place.
- Practice interviewing! Get as many interviews as you can. Don't expect to land a job in your first interview. I did about 15 interviews before I got my first coding job.
- Realize that no one knows everything. The field of programming is enormous. You're not expected to know everything about computers when you go into an interview.
Anyhow, I hope this helps you a bit in your job search - Good luck!