Live data from Hacker News

Caltech's CS interview prep course

courses.cms.caltech.edu

251–260 of 336 posts

Re: Caltech's CS interview prep course

#251

Earlier quoted context omitted.

That’s a fair point but the kind of interview this course is preparing you for is a CS test, not a practical software engineering test.

Yes but the interviews are primarily used to screen candidates for SWE roles

To the extent that companies test CS fundamentals to screen SWE roles, however, we can reasonably argue the implementation of the CS fundamentals test.

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.

Re: Caltech's CS interview prep course

#252

Earlier quoted context omitted.

Perhaps not everyone has to grind it so much. (I would wager they're the same people who do regularly find themselves thinking about computational and space complexity, and about using different datastructures and algorithms for problems, vs the ones who never see reason to!) A take home test requires spending free time for everyone. A whiteboard interview requires variable amounts of free time. I would wager that, o…

I’ve passed almost every interview loop I’ve had without ever studying leetcode. I have a (maybe uncharitable) suspicion that people who find they need to study are spending all their time at work gluing software together without actually writing any from scratch.

Knowing the data structures and algorithms is different from actually passing these interviews. Interviews are designed in a way that you are going to have to commit a lot of stuff to memory that you would have just looked up if you were just coding up a problem.

A common example brought up here on HN is binary search. It is usually simple to figure out that a problem requires Binary search and even which variant. But the differences between the variant are really small and you can very easily make a mistake when implementing it.

I have passed enough of these interviews myself and used to think similarly (all you need to do is learn the fundamentals and the rest will follow) but my hit rate went up substantially when I realized that I had to do the same problem again and again and it almost became part of my muscle memory. Looking at a new problem, analyzing it and then coming up with a novel solution takes a lot of time, and there are several mistakes you can make on the way. The interviewing culture today is to reject "false positives" so anything apart from a perfectly coded response results in a mixed/negative response.

This whole leetcode thing is a farce and has to end. Let's be honest, the Google guys used it because they wanted "like-minded people". In short, they discriminated based on their own criteria and successfully brushed it off as a "fair and unbiased" way of selecting people.

Re: Caltech's CS interview prep course

#253

Earlier quoted context omitted.

They are a memory test not an intelligence test. If you truly wanted to measure intelligence it would have to be based on a priori knowledge and not on the ability to memorize algorithms and their implementation.

The notion that somebody could simply "memorize algorithms" and then apply that information on-the-fly to questions they won't know in advance -- demonstrating adaptiveness, creativity, and the application of general problem-solving knowledge to novel problems -- and that this doesn't measure intelligence is not credible. I'd bet my net worth that the ability to perform well on these interviews positively correlates…

Algorithm design is a skill you can learn. It probably correlates with IQ, but you have to control for experience to see it. Experience is certainly more important than intelligence.

In my experience, algorithm design is primarily pattern matching. You have a toolkit with a set of abstractions for modeling the problem and a set of algorithmic techniques for solving it. If you have the right tools in the toolkit, potential solutions will jump out. You then pick a promising solution and figure out the details. If you don't have the right tools, you have to go back to reading or start building new tools from basic principles. That can take hours, days, weeks, months, or years, if you succeed at all.

I guess this is similar to proving mathematical theorems, but I haven't done much of that after grad school.

Re: Caltech's CS interview prep course

#257
post #239
post #209

Earlier quoted context omitted.

I interview senior SWEs at a big tech company (I've done in the order of a few hundred interviews, which were a mix of coding and system design sessions). I'm always open to hearing about ideas to improve my interviewing, but I find that threads like this are repetitive and not really actionable. One common misconception I keep seeing is the idea that the interview result revolves around solving the question. IMHO, t…

"One common misconception I keep seeing is the idea that the interview result revolves around solving the question." Candidates know this. The issue is: Interviewers who do their job, and build a broad based picture of a developer's skills and give fair ratings, are rare. The perception is 75% interviewers don't even bother. They're tired, they're unmotivated. Their annual bonus doesn't reflect "conducts fair and bal…

Yeah, this is admittedly a problem. I don't have a great solution other than relentless education, which is... hard. Especially at scale.

From a cultural side, some companies have a competency pillar that is supposed to embody the idea of being a "good person". In mine, we call it "Citizenship", it's tied to performance appraisal and interviewing is one way to develop that competency.

As for code cleanliness, I've passed candidates with messy or even broken code before, if the candidate demonstrated competence in enough other aspects and the code quality issues can be attributed to nervousness or running out of time half way through a refactor or whatever.

Re: Caltech's CS interview prep course

#258

So wait you are smart enough to get into caltech, smart enough to graduate with a degree in CS. And yet the curriculum on its own does not do a good job enough on its own to prepare you for getting a job? Very hard to graduate with a decent GPA in CS at caltech and not be able to thrive as an entry level engineer. If you got B’s in caltech CS I’d make you an offer for 200k+ without blinking or even asking you anythin…

> And yet the curriculum on its own does not do a good job enough on its own to prepare you for getting a job?

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).

Re: Caltech's CS interview prep course

#259
post #223

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,…

> The math that engineers need is baked into their high level software. Well, someone, has to write that software. When people used to say, "I'm never going to need to know this", my teacher would reply "You're right you won't, but the smart kids will"

Indeed, but I think we could revise the curriculum without causing a shortage of "math people" relative to existing needs. What school math teaches right now is a lot of expression manipulation, and it's all done by hand. That's not how people do math after school, even mathematicians. And it creates a distorted view of math, since it's limited to problems that have closed solutions using relatively straightforward algorithms.

I'd like to see school math place roughly equal emphasis on:

1. Arithmetic, i.e., expression manipulation 2. Computation, both numeric and symbolic 3. Learning from data 4. Theory, i.e., things like sets and proofs

Items 2 and 3 are things that people can use throughout their lives, even outside of STEM careers, and could be blended with the science curriculum. Items 1 and 4 would serve the needs of "math people" and academic mathematics.

Re: Caltech's CS interview prep course

#260
post #244

Idea: Professional CS interviewers! I'm a good programmer, but not a good interviewer. That makes me pretty typical. I could spend a lot of time getting better at it, but I would only marginally improve, and it would take time out of the work I'm actually good at. This feels like a typical problem for division of labor to solve. Maybe it's already done in done form?

Not sure what you mean. If your idea is some kind of technical interview training, a million services for that already exist.

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.

Post reply on HN