News for hackers. Stuff that matters.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by Blazespinnaker on Sunday January 14, 2018 @09:45PM (#16148116)
Preparation is a huuuuuuge part of being successful in the workplace[1]. Simply showing up just doesn’t cut it.

Part of interviews aren’t even testing skills, but testing prep. Of course, you want to test for innate genetic talent as well.

Good interviews do that, but as with gattaca, we see that desire and sincere interest counts too over genes.

Preparation, sincerity, and genes. That’s what I like to see in potential employee, in that order.

Sometimes, of course, one attribute really outshines the others - but its order in priority should always be factored in.

1. Source: individual who tried just showing up for 75% of his 20 year career.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by closeparen on Sunday January 14, 2018 @10:20PM (#16148262)
Software engineering does not consist of preparing for and then giving short/intense performances.

Plenty of fields do - performing arts, film, trading, etc. all involve some form of short, intense, expensive activity to which you show up prepared and work in a burst of superhuman activity. But software isn’t like that at all - you get a problem and you dig into it, mull it over, research, etc. at your leisure until it’s done. We’re novelists, not actors.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by Blazespinnaker on Sunday January 14, 2018 @11:40PM (#16148518)
This is true if you have very junior level responsibility, but as soon as you need to take any kind of leadership role others will be looking to you to contribute in a manner that is not ad hoc.

Also, you mention research. Research and preparation are synonymous.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by closeparen on Monday January 15, 2018 @03:33AM (#16149325)
Nope, not even slightly. Research is something you do after you know the problem at hand, to see if you find anything helpful. Preparation is something you do before you know the problem to minimize reaction time once the problem is revealed. Preparation is wildly inefficient, as it involves studying a bunch of material that will not turn out to be needed, just in case.

If you're writing software under the kind of time pressure where consulting reference material is unacceptable, something is deeply wrong. Most software engineers, most of the time, should be able to research topics as they come up rather than prepare (beyond the standard preparation in college).

Making long-term plans, building consensus around them, etc. is important, but is nothing like practicing for whiteboard interviews.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by Blazespinnaker on Monday January 15, 2018 @04:40PM (#16153696)
So wrong in so many different ways. The questions you research / prep for may be needed at some point in your career.

Much like programming. You program for all relevant edge cases, as one might be used at some point.

People who don’t prep are horribly lazy and are terrible at enumerating edge cases. The have buggy code that fails at some point. Laziness is by far the way worse quality? Though not the only sin.

Lack of sincere desire to be helping the team succeed and no innate talent are bad too.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by closeparen on Monday January 15, 2018 @05:01PM (#16153821)
>The questions you research / prep for may be needed at some point in your career.

And most people, most of the time, can and should research them as needed.

>You program for all relevant edge cases, as one might be used at some point.

Yes, because a program doesn't get to pause execution and defer to the human mind to ask "hmm, what do I do in this case?" A programmer does so all day every day.

>are terrible at enumerating edge cases

Any attempt to pre-compute the edge cases of all possible programming situations will be hopelessly inadequate. Enumerating edge cases requires analytical thinking in the moment, essentially the opposite of preparation.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by thaumasiotes on Monday January 15, 2018 @03:31AM (#16149308)
> Research and preparation are synonymous.

This is wrong. If I want to handle a problem by researching it, I have a goal in mind ("solve problem X"), and I'll look for things that will help with it.

Interview preparation specifically avoids that approach. Instead, you're supposed to become familiar with every possible problem, in case it comes up during the interview. Most of them, obviously, won't, and from a "research" perspective that means that nearly 100% of the time you spent in preparation was wasted.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by xstartup on Monday January 15, 2018 @04:07AM (#16149419)
One more thing is that, research takes time. Companies want ability to cut short this time which is required from inception to delivery of a product. They prefer a candidate who already has prepared linear algebra, if you are going to work on deep learning at the company.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by yeukhon on Monday January 15, 2018 @02:13AM (#16149076)
Like every other field, you need to practice and you need experience to do well. Maybe you can dive into a new framework without trying out any tutorials, but not everyone.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by expertentipp on Monday January 15, 2018 @04:52AM (#16149583)
Very few are novelists, most are ghostwriters.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by jasonlotito on Sunday January 14, 2018 @09:50PM (#16148141)
Sure. But at work, I know what I need to prepare for. Interviews don't exactly give you the questions ahead of time allowing you to prepare. So, preparation is not something they are testing for.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by sulam on Sunday January 14, 2018 @10:44PM (#16148345)
The idea of screening for a software engineering gene is patently absurd. In an ideal scenario, we screen for the ability to do the work the job requires. In the normal scenario, we screen for some mix of that and the ability to apply cookie-cutter techniques to (hopefully) novel problems in the space of ~45 minutes. Some companies also ask you to do a sample practical problem either on site or on your own time. None of this indicates anything about someone's "innate genetic talent", if there is any such thing.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by Blazespinnaker on Sunday January 14, 2018 @11:41PM (#16148522)
To imagine that genetics do not play a role in intelligence (or any talent) is horribly naive, otherwise we could teach our dogs to program.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by sulam on Monday January 15, 2018 @09:26AM (#16150674)
And it’s illegal to try and screen on anything except ability to do the job. Be very careful if you find yourself thinking in terms of software engineering interviews being a general intelligence test — you are setting yourself up for a discrimination suit.

https://en.wikipedia.org/wiki/Griggs_v._Duke_Power_Co.

Re:Stanford CS9: Problem-Solving for the CS Technical Interview by Myrmornis on Monday January 15, 2018 @01:15AM (#16148854)
As you clearly demonstrate, intelligence has a genetic basis. However, it does not follow that there is variation among humans at the relevant genetic loci. The variation may have become fixed in an ancestral population of modern humans.
Re:Stanford CS9: Problem-Solving for the CS Technical Interview by Myrmornis on Tuesday January 16, 2018 @04:25PM (#16162783)
What I gave there is an absolutely standard assessment of the situation from the point of view of population genetics. Of course intelligence "is genetic" in some sense: that's why dogs and cucumbers are less intelligent than humans for most definitions of "intelligent". The question is about the phenotypic significance of current intraspecific genetic variation.