Insights on how to prepare for your coding interview
When applying for a software development job at your dream company, you'll likely be tasked with completing a coding challenge or two.
The challenge seems daunting for someone who hasn't prepared. I know—that was me several years ago. I was interviewed for a big tech company, didn't prepare for the coding challenge, and failed miserably.
Since then, I started Microverse, a school for remote software developers. We require our students to complete coding challenges before and during the program.
Ironically, as Microverse has grown, I've learned a lot about coding challenge, why I failed mine years ago, and how to best prepare to pass them. I want to share a few of the top tips I have so you can boost your chances of success when completing your coding interview.
Tip #1. Practice with LeetCode
LeetCode's technical interview platform is a great place to start practicing with coding challenges to help you improve your skills before the real thing. Their platform offers around 200 challenges in 14 programming languages. Besides its sheer number of challenges, I like how, after completing a challenge, you can view stats such as how fast your code ran as compared with other users. There's also a section of the website dedicated to resources that can help you mock the interview with tasks considering the specifics of individual companies.
LeetCode's Premium version can be really helpful if you have the money. For $35/month, you can unlock a section of the website where you can review specific interview questions for companies like Facebook, Google, Apple, and Amazon, generously provided by a community of developers that have already landed their dream job and want to give back.
Here are some more benefits, apart from Premium Subscription, when practicing coding challenges with LeetCode:
- Developers prefer LeetCode for their straightforward tasks followed by the theory (which is mostly lacking in HackerRank)
- Specific challenges, such as SQL, are better on LeetCode than, for instance, on HackerRank. Besides, LeetCode offers more support for some specific languages, such as Go or C
- LeetCode lets you compare your solutions with the solutions of other challenge participants so you could find out how to optimize your code and reduce the memory it takes
Tip #2. Practice with HackerRank
HackerRank and LeetCode are the most popular websites to practice coding. Each has a few nuances so regards HackerRank you should know that:
- Developers say that programming challenges on HackerRank are generally better than on LeetCode which means more complex (if you want something not ordinary)
- HackerRank has a better interface than LeetCode (true, but don't base your decision on UI only)
- HackerRank offers live competitions that can better simulate a 'real-life interview'
- HackerRank is better for beginners and students that would like to master a new language; LeetCode is more suitable for experts and who prefer going deeper into the theory
- HackerRank allows the developers to apply for open positions of companies using their score on HackerRank that can be easily accessed online
If you can find the company you're applying for in the LeetCode Premium section, subscribe and practice there. If the company you're applying for is not that big like FAANG, they would more likely go with HackerRank coding challenges. Students at Microverse also use HackerRank to unlock coding challenges as part of their admission process. Either way, focus on one platform at a time.
Tip #3. Check discussions on Blind
Blind is an app for anonymous communication of verified professionals all over the world, including software developers. It is a community of almost 3 million experts that share industry-specific advice (and sometimes also rumors and gossip) and share their honest feedback about the companies they work - their salaries, interview process, promotion, and perks. Many of them work for FAANG (Facebook, Apple, Amazon, Netflix, and Alphabet's Google) and other industry giants. Everything is anonymous, so if you're seeking professional advice regarding the coding challenges, this app is a good source of information. You can even find the information on the level of complexity, the time allocated, and the number of tasks - that other candidates are welcome to share.
A code challenge task helps the employer to select the best candidates for the next stage. Also called a zero stage of the interview, a coding challenge is a quick and easy way to see if the candidate is the right fit from the very beginning. The coding challenges will help evaluate both coding techniques (you already know) and engineering capabilities (you potentially are capable of). So go ahead and check the discussions on Blind.
Tip #4. Check the ‘Cracking the Coding Interview’ book
The latest edition of this book contains almost 200 programming questions and solutions that can be handy during the coding interview. The book also contains some examples of the soft skills questions and "behind the scenes" insights of how top companies hire developers. Gayle Laakmann McDowell, the author of the book, has years of expertise as a software engineer at tech giants such as Microsoft, Apple, and Google. Besides, she interviewed over 700 candidates for the position of a software developer. So she knows what to suggest.
Tip #5. Find out that one platform
Why do you need to find out that one platform to practice with coding challenges? In some cases, companies ask their lead software engineers to prepare custom code challenges internally. However, recruiters often take those challenges from coding practice sites such as Coderbyte, HackerRank, LeetCode, and others. Thus, the best way for a developer to prepare for a programming interview is to sign up on those websites and practice there.
We, at Microverse, did some research on known companies that assign coding challenges to their candidates. Having browsed open positions and case studies featured at challenge websites, here’s what we’ve found. Platforms preferred by specific companies:
- LeetCode (not used by but with the resources for): Facebook, Apple, Google, Uber, Intel, Amazon, Cisco, Stripe
- HackerRank: Booking.com, Asana, Dropbox, LinkedIn, Stripe, Goldman Sachs, Foursquare, Mozilla, VMware
- Coderbyte: HBO, Nokia
- Codewars/Qualified.io: Accenture, Apple, Domino’s
- TopCoder: IBM, Microsoft, SpaceNet, NASA
- ChallengeRocket: IBM, Nvidia, ING, Santander
- CodeSignal: Uber, Lenovo, Affinity, Quora
- CodinGame: Facebook, Adobe, Nintendo, Deloitte
It's quite reasonable to feel a little nervous before the interview, especially if you're a beginner. The purpose of websites that feature online coding challenges is to help you define your strengths and weaknesses, see which areas need more attention, and feel more confident. Here are some tips from us on the websites and other resources that you can use during preparation for a coding interview.
Do your research too! Ask your recruiter about any insights on platforms preferred or browse online. Ask the community in Blind, Reddit, or HackerNews. So you can prepare the better.
Good luck in preparing for your technical job interview and landing your dream job!