3 ms·
Luck was on my side :) I also had help from a friend who was a top ranked competitive programmer. We went over problems together. To anyone with a competitive
by thewarrior 7y ago
Luck was on my side :)
I also had help from a friend who was a top ranked competitive programmer. We went over problems together. To anyone with a competitive programming background most FANG interview questions are absurdly easy.
You often see people asking “So I’m supposed to come up with these 3 tricks to solve these problems in 5 minutes and write the code in 20 minutes under pressure ?”. Competitive programmers have trained themselves to do exactly this and they do this consistently on questions way more difficult than the average FANG interview. The value of this skill in day to day development is debatable but it’s definitely something to sharpen your mind. It’s something one can learn to do with reasonable effort and is not impossibly hard as some like to claim.
I also winnowed down on what to prepare by eliminating types of questions not generally asked or too difficult by scanning lists of common questions asked. Although I had only a few weeks to prepare. If you have more time the second step may not be as necessary.
If you have one month to prepare use the Elements of Programming Interviews book. If you have more time check out Udi Manbers book on designing algorithms using induction. It goes into the why and the how.
In recent times I’ve observed that the system design interview increasingly plays the deciding role as most candidates can now solve the DS/Algo questions being asked.
- xenihn 7y agoIs the book that you're referring to "Introduction to Algorithms: A Creative Approach"?
- thewarrior 7y agoYeah
- xemdetia 7y agoI would say that it depends on the role when it comes to system design and may be reflective of your level of experience. Certain roles require you to know how to run something in a production context because otherwise the dev will make bonehead decisions. It's important to interview for that aspect as well for growth as there are some people that enjoy working on problems but just are awful at maintainable system design or conversely consuming large complex base systems. Anyone who 'develops for cloud' generally needs more system design skills just to understand how to work and build in cloud compared to a developer where everything is provided for them when it comes to actually delivering the code. This is a large change as well for people playing containers, kubernetes, and so forth where a lack of system design fundamentals can be a direct impediment to actually doing something of use given the constraints.
- digianarchist 7y agoWhat resources do people recommend for getting good with systems design questions?