Live data from Hacker News

Caltech's CS interview prep course

courses.cms.caltech.edu

301–310 of 336 posts

Re: Caltech's CS interview prep course

#301

Earlier quoted context omitted.

> You honestly do not have to do this to pass the LC interview. I didn't. You were able to prep for 2-4 hours and still pass LC interviews? I find this hard to believe given that I, and peers I know, took much longer to prep.

Having just passed Google's algorithmic interviews, and established a leetcode account specifically to prepare for that, I have a good record of how much leetcode I did: 3 easy problems, 4 medium problems, and 3 hard problems. It would make sense to count 2 additional hard problems that I worked on (with pencil and paper) but didn't submit a working solution for. This is more than four hours of work, but it's much le…

> (For example, my recruiter strongly believed that candidates needed a minimum of 5 weeks to prepare for an interview.)

Your recruiter believes this for a reason and they have probably seen many candidates go through the process.

Not saying you're a liar, but if you got into G with that little prep, I have some follow up questions:

* Where did you level when you got your offer? L3 vs L4 vs L5 makes a big difference.

* How many LC questions were you given per round? I would expect 2 is the norm.

* Did you have optimal solutions or were you nudged to a solution by the interviewer?

* Did you pass any other FAANG / leetcode interviews?

* What's you educational background? Do you have computer science / STEM degree from MIT or similar?

* Did you crush the system design interview?

* How do you feel behavioral interviews went?

Re: Caltech's CS interview prep course

#302
post #235

Earlier quoted context omitted.

I know you think you’re making a “cynical but rational” kind of argument here, but man, this comment is a huge fucking bummer. You’re acknowledging that you have the both the ability and the knowledge to change (your small part of) a shitty system, and instead you’re pulling up the ladder behind you. That sucks. You should not let yourself feel good about that, even if it’s “economically rational” or whatever. You’re…

What do you suggest instead?

I don't hate leetcode, but I'd really rather do interviews in one of these ways

1. Rely on referrals from people I trust. If somebody I've worked closely with and respect highly says that Person X is awesome, then just hire Person X. This obviously has massive problems with creating an insular culture and only works for people with a sufficient professional network, but it is incredibly high signal.

2. Have a long conversation with the candidate. Discuss their prior experience and war stories. This can be gamed, but I suspect is harder to game than leetcode.

Both of these options have a big problem as they scale, which is that interviews do not transfer. You need the hiring manager to do this interviewing. Making every hiring manager at a 100,000 person company do their own sourcing and interviewing is going to be a mess. Megacorps want to allow anybody to interview and then once somebody passes those interviews, they'd be able to join any team. I have mixed feelings about this approach.

So the best option IMO is two 2-3 hour pairing sessions. Refactor some code, develop a feature, and diagnose a bug. Have the person comment on the architecture of the code or system they used and describe large scale changes they'd make to improve it or prevent it from arriving at this state.

This requires more pre-work since you need to create an entirely working fake system and environment. And since there is a huge incentive to practice for these things, people would definitely sell knowledge about the fake system. It is also higher variance when there are new interviewers, since they represent a larger portion of the total interview panel.

Re: Caltech's CS interview prep course

#303
post #293
post #249

Earlier quoted context omitted.

