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 • What to study and in what order, while memorizing a quick summary of the approach instead of the detailed implentation • Kevin Naughton Jr 📺
- 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 🛠️
- Algorithms In Interviews SUCK | Prime Reacts • Debating an article claiming coding interviews shouldn’t include algo puzzles • ThePrimeagen 📺
- Technical Interview Guide for Busy Engineers | Tech Interview Handbook 📕
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
- 📺 Coding Interview: Programming Loop Invariants • 3 minute video by Basarat Ali showing how to find the minimum value in an array by tracking the minimum value seen so far while iterating
- 📺 Coding Interview: Longest Consecutive Character • 3 minute video by Basarat Ali showing how to identify the character in a string with the most consecutive repetitions
Job Applications
- 📺 Hiring & Getting Hired in Tech • 91 minute video by Sarah Drasner and Jason Lengstorf answering live questions from the chat about how to succeed at the coding interview process
- ✍️ Advice for Writing a Technical Resume • Article by Sarah Drasner
- 🎙️ Full Stack Radio: 152: How to Stand Out When Applying for a Job at a Small Company • 48 minute podcast episode by Adam Wathan and Ben Orenstein with dos and don’ts when applying for a technical job
Mock Interviews
- 📺 Mock Coding Interviews On AlgoExpert?! • 11 minute video by Clement Mihailescu giving a tour of the mock interview feature of AlgoExpert
Resume
- 📺 The Resume That Got Me Into Google (software engineer resume tips) • 17 minute video by Clement Mihailescu explaining each line of his previous and new software engineering resume in detail and describing why he changed what he included as his experience grew
- Standard Resume: Build an Impressive Resume in 5 Minutes • Free resume builder that uses a simple markdown format to generate a well-formatted resume in multiple formats 🛠️
- Jamie Tanna’s Resume • Good example of a digital resume 📖
Resume Projects
- 📺 The Projects That Got Me Into Google (tips for software engineering projects) • 18 minute video by Clement Mihailescu walking through four projects (including two cool animated algorithm visualizers) and analyzing their strengths and weaknesses as example resume projects demonstrating technical skill by evaluating them based on whether they include appealing visuals, a wow factor and interactivity; whether they are easy to understand; and whether they taught the coder something truly useful
- 📺 Pathfinding Visualizer Tutorial (software engineering project) • 55 minute video by Clement Mihailescu showing how to create a basic pathfinding algorithm visualizer app using React
Telling useful stories
- On The Importance of 15-5 Updates • Article by Shawn Wang
- Sounding confident in interviews • Article by Julia Evans
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
- Questions I’m asking in interviews • Article by Julia Evans
Negotiating salary
- Salary negotiation in 30 seconds • Mike Crittenden 📖
- Things you should know about stock options before negotiating an offer • Julia Evans 📖
- Questions you can ask about compensation • Julia Evans 📖
- Salary Negotiation: Make More Money, Be More Valued • Patrick McKenzie 📖
Inbox
-
organize into Getting vs Preparing vs Interviewing?
-
How to Get an Interview as a Software Developer • Martin Cartledge 📖
-
How to Track Your Job Search • Martin Cartledge 📖
-
How to Prepare for a Software Developer Interview • Martin Cartledge 📖
-
Problem Solving Patterns for Technical Interviews - the Frequency Counter Pattern Explained • Martin Cartledge 📖
-
teivah/designdeck: An Open-Source Collection of 230+ Flash Cards to Help You Succeed in Your System Design Interview and More 💯 • Teiva Harsanyi 🧑💻
-
phone screen question: tell me about a project that seemed impossible when you started and what you learned from it; how would you feel given a similar assignment today?
-
my computer interviewed me and I bombed • Add the key points from the JD to your prompt, then ask to be interviewed and have your answers graded • Visual Studio Code 📺