How to study for a coding interview
- learn the algorithm patterns
- see 14 patterns article and leetcode filtering tool website
- link to useful sites that include JS solutions
- study other people’s answers to specific problem patterns on leetcode
- translate their solutions into pseudocode
- compare pseudocode of multiple solutions
- summarize pseudocode for this problem type (e.g. fast and slow pointers) into 3-6 steps and study that
- try solving the same problems using my pseudocode
- if that didn’t work, keep refining my pseudocode
- Review using spaced repetition
- Choose a rotation of problems to practice regularly
- Create a schedule
- Day 1 of a problem type: algorithmic thinking, research and create pseudocode
- Repeat using spaced repetition (e.g. two days later, then 3, etc)
- After each solve, ERASE THE CODE so next time I’ll solve it fresh
- Solve the exact same problem until I can do it easily
- Not memorizing the solutions; memorizing the pseudocode and identifying which algorithm to use, and then practicing implementing the pseudocode
- 📺 How I Got Good at Algorithms and Data Structures • 8 minute video by Kevin Naughton Jr. recommending what to study and in what order, and advising overall to memorize a quick summary of the approach, not the code itself.
- How to reduce the Leetcode Grind to prepare for technical interviews • W. Ian Douglas 📺
- NeetCode.io • A better way to prepare for coding interviews • Navi 👩🎓
- HackerRank • Online Coding Tests and Technical Interviews 🛠️
How to approach a coding interview question
- figure out what kind of problem it is and what algorithm fits
- write pseudo code before coding
- write notes like Bob Ross paints, from general layers to eventual final details
- start general and generic
- Soft Skill podcast advice:
- Episode 350: Bombing a technical interview and background vetting • Soft Skills Engineering Podcast 🎙️
- when you are stumped on how to solve a problem, pivot to FULLY exploring and clarifying the boundaries of the problem (e.g. by writing unit tests)
- UMPIRE Interview Strategy • CodePath 📖
Strategy: Track values while iterating
Job Applications
Mock Interviews
Resume
Resume Projects
Telling useful stories
Asking useful questions
Questions for everyone
- What do you like about working for Company X?
- What do you find challenging about working for Company X?
- How is the work-life balance?
Questions for the recruiter
Questions for my future manager (aka. the hiring manager)
- Why problem are you trying to solve by hiring right now?
- What would you want most from me in the first week, month, 3 months?
- What projects would I focus on for the first 6 months, year, two years?
- Do people tend to stay / move up? Leave? If they leave, why is that?
- If I stayed with the team for a few years, what would my career progression look like?
Questions for my future teammates (or other technical interviewers)
- How do product/tech decisions get made? What happens to your ideas?
- What is a typical day like on this team?
- What’s it like to work with manager X?
- How is the learning culture on the team? Are people supportive and transparent about what they don’t know, or is there more of a competitive vibe?
- Can you show me a non-trivial PR review?
- Reverse Interviewing Your Future Manager and Team • Reverse interview your future team after you’ve negotiated the offer, and before you accept it • Gergely Orosz 📖
Links
Negotiating salary
Inbox