Re:Caltech's CS interview prep course
by yodsanklai on Sunday February 27, 2022 @08:25PM
(#30495025)
> Mostly you’d want to learn your algorithms well in college and continue to exercise them in your work. The rest of the interview is a lot about how you present yourself, which is mostly along the lines of “work out the problems out loud and ask questions”.
Not my experience. When I interviewed at Google for a senior position, I mostly had difficult questions with little interaction with the interviewer.
Before my preparation, I could solve all the questions within let say a couple of hours and I knew very well all the algorithms. But that's not what's expected to pass. You're competing with people who have been working very hard on this style of interviews and you need to be among the best.
You're expected to find the answer to a couple of questions within a 40 min. That includes finding the solution, writing the code (not pseudo-code), testing your solution and discuss complexity.
Thinking 15min + sketching some pseudo code is not enough, or maybe for a particularly hard problem.
I can understand not being used to writing pure algorithms for an interview, so I guess that is something you can certainly spend a bit of time working on improving. But I’m a bit curious about being able to solve a question in “a couple of hours”. In my experience most of the interview questions I’ve seen are of the “I know how to do this and I can implement it, maybe needing a little bit at the end for some edge cases” or “I have no idea how to do this, I’m just going to brute force to have something and then spin my wheels for the remainder of the time”. I can see the time being useful for competitive programming, where you often need to put things together in nontrivial ways, but I find that most interview questions are fairly straightforward once you know what the algorithm or data structure is. Unless you’re rederiving it in the fly, which I have done sometimes, but it’s still not something that I would spend a couple hours on.
It’s definitely possible. Mostly you’d want to learn your algorithms well in college and continue to exercise them in your work. The rest of the interview is a lot about how you present yourself, which is mostly along the lines of “work out the problems out loud and ask questions”.
Also, FWIW, I’ve had a decent amount of opportunities for creativity on Leetcode-style questions. When permitted I often pick the language that I feel would make the solution simpler or easier to understand. When doing things like linked list or graph traversal you’re often asked to define the datastructure you’ll be using, which is a good chance to use different types of polymorphism or algebraic datatypes that can make your task easier. Even if you’re just churning out for loops, a lot of them can be replaced with functional methods or selective application of interesting utilities such as array rotation.