Prerequisites

Essential knowledge before starting your coding interview journey

1. Programming Language

Programming Languages

You should be proficient in at least one widely-used programming language. This includes understanding basic syntax such as loops, conditionals, and functions.

Python Recommendation

I strongly suggest using Python for coding interviews. It's easy to read, has helpful error messages, and is beginner-friendly. Its concise syntax lets you focus on problem-solving rather than boilerplate code, unlike verbose languages like Java. Python also includes powerful built-in tools like lists, sets, dictionaries, heaps, deques, and list comprehensions that make it much easier to implement complex logic quickly.

JavaScript/TypeScript and Java are also solid choices. Many large banks like Goldman Sachs use Java in their codebases and value candidates who are fluent enough to do their interviews in it. Startups often prefer TypeScript since it works seamlessly across both frontend (React/Next.js) and backend (Node.js). Other popular languages like Go are also acceptable, though they offer fewer built-in libraries and data structures.

In a real interview, if your programming language doesn't include a built-in data structure you need, your interviewer will usually allow you to define your own interface or API for it. You likely won't need to implement it from scratch unless that's explicitly part of the problem.

Learning Python?

If you're interested in learning Python, you may find this content on PriorityQ helpful:

Python Cheat Sheet

2. Data Structures and Algorithms

You should be comfortable with the most common data structures and algorithms. This means:

  • • Understanding their time and space complexity
  • • Knowing how to implement them
  • • And most importantly, knowing how to use them in your chosen programming language

Beginner Resources

You may find these resources on PriorityQ helpful for learning these topics:

Data Structures & Algorithm Fundamentals

These are almost guaranteed to come up in coding interviews.

More advanced concepts topics may show up in harder interviews, especially at top-tier companies.

Many hard problems will require knowledge of one or more of these concepts. Without them, solving such problems on your own will be extremely difficult.

Important Note

Unless you're a competitive programmer putting in thousands of hours, it's unrealistic to master every advanced topic deeply. Focus first on the more common and approachable topics before tackling harder ones. But don't treat it as a strictly linear path—you'll need to regularly loop back and review earlier material to keep it fresh.

Advanced Topics

You may find these resources on PriorityQ helpful for learning advanced topics:

Advanced Algorithms

Practice Tip

Sometimes, out of fear of difficulty, people just watch videos and treat the concept as academic theory. But you need to actually practice solving problems and implement common advanced algorithms from scratch to truly understand them.

How to Practice

1. Just Start

Just get started and don't overthink it. Pick a solid list of problems and begin working through them.

Recommended Practice List

This is a comprehensive list and provides a good mix of easy, medium and hard problems:

PriorityQ Roadmap

It's normal to want to plan the best way to study—that's totally reasonable. But don't overthink it. A lot of people waste more time planning than actually studying. Just dive in. What's the worst that could happen? Maybe you pick a problem that's too hard. That's okay—you can always revisit it later.

2. What if I can't solve a problem?

Pause and Think

Many people get discouraged when they can't solve a problem.

That's completely normal. I've coached hundreds of students, and in nearly every case, the issue isn't a lack of intelligence—it's just that they haven't found a resource that explains it in a way that clicks for them. I'm confident this platform will help bridge that gap for you.

Each problem on PriorityQ comes with a thorough explanation of the solution approach, code in multiple languages, detailed time and space complexity analysis, common edge cases, and clarifying questions you should ask at the start of an interview. Use these resources—they're here to help. It's not "cheating" to look at the solution. It's far more valuable to learn the core ideas you can apply elsewhere than to spend days stuck trying to reinvent an algorithm from scratch.

Key Point

As long as you understand the solution, you're making real progress.

Do Not:

  • • Copy and paste the solution
  • • Spend 4+ hours stuck on a single problem
  • • Memorize algorithms blindly without understanding how or why they work

Do:

  • • Give the problem an honest attempt on your own
  • • Sketch it out on paper to clarify your thinking
  • • Check the solution if you're making no progress after 45–60 minutes
  • • If the solution still doesn't make sense after 45–60 minutes, move on to an easier problem
  • • Revisit tough problems later and try solving them from scratch

Tip

Difficulty ratings aren't always reliable. Some "medium" problems are harder than "hard" ones, and some "easy" problems are deceptively tricky. Don't get too hung up on the label—focus on learning the underlying algorithms.

3. How do I know I'm ready for FAANG+ interviews?

Probability and Readiness

You probably want to maximize your chances of passing the interview, right? So how do you know when you're actually ready?

Here's the thing: technically, you're never truly done preparing. You'll never have a 100% chance of passing any interview. It's more like a probability game—a distribution, not a binary outcome.

You might reach a point where you can pass 50% of interviews, or even 90%, but never all of them.

The interviewer could ask a question that's both difficult and highly customized. In some cases, the interviewer may not be fully prepared—they might have a single solution in front of them provided by the company and assume it's the only valid approach. If you try a different (but correct) strategy, they may mistakenly steer you away from it, causing confusion or wasted time. In the worst cases, this can lead to running out of time and failing the interview—not because your solution was wrong, but because the interviewer wasn't flexible or knowledgeable enough to evaluate it properly. And on top of that, unexpected issues like power outages, poor internet, or getting sick can also derail things—all of which have happened to me.

Good Rule of Thumb

If you can solve most medium problems you've never seen before in under 30 minutes, you're likely ready to pass most interviews.