3 ms·
I think you need focused preparation. I have found that intense prep of a few weeks generally gets you comfortable with the basics. Then you have the momentum y
by rmk 6y ago
I think you need focused preparation. I have found that intense prep of a few weeks generally gets you comfortable with the basics. Then you have the momentum you need to start building up your skills on the harder questions.
Bitwise operations are not representative of interview questions, neither is formally solving Recurrence Relations (that is more of an academic algorithm class thing, where the focus is on formal proofs of asymptotic complexity). DP questions are rarely asked during screening, but will likely get asked in advanced rounds of interviews.
You do not need to go to a bootcamp for interviews, but you need a focused plan and you need to stick to it for several weeks at the very least. Also make sure to interview promiscuously at your non-target companies before you take a stab at the FAANG-level companies. Interviewing is a skill and gets better with practice.
For System Design interviews, I do not have much to say except that they are used as a gauge of your seniority, particularly if the person doing the interviewing is more experienced than you. It's useful to know some things in this area but it's much more important to be very comfortable in the coding department.
For coding, I suggest this:
- Know your Data Structures and be able to implement them:
- Linked Lists
- Stacks
- Queues
- Hash Tables
- Binary Trees, Binary Search Trees, and Heaps
- Tries
- Graphs (Adjacency List and Matrix representations)
- Libraries for the above in your language (Collections in Java, Containers/STL in C++, for example).
- Do simple problems in these categories and become expert in them:
- Linked Lists
- Array problems
- Binary Trees/Binary Search Trees (These are great for learning recursion)
- Backtracking (These are also great for learning recursion)
- Sorting
- Graphs Problems (search, connected components etc.)
- Dynamic Programming
- Focus on techniques, not specific problems (save for the basics above. You should know how to do simple problems in the above categories cold).
This level will prepare you for a good coding interview at any company thats below the FAANG-level. For the FAANGs, you must do harder problems, but should also know how to do them cold. That part is hard and somewhat open-ended. The basics I have mentioned above can be done with around 4-6 weeks of intense prep.