News for hackers. Stuff that matters.
Re:Caltech's CS interview prep course by dionidium on Sunday February 27, 2022 @05:41PM (#30493507)
The reason this complaint never changes anything, despite being very popular, is that these interviews serve two purposes that it doesn’t address: 1) they’re an intelligence test; 2) they’re a perseverance/conscientiousness test.

Will you take the time and put in the work to pass one of these interviews? That measures perseverance and conscientiousness. Having put in the time, can you recall and adapt what you learned to perform complex tasks on a whiteboard in a stressful environment? That’s an intelligence test.

In combination, these criteria measure the famed, “smart and gets thing done” in a way that more practical lines of questioning might not. Or at least that’s the theory.

For the record, I’ve only interviewed at one FAANG company, got to the on-site interviews, did not get an offer (in case you think I’m secretly patting myself on the back here).

Re:Caltech's CS interview prep course by webmaven on Sunday February 27, 2022 @06:10PM (#30493805)
> The reason this complaint never changes anything, despite being very popular, is that these interviews serve two purposes that it doesn’t address: 1) they’re an intelligence test; 2) they’re a perseverance/conscientiousness test.

No argument on perseverance, but I don't think it measures conscientiousness. At least, not how I understand the term, which has connotations of intrinsic motivation rather than extrinsic.

Now, if measuring how a person responds to extrinsic motivation is your goal, then this type of interview does just fine. It measures a person's ability to delay gratification for a later reward (because you can have perseverance without that, which you can also call being stubborn or determination, eg. "I'm going to figure this out even if it kills me" ).

Re:Caltech's CS interview prep course by Ancalagon on Sunday February 27, 2022 @07:04PM (#30494304)
I agree, I don't think it measures conscientiousness well either. There's not a lot of room for careful thinking and trial-and-error in a timed, 45 minute, observed, pass/fail interview.
Re:Caltech's CS interview prep course by knightofmars on Sunday February 27, 2022 @07:58PM (#30494776)
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.
Re:Caltech's CS interview prep course by dionidium on Sunday February 27, 2022 @08:37PM (#30495146)
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 with IQ.

Re:Caltech's CS interview prep course by exdsq on Sunday February 27, 2022 @10:10PM (#30495915)
I don't think it is as you describe it though, the leetcode questions in interviews are usually just slightly rehashed. What would be interesting is giving someone a puzzle they hadn't seen before. My wife can't remember formulas or algorithms for anything - she defends that by saying she can just look it up if she needs it. Saying that, we did Advent of Code last December and she came up with quite a few optimal solutions by first principle (albeit slowly). She'd suck getting through a leetcode interview. I'm quite lucky in that I remember these things really really easily but really struggle with truly novel problems. I just reach for my toolbox. I don't believe these interviews correlate with genuine intelligence, just a particular type of memory and question recognition.
Re:Caltech's CS interview prep course by erosenbe0 on Monday February 28, 2022 @12:34AM (#30496765)
There is a bit of reasoning backwards from conclusions here.

For example, you will likely find the applicants rejected numerous times from FAANG have higher age-adjusted bodyfat levels and more dental cavities compared to successful candidates. And of course these measures negatively correlate with IQ too.

So what? Correlation doesn't necessarily make for reasonable selection criteria. Variance is too high.

