4 ms·
Exactly. "I'm a really good developer, shipped software, why do I need to know how to invert a binary tree on a whiteboard?" Well, first of all, it's all out
by underdeserver 6y ago
Exactly.
"I'm a really good developer, shipped software, why do I need to know how to invert a binary tree on a whiteboard?"
Well, first of all, it's all out there, and you have all the time in the world to prepare. Know how to invert a binary tree.
Aside from that, the things you actually need to know for these interviews (from my experience interviewing at several FAANGs) are basic dynamic programming, BFS, DFS, and basic tree algorithms. Nobody's going to ask you to implement Edmonds-Karp from memory. This is something a smart non-academic who learned ReactJS should be able to easily learn.
Theory matters. If you care about theory, and applying theory to problems you face, you care about making your abstractions correct, which leads to code that has fewer edge cases and is more maintainable.
- driverdan 6y ago> Well, first of all, it's all out there, and you have all the time in the world to prepare. Know how to invert a binary tree. I downvoted you because this is terrible reasoning. If you don't use knowledge on a regular basis you have no reason to remember it, and won't. Interviews shouldn't require studying. They should test the knowledge you're expected to use on the job. I don't spend hours every week studying comp sci in the off chance I might need it at work. If I need to do something I don't remember or never learned I look it up. Theory matters if you're deeply involved in complex comp sci problems. If you're building simple web and mobile apps like 90% of programmers theory is irrelevant. Again, ask interview questions directly relevant to the position.
- underdeserver 6y ago> I downvoted you because this is terrible reasoning. Well, that's just like, your opinion, man. > If you don't use knowledge on a regular basis you have no reason to remember it, and won't. I don't expect you to remember it. I expect you to study and be ready for it in the interview. > Interviews shouldn't require studying. They should test the knowledge you're expected to use on the job. A significant part of a software engineer's job is studying. Take your job in the last 3 years. Could you have 100% predicted, 3 years ago, what knowledge you'd need? I sure couldn't. > I don't spend hours every week studying comp sci in the off chance I might need it at work. You don't need to do it every week, only before you interview. > If I need to do something I don't remember or never learned I look it up. Looking it up is definitely important but I'm talking about the basics. If you don't understand the basics and the way of thinking about algorithmic tradeoffs, you won't learn it in 10 seconds from a Stack Overflow answer. > Theory matters if you're deeply involved in complex comp sci problems. If you're building simple web and mobile apps like 90% of programmers theory is irrelevant. I disagree that 90% of programmers do that, or we disagree on what "simple" means. I can guarantee you less than 10% of programmers in FAANGs just build no-logic CRUD mobile/web apps. > Again, ask interview questions directly relevant to the position. Theory is directly relevant to the position. I use it every day.