I had an interview a few weeks ago that ended in an offer and was basically a verbatim Spiral Matrix problem from LeetCode (they had changed the starting direction of the spiral but that's it). Didn't run it once because we ran out of time, and when I pasted it into LC after the interview, noticed several errors to the point where it's honestly probably better we didn't run it. The interviewer was super engaged the w…

That sounds even worse in terms of setting realistic expectations for what the job will involve day-to-day. How many times is someone actually going to redesign a system like that?

Respectfully disagree. Teaching and explaining the current system to new and lower-level folks is arguably one of the most important skills for a senior developer. As for the system, they're not redesigning anything, they're teaching something that (as a senior) they should already know, as if we're juniors. Think typical box-arrow system architecture diagram, DB schema, that sort of thing.

Re: Caltech's CS interview prep course

#304

Earlier quoted context omitted.

I totally agree with you. Some of the content there seems relevant to CS in general, but I hate the fact that you need to study content that you won't use on the job in order to pass an interview. It doesn't make sense to me. I've seen new grads perform as well as senior engineers with these Leetcode-style questions so I've stopped using them to assess engineers. Further, I know we're specifically trying to assess te…

do you have a demo video or something for this?

Not yet - I'm going to add one to the homepage this week and also support a free trial.

Re: Caltech's CS interview prep course

#305
post #130

Earlier quoted context omitted.

I really think you nailed it, will have to borrow this point in the future. A lot of it is about gauging the candidates aptitude, and of course their willingness to put in the work. It's like those kids in math class that say, "I'm never going to use this in real life."

Those kids are right. School math is mainly an attrition machine. Most students, including in STEM fields, look forward to forgetting all of their school math on graduation day. The math that engineers need is baked into their high level software. Most engineering teams have a "math person" who handles any higher math related problems that crop up. I'm one of those people at my workplace. I was a college math major,…

Who writes the software that has the math baked into it ?

Re: Caltech's CS interview prep course

#306

I think the thing going on with interviews is that (most) of software engineering is actually pretty easy. Anyone can do the job outside of an interview session with the right experience. Note how I stressed the word (most). The interviews mostly serve to keep salaries high.

What you mean is basic web development is easy, software engineering is a much broader field than web development and there's lots of hard problems there. Even basic web development can get really complex with scale , I think the issue is people conflate being able to write a few lines of code with being a Good programmer. It's like saying writings easy because everyone knows how to write

Re: Caltech's CS interview prep course

#307
post #272

Earlier quoted context omitted.

I mean professional technical interviewers that companies hire to interview candidates for them. I know it's an unusual idea, but i didn't think it would cause such confusion.

This already happens to some extent with online screening software and such. Ultimately though no team is going to trust a fully third party assessment of a candidate that they'll have to work with day to day.

Yeah, I would still interview the candidate for "do you want to work with this person" factors.

Re: Caltech's CS interview prep course

#308

Earlier quoted context omitted.

Those kids are right. School math is mainly an attrition machine. Most students, including in STEM fields, look forward to forgetting all of their school math on graduation day. The math that engineers need is baked into their high level software. Most engineering teams have a "math person" who handles any higher math related problems that crop up. I'm one of those people at my workplace. I was a college math major,…

This is a chicken and egg problem that I believe exists in Computer Engineering/developer positions because of i) the extremely diverse background of hires (some of them not being engineers or mathematicians or physicists per se i.e. could be coming in with a bio background (ML usually), no degree at all (perhaps a bootcamp -- usually front end work), or other) ii) a lot of businesses do low hanging fruit work with l…

I don't believe it is a chicken and egg problem. I believe there aren't that much of a demand in the industry for solving "Math" problems.

From an (software even!) engineering perspective, nobody needs to solve the same Math problem twice. All "Math problems" are either solved or are open problems (this is almost by definition). The ones which are already solved do not require re-solving again, which means that in the vast majority of cases a competent (software) engineer only needs to learn how to apply them. I don't know about traditional engineering, but in software, often it's just a matter of importing a library and calling an API. The software development ecosystem has developed to a point where you don't need to know how to implement things, you just need to know what you need. Unless you're an expert specialist in a particular field, you often can't do better than that, because whatever idea you have, most likely somebody more competent than you has already written an open source library for that.

I don't think it's useful to contrast general incompetence with a lack of mathematical ability -- though it sometimes correlate somewhat if only because general intelligence often manifests in mathematical ability. There are simply too many unproven assumptions from "math education" => "writing better software". If anything, good software engineers need to be ready to learn, and learning maths outside of formal schooling is just one of the many things they need to do. The general lack of quality in software is a supply and demand problem -- as long as FAANG can afford to pay 200k+ USD to fresh grads with no experience, companies with a smaller budget must make a trade off between lowering quality and not delivering at all.

Ironically(?) the market is actually responding. People doing interview prep are learning the minimum subset of mathematics and engineering required for a high paying software job. Then you get people complain about grinding leetcode. Imagine what happens if FAANG companies add abstract set theory to their standard interview questions! (I'm willing to bet this would lower software quality...)

Re: Caltech's CS interview prep course

#309
post #176

Earlier quoted context omitted.

Computer Science is not Software Engineering. A PhD does not translate to real world engineering skills. If you just go through a bachelors CS curriculum, designed to give a survey of all topics in academic computer science, that wouldn't make you a competent engineer. This is especially true now that through the internet, just about anyone with a laptop can get as good as they want at software engineering without ev…

> If you just go through a bachelors CS curriculum, designed to give a survey of all topics in academic computer science, that wouldn't make you a competent engineer. True, but it's probably not a worse predictor than most interviews.

It's not the interview that counts but the interviewer (or, in some degenerate cases, the "hiring committee").

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.

Re: Caltech's CS interview prep course

#310
post #3

If you don't think modern interviewing practices are a problem, this should be proof enough. Not only do we have an entire programming book sub-genre dedicated to this nonsense, but now we're also wasting class time on memorizing sorting algorithms. Fantastic. Of course, we're going to see the inevitable arguments that "40% of the people I interview lie on resumes" or "I interviewed this guy once, and he couldn't eve…

No matter what criteria you used in interviews, these people would still be practicing it, because, other than people whose parents donated buildings, that's the type of people who get into elite universities.

It doesn't tell you anything about the interviews, just about the achievement-driven personalities that the universities select for in their admissions process.

Post reply on HN