Re:Caltech's CS interview prep course by jltsiren on Sunday February 27, 2022 @10:52PM (#30496211)
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 by lmm on Monday February 28, 2022 @03:08AM (#30497530)
> 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.

But you're claiming this is somehow not "intelligence"?

Re:Caltech's CS interview prep course by jltsiren on Monday February 28, 2022 @05:37PM (#30506136)
Intelligence is usually understood as a relatively fixed factor that cannot be trained effectively. Algorithm design is mostly about the patterns you already know.
Re:Caltech's CS interview prep course by lmm on Tuesday March 01, 2022 @09:11PM (#30522840)
IME how many patterns you were able to rote-memorize is a very small factor in how good you are at algorithm design; the limiting factor is more likely to be your ability to filter out irrelevant details and abstract out the essence of the problem and see how that relates your library of patterns, and that part is mostly innate rather than trainable.
Re:Caltech's CS interview prep course by vanusa on Sunday February 27, 2022 @09:38PM (#30495675)
and then apply that information on-the-fly to questions they won't know in advance

But that's the whole point of LC grinding: to claw your way through enough of these problems until, lo and behold... there ends up being an 80 percent chance that any given "medium" problem thrown at you -- is one that you have in fact seen and worked on, already.

I'm just guessing at the 80 percent figure. But it seems pretty clear from the cult of LC grinding that one of the goals of this strategy is not just to learn general techniques for solving these problems -- but to get a significantly high percentage of these problems under your belt already, or nearly so.

While also learning to deploy the just the right grunts and moans and pauses to make your interviewer think you're seeing the problem for the first time, of course.

Re:Caltech's CS interview prep course by whimsicalism on Sunday February 27, 2022 @07:59PM (#30494795)
I feel like people who only memorize would not be able to pass contemporary test at most of these big companies.
Re:Caltech's CS interview prep course by knightofmars on Sunday February 27, 2022 @08:22PM (#30494998)
I feel like you don't know that you're talking about. That's not meant to be an insult but to highlight the fact that "feeling" doesn't matter. Because my feelings about your statement has no bearing on the accuracy or content of your statement.
Re:Caltech's CS interview prep course by dionidium on Sunday February 27, 2022 @08:45PM (#30495230)
"I feel like" in this context is a synonym for "it is my belief that," so your response is a non sequitur based on a misunderstanding of a colloquialism.
Re:Caltech's CS interview prep course by erosenbe0 on Sunday February 27, 2022 @11:54PM (#30496560)
If you aren't interviewing with the team or hiring manager with the opening and just getting assessed by random SWE in a giant company that seems like it is subject to a lot of variance.

Why don't they just conduct a proctored test? Doesn't make any sense.

Re:Caltech's CS interview prep course by syspec on Sunday February 27, 2022 @05:50PM (#30493602)
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."

Re:Caltech's CS interview prep course by analog31 on Sunday February 27, 2022 @06:45PM (#30494119)
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, but believe that the math curriculum is ripe for reform.

Re:Caltech's CS interview prep course by eftychis on Sunday February 27, 2022 @08:02PM (#30494819)
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 little novelty, iii) a lot of cost can be thrown to "buy more hardware/server time," iv) low quality is not just advised but sought for.

Because of the usual lack of rigorousness -- e.g. most companies will not require you to prove that the system is going to be up for 99.9999% of the time, the load balancing is optimal, the abstract queue in our system is not going to diverge (when it does inevitably we will just reboot and keep doing it until we get more funding) -- the expectation and targets is also to avoid it.

Most developer positions are doing essentially the equivalent of designing over and over the equivalent in civil engineering terms of one or two story buildings.

There are positions that will exercise one's engineering skills (including math). However, the culture and expectation of "math person" does not promote them. Graphics, cryptography, distributed/byzantine systems (I don't mean using AWS here), optimization, ML (new algorithms/improvements), maps, are some areas that one's cs/math/engineering skills can be used at.

But note that when any X of those areas become trendy there is the gut reaction of an "intro to X for programmers" coming out that is a couple of hand-wavy sketches, some sketchy intuition -- most often wrong in the details -- and an API guide.

Having done my undergraduate in Europe, every year was math heavy -- math was the core not the attrition machine. And I do see this mentality in the U.S. startup industry where a lot of times the Edison approach is taken of trying every single filament width choice on a mock-up instead of doing a quick calculation.

Having taught math to undegrads in the U.S. and from discussions with people that TA'd, I would agree with you that the math curriculum needs to be revised from the ground up as being extremely inadequate. On the other hand, most software "engineer" positions, do not require any engineering to be done.

Re:Caltech's CS interview prep course by hnfong on Monday February 28, 2022 @11:56AM (#30502049)
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 by syspec on Sunday February 27, 2022 @09:07PM (#30495417)
> 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"

Re:Caltech's CS interview prep course by analog31 on Sunday February 27, 2022 @11:05PM (#30496295)
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 by sodality2 on Sunday February 27, 2022 @09:31PM (#30495622)
Can't that be taught in the higher-education, like most skills that are only required in a certain area? It's not just "the smart kids will", but "the kids who go into the mathematics field".
Re:Caltech's CS interview prep course by Siira on Sunday February 27, 2022 @08:20PM (#30494978)
> math that engineers need is baked into their high level software.

This is only true if you’re working in a mature business with stable usage patterns. Even then, using lower level APIs can be easier and more flexible.

Re:Caltech's CS interview prep course by wittycardio on Monday February 28, 2022 @09:49AM (#30500382)
Who writes the software that has the math baked into it ?
Re:Caltech's CS interview prep course by bogwog on Sunday February 27, 2022 @09:08PM (#30495422)
Reading comments like this makes me think that the real problem is that recruiters have never worked in engineering so have no idea what the job is actually like.
Re:Caltech's CS interview prep course by dionidium on Sunday February 27, 2022 @09:12PM (#30495454)
Recruiters have nothing to do with the structure or format of the interview, so I'm not sure I follow.
Re:Caltech's CS interview prep course by vanusa on Sunday February 27, 2022 @10:04PM (#30495866)
If we define willingness to cram, cram, cram as "conscientiousness" - then sure.

The idea that this is a meaningful proxy for "ability to get things done" -- about that I'm not so sure.