News for hackers. Stuff that matters.
Re:A framework for grading your performance on programming i... by helen___keller on Tuesday October 19, 2021 @09:17AM (#28917735)
I do find it a little ironic that as an industry we started doing these interviews as a "least common denominator" - from senior engineers to fresh college grads, everyone occasionally needs to do a search or a sort or a lookup table, and people should recognize when "loop in a loop" n^2 solutions aren't ideal.

And we tuned it from there to into its own sort of mini-SAT with an accompanying preparatory industry and culture.

I find it as a reminder of my fungibility as an engineer: I get paid absurd sums because of supply and demand, not because of my skills; anybody who can game the leetcode exam (and the architectural diagram quiz and the personality quiz) can walk in and take the same 300k income I have. If enough people do so, wages could be pushed down by employers.

Thankfully for my mortgage, that hasn't happened yet and probably won't happen soon.

Re:A framework for grading your performance on programming i... by azemetre on Tuesday October 19, 2021 @09:29AM (#28917856)
I'm honestly completely fine with this, and my worry is that the industry wants to move towards a more "accredited" role with organizations similar to doctors, lawyers, or other professionals to keep others out.

Why am I worried? Because if you're a competent programmer you can spend 3-months to a year studying for these interviews and make $200k+ in TC. You don't need a degree or even much work experience to achieve this.

You don't have to come from an ivy league school or have powerful connections, you simply need to understand a few common leetcode patterns and system design.

If you can understand for loops, variable reassignment, objects & arrays, and some other unique operators like modulo or booleans you can likely answer 70% of LC type questions. That's an extremely low bar, and all it takes is dedicated practice.

Even if you don't want to leetcode, there are still plenty of well paying jobs that pay more than the average household income whose barrier to entry is even lower.

What other job or industry honestly has this option? I honestly feel like software develop is the truly last "middle class" industry (if salaries kept pace in other jobs for the last 40 years).

Re:A framework for grading your performance on programming i... by f00zz on Tuesday October 19, 2021 @10:30AM (#28918478)
> You don't need a degree

The low barrier to entry is one the greatest things about programming. I don't have a CS degree, but for a while I spent some time actively studying data structures and algorithms on my own (and solving hundreds of programming problems at "online judge"-type sites like SPOJ; it's fun!). I don't feel in any way "inferior" to people with a degree.

Re:A framework for grading your performance on programming i... by eulers_secret on Tuesday October 19, 2021 @11:57AM (#28919568)
> I don't feel in any way "inferior" to people with a degree.

I did the same thing, but I do feel inferior to degreed folks. Not skill-wise; I know people are all over the board with their skill level. It comes down to this statement: "I have two candidates who are equal in every way except candidate A never finished college. Candidate B gets hired!"

Going this route you have to be better than everyone else with a degree: If you're not, the person with the degree will win, every time. I did this with personal projects/passion/odd jobs, and now with a decade of work experience as an engineer.

Sometimes I want to finish my degree (I got an associates, so 1/2 way there!) but the ROI doesn't make sense with school being so expensive. My big fear is that I'll never get hired after this job because there are lots of qualified candidates who went to school, and I just don't stack up.

EDIT: It's also affected my willingness to change jobs, confidence in myself, and as a result my salary. I make $120K/yr in a high COLA. If you're reading this as a youngster: GO TO COLLEGE AND FINISH IT!

Re:A framework for grading your performance on programming i... by groby_b on Tuesday October 19, 2021 @12:34PM (#28920089)
I've sat in on probably a couple thousand hiring decisions by now. (It's not an achievement, it's a battle scar ;)

I've literally never seen a decision being made on the basis of having a degree. This might still happen in very small companies, but the industry as a whole doesn't care much about degrees when it comes to the hiring stage.

The thing the degree buys you is getting in front of the hiring people in the first place, if you don't have any work experience.

So, if you don't have any, yes: GO TO COLLEGE AND FINISH IT. (Don't worry too much if it's not Stanford, or Berkeley, or MIT, or whatnot - but get that degree. It's a shibboleth)

But if you've gotten past that point (like OP has) - you now have experience. That's incredibly valuable, especially right now. I'd suggest you interview. (The market is extremely generous right now). Don't sweat the degree or lack thereof.

Re:A framework for grading your performance on programming i... by Kranar on Tuesday October 19, 2021 @01:30PM (#28920873)
I have never interviewed two candidates who I wanted to hire who were remotely close to equal. To the extent that two or more candidates are equal, it's that they are equally bad. Among competent developers the amount of variability among candidates is absolutely enormous.
Re:A framework for grading your performance on programming i... by bigwavedave on Tuesday October 19, 2021 @12:26PM (#28919986)
> [snip] It comes down to this statement: "I have two candidates who are equal in every way except candidate A never finished college. Candidate B gets hired!"

> Going this route you have to be better than everyone else with a degree: If you're not, the person with the degree will win, every time.

> [snip] My big fear is that I'll never get hired after this job because there are lots of qualified candidates who went to school, and I just don't stack up.

Oh boy, this resonates so strongly with me. I even have actual proof that the opposite is true (when I asked about other candidates at my first "real" job while I was still in college, my boss said they hired me over people with a degree because of my github), I still felt this way!! In the end, I ended up finishing my degree not because it made me more intrinsically valuable or a 10x rockstar code god, but because of that exact fear you're talking about. I wish I was the kind of person who didn't have to do that.

Re:A framework for grading your performance on programming i... by Zababa on Tuesday October 19, 2021 @07:05PM (#28924844)
That's basically why I finished my degree. My dad had the same experience has you, and told me lots of times about it. I finished my degree out of respect for his experience, and knowing that I wouldn't want to live the same thing.
Re:A framework for grading your performance on programming i... by KptMarchewa on Wednesday October 20, 2021 @07:08AM (#28929276)
>I have two candidates who are equal in every way

This never, ever, ever, ever happens. It's a complete non-story.

Re:A framework for grading your performance on programming i... by spikej on Tuesday October 19, 2021 @01:25PM (#28920789)
This happens with graduate degrees also (not having one hindered a number of prospects)
Re:A framework for grading your performance on programming i... by matheusmoreira on Tuesday October 19, 2021 @10:07PM (#28926002)
> I don't feel in any way "inferior" to people with a degree.

While I don't feel inferior to them either, I think people with degrees have two major advantages.

1. They are pre-selected.

The ability and means to get into good schools and finish courses are powerful signals. It may or may not translate into competence but it certainly means something. People generally have positive perceptions.

2. They network.

Students are surrounded by like-minded peers, professors. Knowing these people personally can and often does make all the difference in the world. Sometimes people start companies together. Sometimes people recommend others they know personally and they get a job. Sometimes companies will recruit only from top schools.

Re:A framework for grading your performance on programming i... by guenthert on Tuesday October 19, 2021 @01:24PM (#28920783)
Uh, coding is just a small part of software development. That job interviews are exclusively focusing on that aspect is pretty frustrating (and somewhat concerning).

I got the impression that the lack of formal education (in CS) left me with a gap in background information which I only partly closed over the years.

Re:A framework for grading your performance on programming i... by ravenstine on Tuesday October 19, 2021 @01:24PM (#28920766)
While I agree, as someone who is effectively self-taught, it's really troubling to me what we get paid for the quality and quantity we produce collectively.

I bet a lot of folks here won't want to hear this, but we really are vastly overpaid for what we do.

Everywhere I've worked, and I mean everywhere, there's a lot of frankly bad practices that are bad for users and create bullshit work for everyone involved. Just because you've installed a bunch of linters, have 80%+ coverage, and use Code Climate does not mean that your code isn't fundamentally flawed and a liability.

I do think this stems largely from there being effectively no credentials required to be a software engineer. Whether or not your code is "good" mostly depends on your title, seniority, and social clout. If the software breaks, you just keep fixing it and you look like a hero because you're constantly opening and closing Jira tickets. Junior developers learn to code without bothering to consider the philosophy, history, and discipline of code.

It's all just to "get shit done", and there's consequences to this. Things are written to not be accessible, and if they are written poorly then it can be difficult to implement accessibility, thus many are cut out of participation. People's account data and credentials get exposed. Countless millions of $ are spent deciphering code written by people who believe their shit doesn't stink (the code documents itself bruh), and countless hours of lifetime are depleted. People are outright ripped off when companies release software, namely games, that are written atrociously.

Do we really need this many engineers to write GUIs around databases? I seriously question this. Should we really get paid this much for a job where we can be inefficient with almost no consequence?

I argue that we should have standardized accreditation.

How we would implement it, I don't really know. The obvious counterargument is how bass-ackwards many college computer science and programming courses are.

Re:A framework for grading your performance on programming i... by pydry on Tuesday October 19, 2021 @01:35PM (#28920948)
>I bet a lot of folks here won't want to hear this, but we really are vastly overpaid for what we do.

Yeah, coz this view is driven largely by the just world fallacy. Either that or the perplexing idea that quality of life is driven by iphone ownership and cheap clothes rather than availability of medical care, education and a roof over your head.

The fact that education, home ownership and medical care are still reasonably priced compared to our incomes but almost nobody else's while wealth inequality has taken off like a rocket suggests that it is most other professions that are underpaid - not us who are overpaid.

The fact that our incomes kept up with productivity while median incomes decoupled in 1981 suggests likewise.

I'm shopping for houses not quite as good as what my teacher parents were 40 years ago and I'm in the top 2% of incomes while they were a bit above average.

Re:A framework for grading your performance on programming i... by ravenstine on Tuesday October 19, 2021 @01:44PM (#28921078)
> Yeah, this view is horribly toxic.

Yeah, how dare I have a viewpoint. Goodness gracious.

> The fact that education, home ownership and medical care are reasonably priced compared to our incomes but nobody else's while wealth inequality has taken off like a rocket suggests that it is most other professions that are underpaid - not us who are overpaid.

Both can be true at the same time. In my personal opinion, if a lot of common practices seen in the software industry went away, the cushiness of our jobs would be glaringly obvious. Did you not see that my point is that I witness us creating busywork for ourselves? If it could be measured and validated that my experience matches reality, what would be the argument for being paid this much?

And yes, I know that different parts of the world pay engineers differently. I can only really comment on how engineers in much of the United States are paid.

If I can't call out work for being shoddy and excessive, then that kind of proves my point. Why should I get paid more than other jobs that require more skill despite if my work is garbage?

> The fact that education, home ownership and medical care are reasonably priced compared to our incomes

Come again? I wouldn't call any of those things reasonably priced even at my income.

Re:A framework for grading your performance on programming i... by pydry on Tuesday October 19, 2021 @01:56PM (#28921222)
>Come again? I wouldn't call any of those things reasonably priced even at my income.

To me that says underpaid.

Personally, I can afford them. I'd say that makes me middle class. Most of my friends cannot. They are assuredly not.

In the 1950s these things were available on a non-college degree wage.

Re:A framework for grading your performance on programming i... by ravenstine on Tuesday October 19, 2021 @02:03PM (#28921316)
Whether something is reasonably priced doesn't really have a 1-to-1 relationship with whether you can afford it.

I could certainly afford a home. Would it provide the same value that a home did to my ancestors? Probably not. It wouldn't be a good use of my wealth at this time.

> In the 1950s these things were available on a non-college degree wage.

Yet I am being underpaid? Sure, technically speaking, we are all underpaid if you compare things like workforce participation to wages and CPI. None of that really undermines my point that I don't think we should be paid as much as we are for the quality of work we are producing.

You don't have to like it or agree, but no, I refuse to believe that I'm a bad guy for concluding that there's a racket-like quality to the software industry. In politics there are clubs where political performance has little bearing on the distribution of wealth, so why would any other industry necessarily be different?

Re:A framework for grading your performance on programming i... by pydry on Tuesday October 19, 2021 @02:09PM (#28921391)
>Yet I am being underpaid? Sure, technically speaking, we are all underpaid if you compare things like workforce participation to wages and CPI. None of that really undermines my point that I don't think we should be paid as much as we are for the quality of work we are producing.

Except it does...?

Just saying it doesn't doesn't make it true.

>You don't have to like it or agree, but no, I refuse to believe that I'm a bad guy for concluding that there's a racket-like quality to the software industry.

Software engineering isn't a racket.

The reason we're paid middle class wages (unlike, say, teachers) is because:

A) capital controls the stocks and flows of most society's wealth and because

B) we can potentially trigger large increases to productivity so the ceiling on our value add is very very high.

C) there are not enough experienced programmers to satisfy capital's insatiable demand for automation.

Re:A framework for grading your performance on programming i... by ravenstine on Tuesday October 19, 2021 @02:38PM (#28921719)
> Except it does...?

These things are relative to one another. The way you present your case that we are all underpaid is very absolutist and lacks the nuance that someone can be underpaid in the grand scheme but overpaid at a smaller scale.

> The reason we're paid middle class wages (unlike, say, teachers) is because:

I don't really have the time to adequately address every one of those reasons, so all I have to say is that if economics were that straight forward and honest then we'd have a lot more millionaires and billionaires. At best, reason B is true absent any sort of incompetence or meaningful quality-control around production. When you consider how the revenue of many companies is not tightly coupled with productivity and profits, your perspective doesn't seem to add up.

Re:A framework for grading your performance on programming i... by pydry on Tuesday October 19, 2021 @06:05PM (#28924367)
>These things are relative to one another. The way you present your case that we are all underpaid is very absolutist

I didn't really disagree that "underpaid/overpaid is relative", I just used a different default frame of reference to you. One that made you angry I guess?

> and lacks the nuance that someone can be underpaid in the grand scheme but overpaid at a smaller scale.

This point sounds horribly confused to me. Earlier you said we are all vastly overpaid. Now we are both underpaid and overpaid? Depending on the scale of... something?

>I don't really have the time to adequately address every one of those reasons, so all I have to say is that if economics were that straight forward and honest then we'd have a lot more millionaires and billionaires.

I really have no idea what you're getting at here. It doesn't make any sense to me.

Re:A framework for grading your performance on programming i... by ravenstine on Tuesday October 19, 2021 @11:54PM (#28926567)
Nah, I wasn't angry. In any case, I may have just misunderstood you.
Re:A framework for grading your performance on programming i... by leetcrew on Tuesday October 19, 2021 @10:29PM (#28926114)
> Why should I get paid more than other jobs that require more skill despite if my work is garbage?

it's a mistake to think that degree of skill is or should be the only input to compensation. whether the skill is actually useful to other people is at least as important. there is still a lot of low-hanging fruit in software. even a mediocre engineer who messes up a lot of stuff can still provide a lot of value. I think that's likely to end given enough time, but for now, it's reality.

also as an aside, I think it is easy to forget that software is actually kind of challenging when you're surrounded by other people that do it as a full-time job. it's not rocket science or open-heart surgery, but when I help my friends who are trying to break into software without much tech background, I realize there is a lot of knowledge I take for granted.

Re:A framework for grading your performance on programming i... by yourapostasy on Sunday October 24, 2021 @07:05PM (#28982762)
This is the typical “just world” rant of the junior to mid-range devs. Did this exact rant back in my day.

I’ve been in those shops that “consider the philosophy, history and discipline of code”. Your counterparts in those organizations? They’re ranting against the waste they see going on.

The reality is more nuanced. If you were handed a multi-thousand developer organization, business goals, and a fixed budget by the BoD via the CEO and CIO, your theories of “how it should be” won’t make it past the first fiscal quarter.

This is the next level awareness of what Brooks meant by “no silver bullet”. He wasn’t just talking about coding tooling, he also meant these kinds of diatribes we all evolve through in our career.

We aren’t paid to only cut code. We’re paid to help deliver an outcome. Outcomes at the business level are not evaluated by the same criteria you personally use, despite what your immediate business liaisons tell you; you need the C-to-upper-management perspective to start to understand the real decision factors. Before you make assumptions about companies not knowing at industry aggregates level how to pay developers, first go manage a multi-hundred to multi-thousand person engineering organization with balance sheet and P/L LOB insight into their real impact as crunched by the finance wonks. Then you’d know the real cost benefit you currently assume the finance people in aggregate don’t know.

We absolutely can and must do better as an industry, and I see us every month making incremental progress (this is much more difficult to see in the first half of your career because you struggle to get a feel for what is and isn’t progress that business cares about). That doesn’t preclude us from obtaining useful outcomes given prevailing conditions (including pay as a very small factor).

Re:A framework for grading your performance on programming i... by sureglymop on Wednesday October 20, 2021 @06:12AM (#28928895)
> we are vastly overpaid for what we do.

I highly disagree. I think everyone else is underpaid.

Will not explain further because i don't think discussions are allowed to get more political than that here.

Re:A framework for grading your performance on programming i... by azemetre on Wednesday October 20, 2021 @10:39AM (#28931173)
I agree. It's hard to argue software developers are overpaid when the executive leadership are making hundreds of millions (some even billions).

Seems absolutely terrible to attack the smaller fish compared to the truly 0.01%. Especially when the billionaires are directly influencing the country.

Let me know when a staff engineer at Twilio or Square is able to influence the media people consume, and I might feign worry.

Re:A framework for grading your performance on programming i... by bGl2YW5j on Wednesday October 20, 2021 @06:06PM (#28937399)
The "high tech illusion" concept spoken about by the book "Peopleware" relates to this. It's the idea that software engineering is viewed as a high-tech profession on par with something like rocket engineering. In reality, software engineering is closer to an assembly line process wherein we simply arrange and connect pre-made components (e.g. APIs).
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @10:17AM (#28918333)
I don't think it's true that your educational background doesn't matter at all.

At least at the tech co where I work in ML, every single one of my peers has a PhD and while I don't, I went to Harvard.

Re:A framework for grading your performance on programming i... by aketchum on Tuesday October 19, 2021 @11:34AM (#28919283)
How do you tell if someone went to Harvard? Don't worry, they'll tell you in the first 30 seconds.
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @11:38AM (#28919326)
Honestly, I never mention it in real life unless directly asked because people (especially in tech, I've noticed) seem to be very sensitive around "name-brand" schools, ie. with comments like this.

But I think it has direct relevance to the GP comment.

Re:A framework for grading your performance on programming i... by sureglymop on Wednesday October 20, 2021 @06:05AM (#28928847)
I've read this here before but I honestly think there should be more regulations about who can be hired. The name of the school should not matter in the slightest if one has studied the same thing.

Making it impossible for the employer to know that detail would also incentivize all the schools to provide a good education. Also many top universities are mostly about making connections. While their curriculum is usually very hard, this is also reflected in the grades.. people may still pass but their average drops.

In the US it's even worse, because tuition has to be paid. This already filters out many people from going to a "more elite" school.

Re:A framework for grading your performance on programming i... by kvathupo on Tuesday October 19, 2021 @12:13PM (#28919812)
Or more likely, they vaguely say they "went to school in Boston"
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @12:19PM (#28919886)
If you answer that when asked point-blank what school you went to, I think you are an asshole.

That said, I can understand the impulse unless you want to be called "Mr. Harvard" every time you do some dumb shit in the office.

Re:A framework for grading your performance on programming i... by auntienomen on Tuesday October 19, 2021 @11:54PM (#28926559)
"went to school somewhere northeast of NYC"
Re:A framework for grading your performance on programming i... by belter on Wednesday October 20, 2021 @12:37PM (#28932783)
If they are Vegetarian and they went to Harvard which one do they tell first?
Re:A framework for grading your performance on programming i... by whimsicalism on Thursday October 21, 2021 @11:02AM (#28945457)
Better yet - I actually am vegan and went to Harvard :)

So I guess Harvard wins out! In real life, veganism definitely does though :)

Re:A framework for grading your performance on programming i... by geebee on Tuesday October 19, 2021 @05:11PM (#28923826)
There may be a difference between data science or ML work and software engineering. It's commonly stated, accurately IMO, that you don't really need an advanced math background to be a software engineer or developer. I tend to agree, as long as I'm also allowed to say that I believe it's a very difficult, complicated, and intricate job. It just doesn't require calculus, linear algebra, or higher.

For ML? Well, I do know people who have never taken a formal course in anything above calculus who absolutely do apply these techniques properly and are well versed in how they work. But to understand how k-means clustering works, or how to construct a gradient vector... yeah, this requires multivariable calculus and non-linear optimization across systems of equations. And while you don't need to know how the underlying math works to use kmeans or neural nets, the mathematics is a lot closer to your work.

Under these circumstances, I can see why a lot of companies might just start looking for STEM degrees from known programs in a way they don't really with SEs.

Re:A framework for grading your performance on programming i... by azemetre on Tuesday October 19, 2021 @10:38AM (#28918572)
The Wright brothers never had a pilots license.
Re:A framework for grading your performance on programming i... by fragmede on Tuesday October 19, 2021 @12:11PM (#28919790)
No, but they did own a successful bike shop for the better part of a decade. Don't buy the narrative that the first airplane only cost $28,000 so someone with the same grit as the Wright brothers could have achieved that first flight. Or do, but do be careful not to draw unrealistic conclusions.

If you have a decade of industry experience, no one cares that you went to some no-name college. It's pretty easy to get callbacks as a senior software developer. But don't mistake that for meaning that educational background is irrelevant. It's far harder to get callbacks if your resume has a bootcamp for education, and no experience. Throw in a felony criminal record, and the job you'll get a Lyft is fixing bicycles for $17/hr. Which isn't a bad job, actually, but it's a far cry from $200k/yr. Meanwhile, someone at an internship at Google or Facebook while working on two degrees from MIT will be making the equivalent to $100k before ever graduating.

Experience matters far more than education, and the software industry isn't some egalitarian ideal, no matter how many millionaires were minted in the 90's and 2000's, and continue to get minted.

The argument that someone could go make their own app and sidestep the need to get a pilot's license is a poor one. If you look at all the shovelware, spyware, and straight up scams on both Apple and Google's app stores, it's clear that there's more to being a successful app developer than writing a good app, and the exceptions there (like Christian Selig) are akin to literal rock stars. Good for them and all, but the rock star's backup singers' names and stories get lost to history, nor do they get the same fame or fortune.

It's like when exceptional black, women candidates are held up as an example of equality. The exceptional candidate isn't the one to ask about, truly exceptional people always bubble up. Where do the average, or lower-than-average candidates (with reasonable educations) end up? How many don't even make it into the field, in a failure-to-launch scenario because they never get that first break that you did?

The Wright brothers never had a pilots license, but who here's heard about Charlie Taylor, their machinist?

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @11:20AM (#28919052)
The Wright brothers weren't trying to get hired by large, inefficient at hiring, aeronautics firms.
Re:A framework for grading your performance on programming i... by azemetre on Wednesday October 20, 2021 @10:46AM (#28931265)
The idea is that if you don't need a license or a degree to work in new fields. Software engineering is full of new fields in their infancy.

To say you only need a certain background to work is horribly misguided. You can be productive in many fields with a wide array of knowledge and education.

I'm not saying a frontend developer can write novel ML algorithms, but surely they can contribute in other capacities (like creating interfaces to work with the novel ML algorithms, which is meaningful in itself and requires new UX paradigms surely).

Re:A framework for grading your performance on programming i... by whimsicalism on Wednesday October 20, 2021 @10:51AM (#28931337)
You're completely misinterpreting my point, and perhaps conflating is and ought.

In the industry, your educational background does matter, especially for the type of firm that asks leetcode questions.

I was not saying you need a certain background to be able to be productive in tech, that is a strawman.

But I would defend that your educational background is a signal (very far from a perfect one) at how productive you would be at knowledge work.

Re:A framework for grading your performance on programming i... by scrtlyCool on Tuesday October 19, 2021 @11:39AM (#28919341)
if they had to pilot modern aircrafts with much more complicated controls, carrying hundreds of passengers they would definitely be required to have one
Re:A framework for grading your performance on programming i... by jlund-molfese on Tuesday October 19, 2021 @10:42AM (#28918618)
Is Harvard known for having a particularly strong ML program compared to other schools which aren't household names, like UIUC and Georgia Tech?
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @11:19AM (#28919046)
Per capita it is probably stronger than many schools, overall I doubt it is better - and certainly not than top CS schools.

That said, in undergrad for ML, I think some of the more important things are giving you a strong basis in linear algebra, vector calculus, and numerical computing - and I certainly got that there.

Re:A framework for grading your performance on programming i... by exdsq on Tuesday October 19, 2021 @12:27PM (#28920012)
Ah I think it's overrated signalling. I've worked in R&D tech teams where people doing some of the best work on say functional language compilers and authoring type theory papers haven't had degrees. Lead of that team had a BSc. Hired many PhDs but there wasn't much of a correlation between that and output.
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @12:35PM (#28920104)
Oh - I wasn't trying to say it's a good signal. PhDs in particular I think are overrated as a signal - but maybe I'm biased because I only have an AB.
Re:A framework for grading your performance on programming i... by geebee on Tuesday October 19, 2021 @02:09PM (#28921390)
there's a lot of wiggle room to differ about what you need to learn. If you managed to prep for this with no degree in 3 months, well dayum. I consider that impressive, and I'd say that's not a low bar at all.

I'm not allowed to discuss my specific google interview questions, but I'd say they're similar to some of the harder questions in "cracking the coding interview". On the line of "find all matching subtrees in a binary tree". Remember, you have to do this in 45 minutes, and the impression I got from my feedback is that you need to make substantial coding progress (again, in 45 min at a whiteboard).

That's hardly impossible, but I think it's notably tougher than "loops, variable reassignment, objects & arrays, and some other unique operators like modulo or booleans " There's no way I'd suggest someone go into a google SWE interview with only that prep. I'd say you need to be very sharp on recursion, tree traversal, sorting, set permutations, and a number of other algorithms - and I disagree that you can memorize solutions. You should have them down cold, but you won't be asked to regurgitate them - instead, you will need to be able to think on your feet to figure how these algorithms can be adapted to a variant of a problem you've seen but not quite in the form they're asking about.

Re:A framework for grading your performance on programming i... by swman on Tuesday October 19, 2021 @12:48PM (#28920266)
Not everyone can think lol.
Re:A framework for grading your performance on programming i... by cageface on Tuesday October 19, 2021 @10:34AM (#28918523)
I've begrudgingly been doing leetcode for the last few weeks in prep for looking for a new job. And a lot of it is stuff that I have never needed in 20+ years of coding.

But I will say reviewing the graph algorithms hasn't been a complete waste of time. It's good to at least know what they are, what they can do, and what their tradeoffs are. I realize I was a bit fuzzy on these.

Re:A framework for grading your performance on programming i... by tra3 on Tuesday October 19, 2021 @12:55PM (#28920366)
Same. Some of the the questions/solutions are very aesthetically pleasing. While I find it pretty satisfying, I still have a million things I'd rather be doing.
Re:A framework for grading your performance on programming i... by cageface on Tuesday October 19, 2021 @01:11PM (#28920580)
I should also add that of the several interviews I've done so far all but one asked practical implementation questions. And the one that did ask more leetcode style questions only asked easy ones.

It would be different if I were applying at FAANG style companies I'm sure.

Re:A framework for grading your performance on programming i... by geebee on Tuesday October 19, 2021 @02:05PM (#28921344)
If only it were like the SATs. With the SATs, the questions are eventually published, and you get a score report indicating exactly what you missed and why, along with a percentile breakdown.

Google's interview exams are graded in secret, and you have to sign a non-disclosure to take the exam. I suppose scores for my interview exam are stored in some database somewhere internally at google, along with photographs of the whiteboard at the end of my various 45 minute sessions and notes, but I'm not allowed to know what they are (they're secret).

I'm ok with google doing these interview exams (and fully embrace that it isn't up to me). But I do think that a certain bill of rights between examinee and examiner slowly evolved over the years - one of which is that the people who took the test should get some feedback on how or why they failed or passed, along with a score.

Instead, due in part to fear of lawsuits, you get very vague feedback from a recruiter. Mine was: analyzed the problem well, but didn't make sufficient progress on the coding section in the time allotted. I have no idea if this is true, someone being nice, how much more progress I would have needed to make...

I no longer participate in exams under these conditions, but I'm just one person with zero clout, and with $300k on the line, no, I'm not even slightly surprised that many people will do so.

Re:A framework for grading your performance on programming i... by tombert on Tuesday October 19, 2021 @01:28PM (#28920831)
I have changed my mind about a dozen times with how I feel about the whiteboard problems for interviews, and I am somewhat on the side of "they're not good", largely for the reasons that you mentioned; it's not hard to find online tutorials to practice specifically for these kinds of problems, which doesn't necessarily correlate with a good worker. I mean, hell, I took advantage of this very feature when I started out; until very recently I was a college dropout who bought a few books on data structures and algorithms, and managed to find engineering work relatively quickly because I knew enough to do well in whiteboard interviews.

I know several engineers who are several times smarter than me, who could build basically any application asked of them, who always have trouble finding work because they don't do well with these whiteboard problems. Of course they could study and learn to get good at these problems, but at that point, what exactly are we testing?

I also think these problems are kind of bad for the other direction. When I interviewed at Apple, they gave me typical big-O notation whiteboard problems, I did well enough on them, got an offer, and accepted the job. I just assumed that if they're asking me hard CS theory problems, then there will be a lot of CS theory work at my position there. I was completely wrong about that; the job ended up being extremely bureaucratic and I spent substantially more time replying to emails and attending meetings than I ever did coding, let alone solving interesting problems [1]. I managed to hang on for about two years, but after a certain point I felt that I had had enough and left, and I always felt that I wouldn't have wasted my time if the interview process had more-accurately reflected the actual work I ended up doing.

[1] I think I had a particularly bad experience at Apple, I think other people working there have enjoyed it substantially more than I did. I think it's highly dependent on the team you're on.

Re:A framework for grading your performance on programming i... by lowbloodsugar on Tuesday October 19, 2021 @09:10PM (#28925672)
There are certainly individuals who refuse to learn how to do whiteboard problems on principle, and if they are having trouble finding a job, I'm fine with that. They'll probably be a pain in the ass to work with.

However, my concern with whiteboard problems is that there are plenty of people who are really good, but get terrified in a whiteboard situation. And some of the absolute smartest people aren't able to think quickly. That is to say, for most questions, everyone else will get the answer first, but for the hardest questions, nobody else will get the answer at all.

Re:A framework for grading your performance on programming i... by yarky on Tuesday October 19, 2021 @09:31AM (#28917882)
> I get paid absurd sums because of supply and demand, not because of my skills;

There's limited offer because it's a rare skill, not sure what you mean by "not because of my skills" since your skills are rare hence valuable to the market.

> Thankfully for my mortgage, that hasn't happened yet and probably won't happen soon.

The keyword is "hopefully". This already happened to physicists with nuclear power if I recall my history lectures.

Re:A framework for grading your performance on programming i... by helen___keller on Tuesday October 19, 2021 @09:40AM (#28917964)
> There's limited offer because it's a rare skill, not sure what you mean by "not because of my skills" since your skills are rare hence valuable to the market.

Leetcode doesn't make companies money. They can't tie it to their revenue. Being paid because of my skills means I can walk into an interview, say "I'm a domain expert in X and my last client saved $Y thanks to my expertise when I optimized their Z".

The leetcode analogue is "I'm a fungible engineer, and since your company basically prints money as long as you have enough fungible engineers to keep the ship running, you should hire me"

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @11:30AM (#28919218)
> "I'm a domain expert in X and my last client saved $Y thanks to my expertise when I optimized their Z".

And I verify that... how?

LC is basically a proxy for being able to pick up random shit quickly, learn how it works, and demonstrate/use that knowledge. The particular knowledge isn't that important. It probably won't be that important at the big tech co - what's more important is how fast you can pick up their novel processes and stack and start getting effective work done.

Re:A framework for grading your performance on programming i... by skeeter2020 on Tuesday October 19, 2021 @11:41AM (#28919368)
>> LC is basically a proxy for being able to pick up random shit quickly

This is the exact opposite of LeetCode. It proves they've crammed on the front-end of the long tail wave of problems. It shows absolutely nothing about recognizing general problem domains and being able to identify long term solutions.

You're right it has no long term importance. It's just a different, still artificial signaling value.

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @11:47AM (#28919445)
I do think the fact that people cram is a problem with LC. Cramming is still a pretty big barrier.

Personally, and for many people I know, cramming was not necessary because we had a conceptual understanding - maybe a week or two of doing 2-3 a day and you would be set.

Anything you do in an interview is going to be an artificial signaling value. I think LC is a much better signal than the talk-out-your-ass approach you seem to favor, and I've done both sorts of interviews.

The difference is also pretty obvious in the quality of your peers based on what sort of interviews your firm does.

Re:A framework for grading your performance on programming i... by throwawaythekey on Tuesday October 19, 2021 @11:26PM (#28926413)
> Personally, and for many people I know, cramming was not necessary because we had a conceptual understanding - maybe a week or two of doing 2-3 a day and you would be set.

Apologies for being pedantic about word use but that time commitment is longer than what's normally meant by cram. Traditionally a cram would be up to a day or two of hard work before exams. What you outlined would just be study (an even larger barrier).

> Anything you do in an interview is going to be an artificial signaling value. I think LC is a much better signal than the talk-out-your-ass approach you seem to favor, and I've done both sorts of interviews.

I prefer the talk out your ass approach personally, but maybe with a detour to asking the candidate to describe something technically challenging they worked on. If the interviewer is fast their your feet and the candidate is skilled at explaining then you can go reasonably deep. After this the interviewer can usually weigh the talk-out-your-ass claims accordingly.

> The difference is also pretty obvious in the quality of your peers based on what sort of interviews your firm does.

Our firm (fast growing series a startup) struggles with this, so take all of the above with a grain of salt. Our problems seem to be more related to not being able to generate a large enough talent pool, not with inaccuracies cherry picking candidates. We hire about ~25% of genuine applicants and find our main problems post hiring are if they are willing to take initiative and be self directed.

Re:A framework for grading your performance on programming i... by colinmhayes on Tuesday October 19, 2021 @01:14PM (#28920619)
Recognizing the problem archetype is the most important skill for leetcoding. Is that the same as recognizing general problem domains? No, but it's similar enough to be correlated.

The point of leetcode isn't to find the best engineer, since that's not possible in one day of interviews. It's to find someone who has the thinking skills and is willing to put in the time required to be a great engineer. Cramming being helpful is largely the point, companies want people who are committed to being the best.

Re:A framework for grading your performance on programming i... by HideousKojima on Tuesday October 19, 2021 @02:44PM (#28921802)
I'd rather have a dev who can put a DB in third normal form than one with the highest scores on leetcode
Re:A framework for grading your performance on programming i... by lowbloodsugar on Tuesday October 19, 2021 @09:02PM (#28925631)
If you take someone with a high score on leetcode and tell them to google third normal form then I guarantee they will be able to do it.

If instead you surprise them with it in an interview, they can't do it, and you don't hire them because of it, well, they are the ones that dodged a bullet not you.

I know about third normal form because I learned it from my girlfriends open-on-the-ground textbook in college. It's just not that hard.

Re:A framework for grading your performance on programming i... by rhines on Tuesday October 19, 2021 @11:07PM (#28926317)
I think the idea with that is not that it's hard, but that you know it. You won't get a product person telling you to implement a DB in 3NF - so it doesn't matter how quickly you'd learn via Google, as you wouldn't Google it.

Same goes for Leetcode. Anyone can Google how to implement some algorithm, but you won't be told what algorithm to use in your project requirements.

Of course, an interview could just involve getting you to give general descriptions of things instead of implementing them, which would satisfy this to some degree. But then everyone with a bachelors would pass the interviews, so they had to make them more intensive in order to limit the pool further.

Re:A framework for grading your performance on programming i... by lowbloodsugar on Wednesday October 20, 2021 @01:36PM (#28933478)
In 1995 I "invented" Navigation Meshes. But I didn't call them Navigation meshes because I didn't learn the term until I read about them in AI Game Programming Wisdom in 2004 (a book published in 2002).

Likewise there are plenty of people who have learned database design through a combination of optimizing execution plans and dealing with the practicalities of schema changes. Such people may never have heard the term "Third Normal Form", but will run absolute rings around a college newbie who has. Indeed, in my career I have met at least two people responsible for database design who did know normal forms but did not know about execution plans, or covering indexes for that matter. Or had a nice normal set of tables, and then proceeded to build a reservation system (hit by 100,000+ users when registration opens) that takes a transactional lock on a single row using an ORM. They understood database theory from 1971, but they didn't know what this specific database implementation actually does.

Re:A framework for grading your performance on programming i... by rhines on Tuesday October 26, 2021 @08:48AM (#28999720)
Perhaps, yeah. Likewise there will be people who've never heard of Big-O notation, and when asked to explain the efficiency of their algorithm and justify why it's optimal they won't be able to, even though they're masterful algorithm builders and did get the optimal solution. Or people who know to build a solution that isn't optimal in theory, but harnesses caches, parallelism, and other real-world features of a computer to be the most effective. And they'll still get docked points on interviews, where a bored engineer is just sitting there looking for someone to regurgitate the right answers. If we're going to take a stand against database questions, I feel like it'd be disingenuous to not do the same against algorithms questions.
Re:A framework for grading your performance on programming i... by whimsicalism on Wednesday October 20, 2021 @10:25AM (#28930996)
I think it is better to conduct interviews hinging around concepts rather (is. LC) rather than "gotcha" questions over whether you have heard a particular term of art.
Re:A framework for grading your performance on programming i... by rhines on Tuesday October 26, 2021 @08:44AM (#28999686)
IMO there's not much difference. Like you aren't going to figure out how to do dynamic programming from first principles, or re-invent the Floyd-Warshall algorithm during a 45 minute interview. Or even come up with the idea of trees on your own. Almost all LC questions are predicated on having heard of and learned about various algorithms and data structures, which really isn't any different from questions predicated on having heard of and learned about various database concepts. We're just used to it because LeetCode is the standard, so everyone grinds it.
Re:A framework for grading your performance on programming i... by Jensson on Tuesday October 19, 2021 @09:50AM (#28918038)
> I can walk into an interview, say "I'm a domain expert in X and my last client saved $Y thanks to my expertise when I optimized their Z".

Billions of people have the skills to say that. Being able to say something doesn't mean that you have the skills to do it. And being able to talk about something for a few minutes after that first sentence also doesn't necessarily mean that you have the skills to do it.

If you had an airtight system for assigning credit for performance at companies, and then being able to show evidence of what you did to other companies, then what you are talking about would work. But right now nobody even knows how to properly assess the value of employees they work directly with, being able to assess the value of employees you just heard a few sentences from would be magic.

Re:A framework for grading your performance on programming i... by harkonen23 on Tuesday October 19, 2021 @09:34AM (#28917908)
>> And we tuned it from there to into its own sort of mini-SAT with an accompanying preparatory industry and culture.

Seriously. Interview Kickstart recently quoted $8500 for two months to prep for the FAANG exams. The entire session felt like a high-pressure sales pitch from a timeshare salesperson. Here we are SF/SV 2021!

Re:A framework for grading your performance on programming i... by thechao on Tuesday October 19, 2021 @12:06PM (#28919713)
I work at a FAANG, but I don’t really understand what a “leet code” interview is? I’ve interviewed hundreds of people, and hired a number of them. What makes a great engineer is enthusiasm, curiosity, good communication skills, and a willingness to adapt to the processes of the team.

Initiative & leadership are nice, too, if I think I might need a manager in the wings.

Ambition is ok? It’s hard to temper highly ambitious people.

Coding is a mechanical skill you can assess in 5 minutes at the whiteboard during your interview while you look for the important skills.

Re:A framework for grading your performance on programming i... by tra3 on Tuesday October 19, 2021 @01:00PM (#28920441)
> Coding is a mechanical skill you can assess in 5 minutes at the whiteboard during your interview while you look for the important skills.

If this was true, we wouldn't have leetcode style interviews.

> I don’t really understand what a “leet code” interview is?

To me it's the puzzle style questions; or questions you have no way of answering without knowing or being exposed to a certain trick.

Re:A framework for grading your performance on programming i... by Apocryphon on Tuesday October 19, 2021 @02:16PM (#28921454)
It's ironic, given that algorithmic whiteboarding questions were developed as a reaction to '90s Microsoft "how do you move Mount Fuji" brain teasers. I would not call Leetcode questions puzzles in the same sense, yet many questions do require some foreknowledge of having seen the question to get to the optimal solution.

There could be an article or analysis written on that subject. What is the pedagogical gap between common CS education (both academic and not) and being able to intuitively leetcode? Students are learning the data structures and algorithms, but perhaps not in a way to approach problems in the same way that leetcode style platforms force them to really utilize that knowledge. Maybe there are problem-solving approaches not being covered?

A survey of the most commonly asked leetcode problems in industry would be illustrative as well. Some questions rely on advance knowledge that aren't really found in academic computer science. What CS course teaches two pointer - isn't that a competitive programming technique?

Re:A framework for grading your performance on programming i... by tra3 on Tuesday October 19, 2021 @02:56PM (#28921998)
> I would not call Leetcode questions puzzles in the same sense, yet many questions do require some foreknowledge of having seen the question to get to the optimal solution.

Agreed. So far what I've observed is that once you understand dynamic programming, memoization and tree traversal you're set to solve a lot of the leetcode style questions. However every once in a while you encounter a question such as "add two binary numbers without using mathematical operators" which essentially expects you to xor two binary numbers and then determine the cary using a shift operator. I'd argue that this is similar to the Mount Fuji question.

Re:A framework for grading your performance on programming i... by thechao on Thursday October 21, 2021 @09:46AM (#28944273)
Hm. Okay … I consider things like “dynamic programming, memoization, and [graph] traversal” to be basic skills of a systems programmer. I didn’t realize people didn’t look for those skills to weed out the flerbs.
Re:A framework for grading your performance on programming i... by Jensson on Tuesday October 19, 2021 @09:24AM (#28917801)
> If enough people do so, wages could be pushed down by employers. Thankfully for my mortgage, that hasn't happened yet and probably won't happen soon.

You know that already happened? Like 15 years ago was what it looked like before every started practicing, today most people are practicing. If they fail to take your job today then it is because they failed to pass the interviews even with extensive practice.

Re:A framework for grading your performance on programming i... by helen___keller on Tuesday October 19, 2021 @09:31AM (#28917886)
Right now engineering demand is far outstripping supply.

If the tides shift and big tech starts tightening their belt, leetcode practitioners will start competing 100 engineers for 10 positions at big tech, and that's when salaries get pushed down.

Most books and blogs on professional growth say to have some sort of talent or skill that makes an organization need you. That way, you aren't fungible and have leverage. Right now my "skill" that I demonstrate is leetcode and the only leverage I have is that big tech needs more engineers and have to bid against each other for my fungible work. The moment tides shift, myself and every other leetcode practitioner are basically fucked.

When will this happen? Ask a fortune teller.

Re:A framework for grading your performance on programming i... by Jensson on Tuesday October 19, 2021 @09:45AM (#28918013)
There is a finite supply of STEM minded people, the extreme salaries in programming has already shifted many of those to programming. The job climate today is basically the same as 10 years ago, the interviews looks the same, the salaries are a bit higher but around the same etc. So as far as I know this is the stable point where the people staying in other STEM jobs prefer those jobs over the money, and you wont attract more of those unless you pay even more than companies do now.
Re:A framework for grading your performance on programming i... by zenithd on Tuesday October 19, 2021 @10:22AM (#28918392)
I think this is probably spot-on.

Anyone who has taught introductory CS courses at an average public college/university (so, not a huge R1 state flagship) can tell you that getting into programming is not easy. Plenty of students who I would describe as "smart enough" have an incredibly hard time learning how to program.

The bar is a lot higher than most people here seem to believe.

Re:A framework for grading your performance on programming i... by leetcrew on Tuesday October 19, 2021 @11:01PM (#28926285)
> If the tides shift and big tech starts tightening their belt, leetcode practitioners will start competing 100 engineers for 10 positions at big tech, and that's when salaries get pushed down.

it's already like this just for positions at random software companies paying $80-120k. the percentage of applicants to google that end up getting offers is estimated to be in the low single digits (if not below 1%). and frankly, I suspect big tech companies already hire more engineers than they "need", just to deny them to rising competition.

I don't think you're wrong about the moment that the tides shift, but it seems we are still quite far from that.

Re:A framework for grading your performance on programming i... by game_the0ry on Tuesday October 19, 2021 @12:09PM (#28919757)
> And we tuned it from there to into its own sort of mini-SAT with an accompanying preparatory industry and culture.

Agreed - interview prep is a cottage industry.

It should be worth reflecting and discussing why that is. If tech interviews are not horribly flawed, why is there a small industry of paid prep resources for passing those interviews?

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @12:28PM (#28920021)
There are plenty of industries that have cropped up on convincing people they need something despite the fact that they probably don't need it.

For instance: SAT prep schools, the evidence on private college counselors, etc. - there is little to no evidence these actually have a substantial impact, but people pay for it anyways.

In the adult world, try managed funds. Again, little-to-no evidence that you have any way of knowing ahead of time which of these will beat the market and which will underperform, but people still pay massive fees to get included in an "exclusive" investment fund.

This is a human phenomena, it doesn't mean the selection criteria isn't working - just like the exist of managed funds doesn't mean the stock market isn't working.

The world is full of lots of people, and some proportion of those people will be marks.

Re:A framework for grading your performance on programming i... by Apocryphon on Tuesday October 19, 2021 @01:55PM (#28921204)
> there is little to no evidence these actually have a substantial impact

Is that true?

https://slate.com/technology/2019/04/sat-prep-courses-do-the...

> Once scholars control for all these factors as best they can, they find that coaching has a positive but small effect: Perhaps 10 or 20 points in total on the SAT, mostly on the math section, according to careful work by Derek Briggs of the University of Colorado Boulder and Ben Domingue of Stanford University.

> A 2010 study led by Ohio State’s Claudia Buchmann and based on the National Education Longitudinal Study found that the use of books, videos, and computer software offers no boost whatsoever, while a private test prep course adds 30 points to your score on average, and the use of a private tutor adds 37.

Also, managed funds are not analogous to interview/test preparation in any way.

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @02:07PM (#28921370)
That demonstrates my point.

10 to 20 points on a 2400 scale (at the time of study) test is not a substantial impact. I also think there are probably test-oriented lurking variables they are not able to capture.

Managed funds also sell you on the idea that you can buy your way into performance, and there is also little evidence that they actually work.

Re:A framework for grading your performance on programming i... by Apocryphon on Tuesday October 19, 2021 @02:20PM (#28921498)
Read on to the conclusion:

> Let’s assume the effects of short-term coaching are really just a 20- or 30-point jump in students’ scores. That means they ought to be irrelevant to college admissions officers. Briggs found otherwise, however. Analyzing a 2008 survey conducted by the National Association for College Admission Counseling, he noted that one-third of respondents described a jump from 750 to 770 on the math portion of the SAT as having a significant effect on a student’s chances of admissions, and this was true among counselors at more and less selective schools alike. Even a minor score improvement for a high-achieving student, then—and one that falls within the standard measurement error for the test—can make a real difference.

> Compare that with students from families that earn less than $20,000 per year, who have a mean score on the math portion of the SAT around 450. According to the same admissions counselor survey, a 20-point improvement to a score in this range would have no practical meaning for students who are trying to get into more selective schools. Even when it comes to less selective schools, just 20 percent of the counselors said a boost from 430 to 450 would make a difference. In other words, research has debunked the myth that pricey test prep gives a major bump to students’ scores, but it’s also hinted that whatever modest bumps they do provide are more likely to help the people who are already at the top.

======

As for managed funds, they promise to sell performance within an environment composed of many many people. Test prep and interview prep promise to improve performance for individuals. One is about mastery over an external environment, nature. The other is about internal improvement. I don't think promises of personal improvement through coaching, training, or teaching is comparable to promises of gains within a large chaotic unpredictable environment. They're entirely different categories of "buying your way into performance."

Re:A framework for grading your performance on programming i... by Jensson on Tuesday October 19, 2021 @02:30PM (#28921613)
> he noted that one-third of respondents described a jump from 750 to 770 on the math portion of the SAT as having a significant effect on a student’s chances of admissions

But did the SAT prep really help people go from 750 to 770? I'd guess that most of that 20 point jump would be for people who start out at 500 or so, and going from 500 to 520 isn't terribly significant. Fixing the last points is much much harder than the middle, so I really doubt that people at that level would see the same absolute gain as people in the middle.

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @03:39PM (#28922645)
Agreed. Indeed, I would expect the "average" to mostly consist of large boosts for very low initial scorers rather than improvements among high-scorers.
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @03:36PM (#28922611)
So, in a poll about how their own industry works, 66% vs. 33% said that a 20 point difference (from 750 -> 770, which is not the standard score change from prep and the changes are lowest at the high end of the score range) would not make any significant difference in the chance that a student would have.

I don't follow the distinction between market as external environment and college admissions as internal environment. Could you elaborate?

Re:A framework for grading your performance on programming i... by Apocryphon on Tuesday October 19, 2021 @03:52PM (#28922844)
> would not make any significant difference in the chance that a student would have

So a third is not statistically important?

> I don't follow the distinction between market as external environment and college admissions as internal environment. Could you elaborate?

It's a very simple point: fund managers claim to have mastery over a vast, complex external environment. Interview and test prep courses, like any sort of pedagogy, claim to teach and coach candidates towards self-improvement. The latter is self-evidently simply more achievable than the former. And even if you were to claim that SAT prep schools make no substantiative improvement for students, what makes interview prep most analogous to those, as opposed to other forms of tutoring, or even personal fitness training, which do yield greater benefits?

I'm just saying it's a lot easier to teach someone how to be better at something than to beat the market. They are completely different endeavors.

Re:A framework for grading your performance on programming i... by silicon2401 on Tuesday October 19, 2021 @09:26AM (#28917831)
> I get paid absurd sums because of supply and demand, not because of my skills

This is how everything works. You can get paid a lot for selling a stock that has appreciated (demand for it went up) without having any skills in investing, just luck. You can also be an incredibly talented musician or artist and get no money for it because there's no demand for classical musicians these days (I've seen this happen to every single one of my classical musician friends. They all have to go into teaching or change careers).

Re:A framework for grading your performance on programming i... by helen___keller on Tuesday October 19, 2021 @09:47AM (#28918027)
Sure, my point is just that (among top corporations), engineers have been largely reduced to commodity goods.

To tie it back into the subject of interviewing: If you are interviewing for a PostgreSQL expert, then it will be both harder to find someone who fits the bill and that person will have more leverage to negotiate a better salary. That person knows how few engineers (relative to the total pool) have worked on the PostgreSQL codebase and can explain the internal workings and implementation details and relate it to your projects.

In a hypothetical future where there's 100 engineers for every 10 commodity engineer positions, that PostgreSQL expert position will still be hard to fill.

Re:A framework for grading your performance on programming i... by Jensson on Tuesday October 19, 2021 @10:13AM (#28918289)
> Sure, my point is just that (among top corporations), engineers have been largely reduced to commodity goods.

But that was always the case. Lets say you can save a company millions of dollars by being competent at SQL. Guess what? Any of the millions of people who are competent at SQL could also have saved that company millions of dollars. Why not just hire anyone of those? You are a part of the sea of programmers with similar skills as yourself, that is what you are selling and what companies are buying. So to set yourself apart from the sea of others you show you are smart enough or hard working enough to pass coding interviews, since most of your peers who also know SQL can't pass those.

Re:A framework for grading your performance on programming i... by Frost1x on Tuesday October 19, 2021 @10:52AM (#28918713)
For programmer or engineer though, it's now a gamble to invest heavily and be that expert in a single technology. In medicine, expert/specialists have large population pools and simply accident or genetic defect rates they can rely on to have customers for their speciality. You can specialize on a specific body part and become a dentist or ophthalmologist and be assured there will be sick people who need you and are willing to pay (unless of course we cure/eliminate the problem you solve which rarely happens).

If you're in software and know the internal workings of Postgres, well that's fine and dandy iff a business decides to use Postgres. Maybe they chose MariaDB or something else arbitrary instead. That highly specialized knowledge you have about Postgres is highly dependent on demand as it always has been. The difference now is that for any given technology, there seem to be a sea of competing options, so the risk of your expert time investment having no demand is quite high. The salaries may be high but I'd argue they're not high enough for the time, effort, and risk to become a specific technology expert anymore. I have expert level knowledge in systems that now have almost no demand. It's a waste of my time to maintain them at this point, the risk and opportunity cost is far far too high.

There was a time when you could become an expert or near expert of about 1-3 competitors for a specific library of infrastructure and those skills were incredibly valuable, highly transferable, and in demand because the pool of competing tech was so low. Now I can't even keep track of number of just say database or database like applications teams may choose to use. There's more diversity than there is demand to justify and sustain the evel of diversity we now have, IMO.

Re:A framework for grading your performance on programming i... by wly_cdgr on Tuesday October 19, 2021 @12:25PM (#28919980)
"Preparatory industry" is a bit much. The only thing people really need or use for interview prep is Leetcode, which costs about as much as Netflix if you buy an annual subscription, and provides hundreds of hours of what should be at least somewhat fun to anyone who actually enjoys programming

If you wanna get fancy you can throw in a $59/month Coursera Plus sub for those big-name-university math and CS courses. There are some good ones that I think would help people who focus exclusively on LC improve faster and/or get a deeper understanding

Ok, so we are now talking about ~$900 over the course of a year. Even throwing in some a la carte courses from edX, like the Programming Languages sequence from Washington that OSSU recommends, you can now give yourself a thorough and marketable CS education in a couple years of hard work for under $3k. That doesn't sound like a predatory industry....that sounds like excellent progress towards equitable opportunity

P.S. And you can even be a cheapskate and just use the Sedgewick booksites and do the UCSD and Stanford discrete math and algos courses on Coursera and get your interview prep done for a grand total of like $200

P.P.S. The reason you don't need algos in your day to day is because you are not good enough at algos to get a funner, better paying, more impactful job where you do

Re:A framework for grading your performance on programming i... by blueline on Tuesday October 19, 2021 @12:55PM (#28920364)
> P.P.S. The reason you don't need algos in your day to day is because you are not good enough at algos to get a funner, better paying, more impactful job where you do

there are a comically high number of jobs at "prestigious" companies where this is absolutely not true

Re:A framework for grading your performance on programming i... by wly_cdgr on Tuesday October 19, 2021 @12:58PM (#28920406)
Ok, maybe not the "better paying" part. Should have put an "and/or" in there somewhere
Re:A framework for grading your performance on programming i... by skinnymuch on Wednesday October 20, 2021 @09:16PM (#28939069)
Impactful how? If you want to believe you are not just a cog for some for profit enterprise, but are doing impactful work, cool. I likely disagree, not as a diss on you. I generally see cogs as cogs, myself included. OTOH, your wording wants to believe you and others good enough in algos are better than others.
Re:A framework for grading your performance on programming i... by nitrogen on Tuesday October 19, 2021 @01:00PM (#28920436)
"Preparatory industry" is a bit much.

I ran into a YT channel run by a guy currently employed by FAANG as a hiring manager and selling courses for how to pass his own hiring interviews. With that, plus bootcamps, I think "preparatory industry" is a fair term.

Re:A framework for grading your performance on programming i... by helen___keller on Tuesday October 19, 2021 @01:12PM (#28920598)
> P.P.S. The reason you don't need algos in your day to day is because you are not good enough at algos to get a funner, better paying, more impactful job where you do

[citation needed]

Re:A framework for grading your performance on programming i... by wly_cdgr on Wednesday October 20, 2021 @03:24PM (#28934997)
indeed.com
Re:A framework for grading your performance on programming i... by brundolf on Wednesday October 20, 2021 @02:03AM (#28927290)
I always find it strange the way people talk about the importance of Leetcode on here. I've been in the industry 7.5 years and I've never used or been asked to use leetcode or really any site like it. I've gotten the CS questions in interviews and some coding problems that are perhaps leetcode-like; but the latter are usually not super intense, either in difficulty or in grading harshness. My solutions never had to be perfect, they just wanted to watch me problem-solve. And most of the companies I've worked for would be called "trendy"; we're not talking about stodgy enterprise-type orgs.

I don't get it. Is it because I'm not pursuing FAANG? Is it because I'm in Austin instead of SF?

Re:A framework for grading your performance on programming i... by jahewson on Tuesday October 19, 2021 @12:07PM (#28919736)
I don’t understand this view. Learning to “game the exam” (by which you mean pass) is the gateway to all careers, whether you’re a truck driver or a brain surgeon. What’s special about software?
Re:A framework for grading your performance on programming i... by dominotw on Tuesday October 19, 2021 @12:25PM (#28919969)
> brain surgeon. What’s special about software?

brain surgeon doesn't take USMLE at every job interview.

Re:A framework for grading your performance on programming i... by Jensson on Tuesday October 19, 2021 @02:34PM (#28921673)
Brain surgeons gets sued and you get a public paper trail when they do a bad job. Also they often have a lot of data of all their performed surgeries they can refer to. Software engineers however fails silently and nobody will know. Lawyers, the other big profession that are paid a lot, also have a lot of data they can go by to prove that they deliver value.

Can you give a single profession that pays $200k+, isn't a manger job, doesn't have easily tracked metrics like doctor/lawyer, and doesn't have tests like the algorithm interview?

Re:A framework for grading your performance on programming i... by Apocryphon on Tuesday October 19, 2021 @02:35PM (#28921686)
Actuaries?
Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @12:29PM (#28920034)
If the suggestion is that we change our field to be more like the medical profession, I'll just say I'm thankful you're not in charge.
Re:A framework for grading your performance on programming i... by Apocryphon on Tuesday October 19, 2021 @01:29PM (#28920851)
What if the accreditation for this industry is simply do the existing LC exam, except once you pass it you're good for 5-10 years until you renew your license? Instead of the current system of having to retake it every single time you change jobs.
Re:A framework for grading your performance on programming i... by j245 on Tuesday October 19, 2021 @09:58AM (#28918132)
> I find it as a reminder of my fungibility as an engineer: I get paid absurd sums because of supply and demand, not because of my skills; anybody who can game the leetcode exam (and the architectural diagram quiz and the personality quiz) can walk in and take the same 300k income I have. If enough people do so, wages could be pushed down by employers.

Entry is one part of the puzzle. The actual skill bit hopefully comes into play after you get in, at which point your skill(s) improve your chances to survive / thrive at these companies.

Re:A framework for grading your performance on programming i... by dqpb on Wednesday October 20, 2021 @11:16AM (#28931677)
> anybody who can game the leetcode exam

The best CS class I ever took made all previous exams available to us. They also assured us that our exams would only include questions that have appeared before.

The only way to game that was to learn everything. Leetcode exams, especially at places like Google, are effectively the same thing.

This is good because it levels the playing field. Anyone motivated enough to learn the material can break into the career.

Re:A framework for grading your performance on programming i... by whimsicalism on Tuesday October 19, 2021 @10:19AM (#28918349)
Domestically, there is a limited supply of very smart technically minded people.

It's sometimes possible to game the system by doing hundreds of LC, but it's still hard to beat people for whom it just clicks.