We invited Sam Gavis-Hughson to talk to our candidates about the key elements that drives a developer to success when it comes to Technical Interviews. In this article, we tried to distill the essence of the webinar, but you can find way more details by watching the recording. All the discussed topics are noted in the description of the video, so you can jump to what interests you the most.
Also, along the article you’ll find all the resources Sam recommended in order for a developer to successfully pass technical interviews.
Sam is the founder of Byte by Byte and he helps software engineers successfully interview for jobs at top tech companies. He also is the author of Dynamic Programming for Interviews, the ebook that shows anyone how to succeed at dynamic programming interviews.
He helped thousands of students through his blog and free content – as well as 500+ students, land jobs at companies such as Google, Amazon, Microsoft, Bloomberg, Uber, and more.
The 3 Pillars of Interviewing are the key areas where everybody needs to focus on:
- CS Fundamentals
- Problem Solving Strategy
- Self Confidence
Along with those 3 pillars, Consistent Practice is essential.
In order to Practice Consistently, you have to:
- Start practicing from 15 to 30 minutes per day, for a week.
- After one week of practicing consistently, you can add 5-10 minutes, slowly building up this habit rather than jumping right into long practice sessions.
Even though you start forming this habit slowly, there will be visible changes and the chances for you not to give up are way lower than if you’d start with longer sessions.
Your goal is to make it difficult to fail
Self-confidence is 80% of you being successful or not
In time, we realized that if candidates don’t that well on the first few tests, but their self-confidence was on the right track, the company reached back to them to give them another try.
For more information about forming habits, Sam recommended “Atomic Habits” by James Clear, even though it’s not specifically tech-related.
“It’s not a matter of becoming the best, it’s a matter of becoming good enough” – Sam recommended looking over Bloom’s Taxonomy in order to understand how you can learn a new skill.
Data structures and Algorithms are not the same:
- You have to understand how Data Structures work and how you can implement the Data Structures yourself.
- You have to understand the core patterns that if you know them, they allow you to do everything else.
- Composing Algorithms is the result of the equation of combining the Data Structures and the Core Patterns.
Another concept Sam recommends is becoming Asymmetrical:
- Setting up a binary when going in an interview (I either succeed or I either fail) is not a good approach, as you – as a candidate – want your worst-case scenario not to be too bad.
A strategy Sam likes and recommends is:
- Taking a problem and breaking it into smaller problems, as this strategy is repeatable and it works for any problem.
Community Member Question: “Do you judge candidates by technical knowledge only, or do you have other parameters too – like language, behavior, etc?”
- Even though technical knowledge is really important, some companies are really focused on the cultural-fit too.
- What he recommended is to try practicing coding on a whiteboard or on a piece of paper.
- All the parameters except technical knowledge, are TIE-BREAKERS, which helps the employer make a decision on rather they should hire you or not.
Community Member Question: How can we manage or control the anxiety during the interview?
- It’s important to know that your posture, behavior and facial expressions show how you feel, and also – The way we hold our body can affect the way we feel.
- Practice as you were going to have to do in the interview
- Practice using the tools you’re going to use in the interview
- Practice at the desk you’re going to have your interview
Exercise: Sit in a room by yourself, set a timer on your phone (60 seconds) and force yourself to laugh.
Even though it sounds pretty weird, we tried it and it changes your mood.
Exercise: Every time you walk through the doorway, straighten up, shoulders back and smile.
Remember: The more variables there are -> the more things change -> the more stressful you’re going to be in the interview.
Sam admitted that he wouldn’t use mock interviews to learn interview questions, but to build up his self-confidence.
He recommended Pramp, as you can have unlimited interview credits – Check out this link
Community Member Question: Do you have any advice about handling the System Design interviews? – please check minute 50 of the video to get the whole response.
- It’s better to use the tools that you’re familiar with even if you feel that the tools you’re using are not the right choice in solving the problem.
- It shows that you are competent in using the tools that you are already familiar with.
- You should improve what you already know instead of learning something new.
The resources Sam recommended are:
- Hired in tech’s free course
- Princeton Algorithms Course Part I
- Princeton Algorithms Course Part II – “They both have fun assignments”
- Cracking the coding interview – “It’s not going to teach you how to do it, but it will show you what you need to get deeper on”
Another recommendation would be Algorithm designs. Even though he didn’t have the time to read it, he heard good reviews about it.
Community Member Question: Do you have any resources for Problem-solving and Strategy?
For this, Sam recommended:
Other resources we encourage you to check out are:
- Byte-by-Byte’s Dynamic Programming for Interviews
- Byte-by-Byte’s 2-hour Masterclass – So you can reach more in-depth what was discussed in this webinar.
Byte-by-Byte’s Youtube Channel – As he has lots of videos that can help you during this process.