If I had the choice between a Caltech grad who had all A's and no experience or a student from some random state school who had interned every summer and contributed to open source, I'd pick the latter. Many people are locked out from ever attending elite schools in the first place despite competence due to coming from poor backgrounds and underfunded highschool districts.
I really wish someone had explained this to me while I was in college.. I had ONE professor who'd actually worked in the real world who explained it, but all the other professors were lifetime academics who just parroted the same idiotic stuff about how important it is to get good grades.
Getting my first engineering job after I graduated was a nightmare.. I ended up having to go with a crappy internship that barely paid enough for me to live in a bedroom in a shared house, with a terrible boss who constantly threatened me and stressed me out. And that's with a 3.8 GPA.. When I told prospective employers that, they were like "What is that? Out of 4? 5? Is that good?"
A friend of mine in the HFT world told me “I know how hard some of your courses were. But you can’t highlight them on your cv because no one will believe you that they were that hard. And even if they did, they wouldn’t believe that those skills are transferable.”
Going to yet another job interview, I spoke to my interviewer who had a similar CS specalization but from another uni. He told me “my master was of baaad quality.” I responded with: “mine wasn’t, and my classmates all feel the same because we’ve learned practical skills and our teachers prided themselves in giving difficult yet practical courses.” He looked at me with disbelief.
Back in undergrad, I was talking to a hiring manager who was an alumni from my school that said if he will hire anyone no questions asked if he sees anyone with X course on their transcript/resume (listing the project from the course)
OP is not comparing a caltech grad to someone who contributed to open source. OP is comparing caltech grads to someone who studied algorithm interviews.
I agree. Degrees and accreditation are sort of gateway policies to conduct deliberate filtering and maintain a class based social hierarchy. There is some merit as it does take a brutal level of hard work and intelligence to get into caltech.
However, algorithms are the exact same type of filter, both are pretty much divorced from any relationship to the job at hand.
True, but it's probably not a worse predictor than most interviews.
A good interviewer can assess a candidate's competence even with crappy questions / question bank. A bad interviewer will often make wrong hiring decisions even if they asked good questions.
It seems to me that four years worth of coursework and exams provide a better assessment than a couple hours of on the spot performance.
Is there more to you than your high school performance? Push back against this if so!
(Calling the interview Leetcode is misleading IME, since I've rarely been asked something that would be near the upper tiers of that site's difficulty).
Top-tier tech companies face a LOT more competitive pressure than top-tier universities; why should I trust the university selection process more than those corporate hiring ones?
Ask yourself why the rest of the industry isn't happy to simply hire every B student from CalTech/Stanford/MIT/Ivies without an interview?
I don't know the US education system enough, but there are some schools out there which are much more selective than any SWE interview process. You can be guaranteed that the worst student from these top schools could nail any algorithm interview with minimal preparation.
But these big companies hire many more people than these few schools can provide, and they do so globally, from countries that may not have such elite schools.
But that's not all that's going on here! CalTech is pretty selective as far as US schools go (6% acceptance rate). Slightly more than MIT, slightly less than Stanford. SAT score stats all in the same 1500+ range.
But they're offering this course, and that makes me think that no, the worst student from these schools in the US, at least cannot nail any algorithm interview with minimal prep!
And that makes sense, from a US perspective! Getting into CalTech or Stanford or MIT is about doing well at high school/early-college level material in high school, and about extracurricular activities, with a dash of being able to afford it and being told it's something you should try for. Most of that high school curriculum - even most college-level CS material - isn't super applicable to a software engineering job. It's heavier on memorization (we have google for that!) and it's heavier on theory than on creative application of things.
I might argue that any test or course where the answers to the exams come straight out of the textbook isn't worth as much as it used to be, since we've got Google and SO and all the books too!
That's a big part of why a lot of these whiteboard interviews aren't simply "write out Dijkstra's algorithm" (boring, textbook!) but are about seeing if you can figure out how to use apply CS in a situation where the way the problem maps to the algorithm isn't immediately obvious.
Creative work has a long history of not aligning well with traditional US university admissions criteria and evaluations.
I think it's impossible to nail these interviews without minimal prep. It's very specific, and every candidates are well-prepared, many of them have done 500+ leetcode questions before interviewing.
Regarding the US universities, I'm not sure but I wonder if some students can somehow compensate a lack of academic mathematics excellence with extracurricular activities, or being rich or from a minority. Maybe companies want to filter those out?
As for creativity, leetcode interview questions is all about preparation. There's little creativity.
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.
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.
My take on this is that the problem is misaligned expectations. I failed Google's algorithmic interview round twice under the assumption that when the interviewer asked me a question, the point was to see if I could come up with the answer.
But that isn't true. The interview questions are chosen with the expectation that candidates cannot come up with the answer themselves. Instead, the point is for the candidate to cold-read the answer from the interviewer.
When a test -- or a computer -- asks you how to do something, it won't care or even realize that you spent ten minutes thinking about the problem before starting to write a solution down. But an interviewer will fail you for doing that.
That insight was enough to pass the interview round. And it also suggests that a course in "how to pass an interview" should boost CalTech grads' passing rates to nearly 100%, because all they need is to be informed of the "proper" technique.
There’s a whole lot of spread at any college. Assuming a hypothetical ranking from 1-100 with 1 being unable to program or problem solve and 100 being your Jeff Dean/Fabrice Bellard/Linus Torvalds programming god of choice an average state school might give you people from 30-70 and a top school might be 40-80. Lots of smart people go to state schools and lots of idiots come out of top ones.
Considering that CalTech offers this course, they must be realllyyyy misguided, or you’re talking about schools that are far more selective than CalTech (7% acceptance rate).
I went to Caltech and would definitely not do this. The CS faculty was fantastic, but the undergraduate option has some problems:
- a wildly disproportionate share of cheating cases came from CS undergrads
- CS graduation requirements are very flexible, which is a mixed blessing. On the one hand, giving students more freedom is broadly a good thing, and many of them use that freedom to double major or go deep into specialized grad level work. On the other hand, some of them use it to construct schedules much easier than most other options would allow. Not all of them, but enough that "B's in caltech CS" is not as strong a signal as you might think.
Some signals I would consider stronger for Caltech students:
- CS/Math double majors. Or CS/[Any technical subject], for that matter.
- Summer research: someone paying five figures of opportunity cost to do something they think is interesting is probably not a $/effort optimizer.
- Grad-level CS coursework. CS 139 (Design and Analysis of Algorithms) in particular pulls no punches.
Why? This is not necessarily a good signal for competence on the job and also doesn't cover people who have lied or cheated.
Also, this wouldn't help create a less broken job market. You'd just be breaking it in a different way.
This was my first thought too. A course just for passing interviews seems odd. We had two small activities that were part of a business course (business administration minor), but after hours. One was a mock interview to give you feedback about professional appearance, not fidgeting, etc. The second was a mock business dinner to provide feedback about etiquette, customs, etc. These were valuable, but they focused on soft skills that aren't covered in the regular course content.
thanks, it means a lot you trust my ability so much :)
>All have PhDs and yet they’re all facing delays when landing a job. There is something definitely broken.
Everyone agrees it's the leetcode interview format. I agree to some extent, but I wouldn't throw it out completely. For me, I give four problems, and the candidate must solve two of the four with full internet access in an hour. It seriously reduces interview day variation for good candidates. If they can't do graphs but can do text formatting, they get a pass. I'm sure there's still some better way of doing this.
Welcome to "Education". We don't teach you life skills, but we will teach you stuff that you'll immediately forget and look up online the one time you need it in life (if at all).
I have a small friend circle, I would say they’re all smarter than I am on raw problem solving and intellect capability. They came out with better degrees from better institutions. All have PhDs and yet they’re all facing delays when landing a job. There is something definitely broken. I think the industry has created this problem and the industry should fix it.