Coding Practice
Coding question practice is not about memorizing answers to programming problems.
Why you need to practice doing programming problems:
- Problem recognition, and where the right data structures and algorithms fit in
- Gathering requirements for the problem
- Talking your way through the problem like you will in the interview
- Coding on a whiteboard or paper, not a computer
- Coming up with time and space complexity for your solutions
- Testing your solutions
How to setup and get started:
- Study Algorithm design canvas by HiredInTech
- Great intro for methodical, communicative problem solving in an interview
- Similar content is covered in coding interview books but this is outstanding
- Get a whiteboard at home and practice on it. If you cannot have whiteboard, then get a extra large notebook and use pencil and eraser on it rather than pen.
Supplemental:
- Mathematics for Topcoders (article)
- Dynamic Programming – From Novice to Advanced - Topcoder (article)
- MIT Interview Materials (web)
- Exercism - Exercises for practicing any programming languages (web)
Read and Do Programming Problems (in this order):
- Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition (book)
- answers in C, C++ and Java
- Cracking the Coding Interview, 6th Edition (book)
- answers in Java
- Solutions to problems (GitHub)
Coding exercises/challenges
Once you've learned your brains out, put those brains to work. Take coding challenges every day, as many as you can.
Coding Interview Question Videos:
- IDeserve - Youtube (videos)
- Tushar Roy playlists - Youtube (videos)
- Super for walkthroughs of problem solutions
- Nick White LeetCode Solutions - Youtube (videos)
- Good explanations of solution and the code
- You can watch several in a short time
- FisherCoder LeetCode Solutions - Youtube (videos)
- Neetcode - BLIND 75 LeetCode Solutions
- Good explanations of solution and the python code
- Also checkout excel sheet for all question list
- Github links for all solutions code
- Neetcode 150
- 5 Simple Steps for Solving Any Recursive Problem (video)
- Backtracking Blueprint for Python (article)
- Binary Search Blueprint for Python (article)
- Google Interview Prep Routine (article)
Challenge sites:
- LeetCode
- My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing
- LeetCode Solutions from FisherCoder (GitHub)
- See Nick White Videos above for short code-throughs
- HackerRank
- TopCoder
- InterviewCake
- Geeks for Geeks
- InterviewBit
- Project Euler (math-focused)
- Code Exercises
Language-learning sites, with challenges:
Others:
Challenge repos:
Mock Interviews:
- Gainlo.co: Mock interviewers from big companies - I used this and it helped me relax for the phone screen and on-site interview
- Pramp: Mock interviews from/with peers - peer-to-peer model of practice interviews
- Refdash: Mock interviews and expedited interviews - also help candidates fast track by skipping multiple interviews with tech companies
- interviewing.io: Practice mock interview with senior engineers - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously.
Website with Practice Problems and Solutions:
Once you're closer to the interview
- Cracking The Code Interview 1 - Gayle Laakmann McDowell (video)
- Cracking the Coding Interview 2 - Gayle Laakmann McDowell (video)
Best way to find perfect career opportunities for you
- If you are trying to find new job opportunities, or if you are trying to find internships, if want to know about the salary of a job role in any companies or want to just know about the company reputation before applying to that company, here are the list of platforms which can help you find the above answers and more.
- Best Websites for Careers & Jobs (article)
Your Resume
- See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed
- Very Important thing to remember while creating your resume, if you applying for big companies is that make it ATS Compliant.
- How to Create or Check if your Resume is ATS Compliant (article)
- "This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview),
- Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
Be thinking of for when the interview comes
Think of about 20 interview questions you'll get, along with the lines of the items below. Have 2-3 answers for each. Have a story, not just data, about something you accomplished.
Why do you want this job?
What's a tough problem you've solved?
Biggest challenges faced?
Best/worst designs seen?
Ideas for improving an existing product
How do you work best, as an individual and as part of a team?
Which of your skills or experiences would be assets in the role and why?
What did you most enjoy at [job x / project y]?
What was the biggest challenge you faced at [job x / project y]?
What was the hardest bug you faced at [job x / project y]?
What did you learn at [job x / project y]?
What would you have done better at [job x / project y]?
If you find hard to come up with good answers of this type interview questions, you can refer below link for some answer templates and have some idea.
Grokking the Behavioral Interview (Educative.io free course)
Have questions for the interviewer
- How large is your team?
- What does your dev cycle look like? Do you do waterfall/sprints/agile?
- Are rushes to deadlines common? Or is there flexibility?
- How are decisions made in your team?
- How many meetings do you have per week?
- Do you feel your work environment helps you concentrate?
- What are you working on?
- What do you like about it?
- What is the work life like?
- How is work/life balance?