Everyone has a friend who has mastered 500 coding challenges. They cherish donning it as a badge of courage. However, they completely bomb interviews. This situation occurs frequently. We refer to it as the "Breadth-Only" strategy. They are just concerned with finding solutions to as many issues as possible.
A weakness of the breadth-only strategy is that a solid foundation isn't established. A deep understanding of problem-solving techniques and quick, correct coding skills are essential for interviews. These abilities can only be acquired via careful preparation.
Here is a method that seems counterintuitive but is more effective:
Right, this is reassuring. When can you concentrate on just 100 issues? Who wants to focus on 500?
The key is to learn them well, though. Depth has a role in this.
An extensive analysis of a problem entails:
You must concentrate on a few representative issues to accomplish this (around 100 works well.) Once you've solved them a few times, you'll begin to notice trends. Additionally, you start to improve your coding skills.
So, kudos to you for covering depth! You now have a strong foundation.
Now is the time to go all out and address as many issues as you wish. The best part is that not many of them will require coding. Find a solution, and if it resembles one of your fundamental issues (which it frequently does), you're done. You're already skilled at it. Therefore there's no need actually to develop and debug it.
Make a list of 100 core issues. You may find 100 handpicked problems on many websites.
Here is another approach:
Purchase these two books:
Together, they provide you with a decent selection of specially chosen tasks. Visit Learnbay’s Data structure course if you want a formal training for this.
Start with the fundamentals now that your list has been determined. Understand each data structure.
Study each data structure in your language and how to use it.
Also, learn how to put them into practice. Yes, carry them out by hand. This is often disregarded, yet it's crucial. You may be questioned about data structure internals in interviews. Many issues alter data structures or re-design them to fit a particular use case. You must understand how they operate to make full use of them.
For example
Imagine that you must implement a queue solely utilizing stacks (a popular question). This data structure has been altered. You'll have problems getting started if you haven't used it either.
You do not, however, have to be familiar with the code of every implementation. Some data structures are quite challenging to construct; removing a node from a binary search tree, for instance, is not an easy task. But you should be aware of how it functions.
List of data structures to master:
Alright. You compiled a list of inquiries and got to work answering them. Here is a typical query we get:
"I can answer many questions, but I can't in a week! How do I remember the answers?
The secret is to avoid remembering answers. The secret is to put them to use. You should be able to deconstruct an issue and recreate the answer as soon as you perceive one. This is distinct from learning through repetition. You're identifying various elements, dissecting them, and resolving the issue.
The best method we've seen is to solve the issue once more in three days. The following week. The following month. You'll start to do it naturally.
Isolate the actual blocks of code. The Depth-First methodology is exciting at this point. You'll begin to see patterns as you work through these issues.
Say you utilized Binary Search to solve five problems. The Binary Search code can be isolated and repeatedly practiced. You anticipate applying it to issues of a like nature.
And among the many strategies you can choose from is this one. Other such examples are as follows:
You now possess a variety of methods that you might use to address brand-new issues.
Let's assume that you have conquered your primary issues. You're comfortable with using standard data structures. You can now expand your search outside your existing set of skills. You don't need to code all the new questions because you've already used many strategies.
Try to solve practical interview difficulties during this period. Once you get proficient, you may start concentrating on extremely challenging issues. If I can figure out these very challenging problems, interview questions will be easy, the thinking goes. Typically, that is not the case. Really difficult problem-solving strategies frequently have little to do with difficulties found in interviews.
At some point during your preparation, we advise practicing on paper. Coding without an IDE and Stack Overflow forces you to step outside your comfort zone.
The following are some advantages to practicing on paper:
Check out the popular data structures and algorithms course, if you want to master DSA from scratch and ace your challenging technical interviews.