News for hackers. Stuff that matters.
Re:Coding Interview Cheatsheet by pavlov on Saturday October 14, 2017 @05:39AM (#15471488)
I can’t think of any other field where highly paid adult professionals willingly submit to interviews that treat them like autistic 15-year-olds. Makes sense for the companies, of course.
Re:Coding Interview Cheatsheet by ekidd on Saturday October 14, 2017 @08:23AM (#15471849)
I've interviewed a fair number of programmers over the years. There's a surprising number of people who interview well and who have good resumes, but who can't actually code. (By "can't code", I mean, "Can't sum an array of numbers in their favorite programming language.") And checking references is hit-or-miss in the US, where many employers will only confirm title and dates of employment.

I know of three possible ways to evaluate coding ability:

1. Ask coding questions in interviews. This is biased against people with performance anxiety.

2. Give people take-home "work samples". This uses up more of a candidate's time, and it may filter out high performers with multiple offers. Plus, if you give anything that takes more than a few hours, it really ought to be paid.

3. Ask for a GitHub profile with open source contributions. This is biased against people who leave work at work, or whose previous employers don't contribute to open source projects.

It's been a few years since I last interviewed candidates, but if I were designing the interview process, I'd probably want at least one of the above before hiring a candidate. Maybe the candidate could choose? "If you have public open source contributions, please submit a link and a description. If you don't, no worries! We'll can do a coding test instead."

Re:Coding Interview Cheatsheet by kevinconaway on Saturday October 14, 2017 @10:15AM (#15472245)
After an initial phone screen, we give candidates a short programming exercise that they can complete on their own time. We feel that engineers work best when they have time to think about a problem and work on it at their own pace with their own tools.

If the solution passes some objective criteria that we have, it then forms a significant component of the on site interview where we discuss their solution in depth and have them talk about the decisions they made and opportunities for improvement. Not only does this allow us to ensure that they actually wrote the submitted solution but it gives the candidate the chance to speak from a position of authority on their own code.

Re:Coding Interview Cheatsheet by watwut on Saturday October 14, 2017 @09:24AM (#15472057)
3. Or who worked a lot for previous employers or took school seriously. GitHub full of contributions is hard if you work 40 hours a week without slacking at work, basically impossible for those who do a lot of overtime. People who spend their out of work time learning (e.g. reading books or other theoretical stuff) are out too.

But really most importantly, it is important for reviewer to be prepared for things like performance anxiety, like shy people who are not good at looking confident, to people cant think out loud (don't hold it against them if they are silent for few minutes for christ sake) and so on and so forth.

But people here throw temper tamtrum over really simple well known questions.

Maybe the companies would to the best if they made their expectations clear and realistic in ad itself. Let people know how interview looks like before hand, let them know what exactly it is you expect and then stick to it.

Re:Coding Interview Cheatsheet by karlmcguire on Saturday October 14, 2017 @08:53AM (#15471934)
As someone with performance anxiety take-home programming "challenges" have been my bread and butter.

I have no problem working 2-3 hours on an assignment to demonstrate my knowledge. Those at least seem more realistic than some of the interview questions about the most nuanced aspects of programming.

Re:Coding Interview Cheatsheet by mrfusion on Saturday October 14, 2017 @08:59AM (#15471949)
Why not let candidates choose between 1,2 and 3?
Re:Coding Interview Cheatsheet by UncleMeat on Saturday October 14, 2017 @12:24PM (#15472856)
Because then it is hard to have a consistent and fair method of judging candidates.
Re:Coding Interview Cheatsheet by mrfusion on Saturday October 14, 2017 @03:31PM (#15473772)
Seems like you can’t compare even if you stick to one method. Some people have performance anxiety or social anxiety and can’t do 1. Others thrive on 1.
Re:Coding Interview Cheatsheet by eradicatethots on Saturday October 14, 2017 @05:31PM (#15474422)
You might want to filter out those people.
Re:Coding Interview Cheatsheet by eradicatethots on Saturday October 14, 2017 @05:30PM (#15474421)
Is that very important? As long as you get a good candidate..
Re:Coding Interview Cheatsheet by Delmania on Saturday October 14, 2017 @07:27AM (#15471709)
Is there any other field where the interview has become a field unto itself? A field where a person can walk in with over a decade of experience and then not get past the first interview because he doesn't know topics he hasn't used since college? A field in which because you don't commit yourself to 40 hours of work at work and then an additional 40 hours of work outside, companies won't look at you? Joy of coding!
Re:Coding Interview Cheatsheet by lr4444lr on Saturday October 14, 2017 @09:20AM (#15472036)
Is there any other field that is so technical and yet refuses to widely recognize an accreditation body that could establish this in an industry-wide way?
Re:Coding Interview Cheatsheet by kod on Saturday October 14, 2017 @10:26AM (#15472297)
Speaking as a programmer who is also a licensed attorney, accreditation is not a solution.
Re:Coding Interview Cheatsheet by sidlls on Saturday October 14, 2017 @11:49AM (#15472660)
Speaking as a person who could have gone down the path of becoming an accredited engineer but chose physics, and who has a number of friends who chose the accreditation path, I disagree.
Re:Coding Interview Cheatsheet by ModernMech on Saturday October 14, 2017 @04:46PM (#15474191)
Could either of you expand on your stances?
Re:Coding Interview Cheatsheet by sidlls on Saturday October 14, 2017 @06:52PM (#15474759)
Accreditation in engineering is about certifying some level of competence according to the industry standards and practices. To the extent the accreditation is trusted, it means a person so accredited has already been vetted for some level of proficiency in the field.

There are plenty of CS degrees with ABET accreditation, for example. There are comparatively few for Software Engineering. The two are different disciplines. The friction in this context is that many companies wanting software engineers of varying levels of experience structure their interviews to test CS degree trivia. For whatever reason the basic competence of an accredited degree is simply ignored in the interview process.

My friends who graduated from accredited engineering programs and became Professional Engineers after don't have to prove to the satisfaction of some individual contributor that they did so by white boarding crap from their undergrad days: the certificate and accreditation is their proof.

As they gain experience, if they look for other jobs (which happens infrequently, actually: the culture of real engineer disciplines is different from computer based ones), that experience is trusted. They don't have to re-live it, so to speak, five times to five different people looking for anything to nitpick.

It's not perfect. But it makes me wonder why the CS and SE accreditations seem to have so little weight in this industry.

Re:Coding Interview Cheatsheet by Delmania on Sunday October 15, 2017 @12:03PM (#15477691)
> It's not perfect. But it makes me wonder why the CS and SE accreditations seem to have so little weight in this industry.

That's easy, you can thank people like ESR and the hacker mentality and meritocracy myths for this. I appreciate the underlying idea, which is the same in every skilled based profession, which is that self learning and good skills are more important than formal education and accreditation. However, the two are not mutually exclusive.

Re:Coding Interview Cheatsheet by kod on Saturday October 14, 2017 @09:01PM (#15475254)
I learned to program at 8. My last 15 years of professional work have been in software development. I've led teams, spoken at major conferences, made significant contributions to open source software. I have never taken a CS course for college credit.

I've been a licensed attorney for most of that time. All it required was me being willing to spend 3 years in school, then sitting in a room and writing for 3 days to pass the bar. Since then I spend one weekend a year listening to audio books for continuing legal education, and don't otherwise practice aside from minor advice at work.

Which job would you be more likely to hire me for today? It'd be borderline irresponsible to hire me as an attorney, but I've proven myself time and again as a competent programmer.

By contrast, I've interviewed people with master's degrees from reputable CS programs that couldn't explain what the Big O complexity of an array index operation was. I've known attorneys who fundamentally did not understand the purpose of their work.

Accreditation is just a measure of someone's ability to pass accreditation, not their ability to do the job.

Re:Coding Interview Cheatsheet by lr4444lr on Saturday October 14, 2017 @10:53AM (#15472404)
Can you elaborate on the interview practices for attorneys which you think are just as bad?
Re:Coding Interview Cheatsheet by barrkel on Saturday October 14, 2017 @06:41AM (#15471610)
The primary task of a developer in a modern "agile" team is to take a small bite-sized piece of functionality and alter or add code to implement it.

A very large number of job candidates aren't very good at this. So something like it needs to be tested for.

Personally, I love code. For me, an exercise like this is like whittling or molding clay, tactile and creative. I wouldn't want to work for a company that isn't interested in my craftsmanship, independent of everything else at higher levels of abstraction or closer to the business. Why? Because it will hire other people who don't care, and the code will be ugly, and it will be an eternal uphill battle to stay sane.

Re:Coding Interview Cheatsheet by pavlov on Saturday October 14, 2017 @08:00AM (#15471783)
You make the job sound rather dire. Whittling on an assembly line; the meticulous craftsman who polishes corners of industrial furniture. I’m not convinced there is much future for the kind of programming that pretends to be a guild of humble craftsmen inside industrially directed corporations.

Regardless, the coding interview process doesn’t seem to measure creativity or craftmanship. Consider industrial designers, people who actually sometimes do mold clay as part of their job. If a company is serious about hiring an industrial designer, would they administer a test like this: “You now have 45 minutes to whittle a miniature bust of Mozart out of this piece of driftwood. Make sure to talk while you’re working so I can understand your thinking.”

Re:Coding Interview Cheatsheet by barrkel on Saturday October 14, 2017 @03:59PM (#15473917)
Whittling on an assembly line

That's what modern programming is, as I see it. I mean, as you get more senior, you get more control further up the assembly line, but it's still shaped like an assembly line and ideally the programmers are replaceable, because otherwise they become a business risk.

I'm not necessarily a fan, of course. I invest myself in my work; that means I like a sense of ownership, where code is almost like a garden that grows over time. But the business will be concerned that if code is owned by people, resourcing is less flexible and, in the worst cases, individuals can become bottlenecks.

BTW, if you've seen a skilled sculptor at work, you might not be so glib about your 45 minute bust. But of course programmers are not like industrial designers; they're like the mostly unacknowledged craftsmen. Coding is closer to carpentry than architecture.

Re:Coding Interview Cheatsheet by walrus1066 on Saturday October 14, 2017 @07:28AM (#15471713)
Trouble is, this ability is very hard to test for. A test is always an isolated, well defined problem, where the solution is written in a vacuum.

But this is completely unrepresentative of the actual kind of programming tasks at work (in my experience).

Modifying the behaviour of existing code, that you didn't write, in a way that minimises technical debt, is a completely different challenge.

Re:Coding Interview Cheatsheet by flachsechs on Saturday October 14, 2017 @07:52AM (#15471762)
your argument begs the question of whether or not we can successfully test for this trait to begin with.

i don't think we can. the outsized productivity impact a good person can have far outweighs the statistical probability of getting one if you simply accept all competent interviewers, i.e. the expected value is so high that you can blindly hire until you find one, given sufficient financial resources. without the financial resources, you only hire people you already know are good, which is the general pattern i've seen over 20 years working in this industry.

Re:Coding Interview Cheatsheet by Melchizedek on Saturday October 14, 2017 @06:13AM (#15471556)
I suspect part of the cause is the prevalence of asperger-like personalities in the IT-field.

No emotionally mature adult would conduct an interview like that, unless forced to. It would be completely unacceptable in any other professional field.

Re:Coding Interview Cheatsheet by Zach_the_Lizard on Saturday October 14, 2017 @08:37AM (#15471884)
I have to conduct these interviews and it kills me inside every time.

I hated it as a candidate, but a year or two ago when I interviewed the questions were a bit easier and expectations were slightly lower.

Now with the rise of Top Coder, Leetcode, etc. many candidates have practiced problems to death and can recite almost entirely from memory complex problems.

The bar is raising all the time as a result. It's not enough to convey the idea on a whiteboard with reasonable code, maybe a semicolon missing.

Now we're more or less expecting 100% compilable code, passing suites of test cases, and sometimes even multiple problems solved in 45 minutes.

It's tailor made for coding competition contestants and crammers. And then they get on interview loops and hiring committees

I'm dreading my next job search.

Re:Coding Interview Cheatsheet by FLUX-YOU on Saturday October 14, 2017 @10:32AM (#15472318)
>The bar is raising all the time as a result.

I don't get why it would be that way. Your work's complexity isn't moving as fast as Top Coder, Leetcode, etc., so why is the interview's difficulty pinned to the difficulty on those websites?

If you guys are taking on new practices and doing more difficult things, then that makes more sense.

Re:Coding Interview Cheatsheet by seanmcdirmid on Saturday October 14, 2017 @10:50AM (#15472396)
The problem is simply filtering, it sounds like. It's like grade inflation: the better grades all around don't necessarily indicate smarter students overall, but now you have to select them at a higher bar.
Re:Coding Interview Cheatsheet by FLUX-YOU on Saturday October 14, 2017 @11:07AM (#15472476)
>now you have to select them at a higher bar.

I don't follow.

If you have an interview that reflects the daily work and challenges of your business, having a large pool of candidates able to do that work is a good thing. The only reason to peg your difficulty to some independent institution is to offload the trouble of making that technical interview. Your business isn't weird or failing if it doesn't have some percentage of candidates failing the interview.

Re:Coding Interview Cheatsheet by seanmcdirmid on Saturday October 14, 2017 @11:19AM (#15472536)
You assume that the test is directly correlated with aptitude and it simply isn't true. Finding the best candidate for the job is really just a matter of filtering out the best you can hire, all the activities in the interview are designed to filter. If people start gaming the system (e.g. By practicing interview questions) that doesn't make them more apt, it simply makes interviewing (and hence filtering) much harder.
Re:Coding Interview Cheatsheet by jedrek on Sunday October 15, 2017 @10:37AM (#15477266)
> Makes sense for the companies, of course.

It seems to select for poor candidates.

Re:Coding Interview Cheatsheet by eradicatethots on Saturday October 14, 2017 @05:52AM (#15471522)
I agree with you but I’m sure this will be flagged unless you tone it down