News for hackers. Stuff that matters.
Re:Technical interview performance is kind of arbitrary by brightball on Wednesday February 17, 2016 @02:51PM (#11120702)
With programmers, the single easiest way to identify good candidates (in my experience) is sheer interest in what they do / desire to learn. This is a learn everyday field and if you're interested in what you're doing, you're going to do a lot better at it. It's hard to apply yourself mentally to something that you don't have a good level of interest in. Given that it's a learn everyday field, people with that level of interest will realistically be able to learn anything they need to do solve the problem you're hiring them to solve.

The only real differentiating factor is your tolerance for ramp up time. I expect a programmer to be able to pick up a new language or database within a couple of weeks (tops) in most cases. If I'm hiring full time, that's something I'll tolerate. If I'm hiring a contractor, I'm going to be uneasy about paying high hourly rates for him to learn the job.

The single most effective way that I've found to interview for "interest" is to just get them talking about something they've done before and ask them to go deep into the details. You get everything you need from watching somebody talk, with a smile on their face, about how they solved some problem in a creative way that makes them show some pride. Doesn't really matter what the problem was, if it was a business problem, code problem or hardware problem. The important thing is the level of attention to detail in addressing it.

I've been using this technique for about 8 years now and while I don't make it the exclusive criteria for hiring, every person I've ever hired who has passed that part has ended up in my "great hire" category.

Re:Technical interview performance is kind of arbitrary by nvarsj on Wednesday February 17, 2016 @06:04PM (#11122279)
> The single most effective way that I've found to interview for "interest" is to just get them talking about something they've done before and ask them to go deep into the details. You get everything you need from watching somebody talk, with a smile on their face, about how they solved some problem in a creative way that makes them show some pride.

Sorry, but you are being scammed. You are selecting for sales skills, not technical skills. Read what you've written. You're judging someone based on how they presents themselves - not anything about technical ability.

I have interviewed many people who are great at doing this impassioned sales speech, but are terrible at actual engineering. And in fact, many good engineers are not good at selling themselves in this way - they have spent most of their lives deep in code, not working on their social skills like normal people.

Why not actually test them similar to what they're going to be doing? If it's a sales or advocate role at your tech consultancy, well then sure, your approach works.

Re:Technical interview performance is kind of arbitrary by jccc on Wednesday February 17, 2016 @06:24PM (#11122400)
> Sorry, but you are being scammed. You are selecting for sales skills, not technical skills. Read what you've written.

You're asking the parent commenter to set aside eight years of personal hiring experience, over which time "every person I've ever hired who has passed that part has ended up in my 'great hire' category" (assuming, that is, that you've read what he/she's written).

Can a candidate lacking the technical skills go deep into details the way the parent commenter describes?

Re:Technical interview performance is kind of arbitrary by munchbunny on Wednesday February 17, 2016 @08:01PM (#11122895)
Yup. I've seen candidates talk a deep technical game and turn out unable to write long term sustainable (well-organized) code.

Here's the fundamental asymmetry: what makes a good programmer great is their ability to build a cathedral brick by brick, alongside the architect, the other builders, despite the external circumstances, accounting for complications along the way. Ignoring the connotations of waterfall design that "cathedral" might invoke.

Building a complex system with many components takes weeks, even months, whether or not you're talking about MVP's, or service oriented architectures, and whether or not you're iterating rapidly.

A weak engineer will be fine for a few weeks, but the complexity will catch up to them. A strong engineer pushes that bar much, much further out. Possibly indefinitely.

Problem is, how do you tell that you're talking to that kind of person when you have only a few hours? It's an extremely difficult task because you must evaluate a person for a > 6 month job in under 6 hours. No matter what you do, you're going to have trouble.

Re:Technical interview performance is kind of arbitrary by jccc on Wednesday February 17, 2016 @10:59PM (#11123628)
> Can a candidate lacking the technical skills go deep into details the way the parent commenter describes?

I withdraw this somewhat rhetorical question. I should never have asked it because it's not the point (and it invites answers out of the original context that overlook "the way the parent commenter describes").

Here we have two ways of evaluating technical candidates, just two of perhaps many: One seems to be more arbitrary and unreliable than many have assumed, and the other is very time-consuming, doesn't reduce to graphable data and requires a really good interviewer.

Please just recognize that having candidates jump through technical hoops is not as solid and objective a method of evaluation as it might seem to you, and could even filter out certain kinds of great candidates. Where at all possible, please try to treat the human being under evaluation more like a human being and less like a horse.

Re:Technical interview performance is kind of arbitrary by wott on Wednesday February 17, 2016 @08:28PM (#11123008)
> Can a candidate lacking the technical skills go deep into details the way the parent commenter describes?

That's what most bosses/salesmen excel at doing everyday.

Re:Technical interview performance is kind of arbitrary by Dr_tldr on Saturday February 20, 2016 @01:38AM (#11139188)
That doesn't seem to correspond to the attitudes of salesmen vs engineers. I'm not sure what salesmen you're thinking of, but few of the people in sales I've talked to can have an in-depth discussion about how React.createClass vs Class ___ extends React.component will effect "this" context, and how super(props) pattern works in the latter. Furthermore, lots of engineers who work with any given language/framework can't explain it either, and many of them have basically been copy-pasting until stuff worked their whole career.

I've found that most people who have poor communication skills are not good engineers either* and the two might actually be related.

*Except for substack

Re:Technical interview performance is kind of arbitrary by angelbob on Wednesday February 17, 2016 @06:34PM (#11122468)
> Can a candidate lacking the technical skills go deep into details the way the parent commenter describes?

More often than you'd think, alas. I'm going by about fifteen years of personal hiring experience, for whatever that's worth.

Re:Technical interview performance is kind of arbitrary by intern4tional on Wednesday February 17, 2016 @07:44PM (#11122820)
I've seen this same thing frequently when evaluating security engineers. They often can talk the talk, but when given a simple task to perform more often than not will fail.

Coding exercises might not be a great measure, but as far as I have experienced, they are better than other items out there.

Re:Technical interview performance is kind of arbitrary by jccc on Wednesday February 17, 2016 @10:08PM (#11123405)
Do you mean that over your 15 years you've hired people more often than we'd think who later turned out to have been fooling you during the interview with their sales skills? That sounds terrible and I'm sorry to hear that.

On the other hand if you mean that you've discovered during your interviews that candidates more often that we'd think had been trying to fool you -- and that's why you didn't hire them -- well then that doesn't sound much different from the above person's eight years of experience.

I don't think anyone here would argue that there isn't a significant number of candidates for technical positions who BS about their technical skills.

Re:Technical interview performance is kind of arbitrary by angelbob on Sunday February 21, 2016 @09:43PM (#11148078)
I've hired, at several places, more than a few people who were fooling me with their sales skills. More often I work at a place where we do multiple interviews -- some "technical" in the sense that it's talking about tech, and some "technical" in the specific sense of asking a programming question with a verifiable answer (i.e. run the program, see if it works.)

Frequently people do well on the technical-not-actually-coding portions and very badly on the please-write-code portions. That is, if we didn't ask the specific coding questions, we'd be hiring people they disqualify.

At those places we less frequently hire people that just can't code -- though I've been around for that too, usually when we look at a resume and say, "oh, we don't need a coding test for him, he's been writing important code for years in a way where he couldn't hide lack of ability."

It would appear that a resume is a poor way to verify that.

Re:Technical interview performance is kind of arbitrary by brightball on Wednesday February 17, 2016 @10:51PM (#11123586)
It's not the exclusive criteria, just a part of the process that I've generally found to be associated with people who excel. We are still going to have them interview with some type of subject matter expert related to the position but all jobs are not created equal.

Positions for things like security, as another commenter mentioned, are very much experience driven. Java is another simply because it has a very high learning curve to become really adept with it. It's doable, but I'd extend the expected ramp up time to longer than 2 weeks.

There's nuance to everything. I didn't mean it to come across as if that was the only factor in hiring.

Re:Technical interview performance is kind of arbitrary by kafkaesq on Thursday February 18, 2016 @01:52PM (#11128217)
Actually it's pretty easy to sniff out "salesmanship" in the interview process. From either side, whatever the format.
Re:Technical interview performance is kind of arbitrary by jessedhillon on Wednesday February 17, 2016 @02:55PM (#11120742)
Interest is not enough, unfortunately. There are plenty of engineers who are attracted to the challenge and excitement of building new things, but have no appreciation for The Right Way to build things.

Great engineers think beyond "how" and ask the "should" questions as well. Mediocre engineers glue things together in a haphazard way with little thought about what's the best way to write things. Caring about maintainability, comprehensibility and extensibility is partially a function of experience, but I've met plenty of experienced engineers who still write bad code and design systems poorly. It has no correlation to how much of a tinkerer and curious person they are, in my experience.

Re:Technical interview performance is kind of arbitrary by muddyrivers on Wednesday February 17, 2016 @03:27PM (#11121032)
I apply almost the same approach as OP. You can get a relatively good picture at a candidate's engineering skills and thinking ability via "go[ing] deep into the details", compared to asking algorithm questions.

I also ask candidates to code on a realistic problem. It doesn't involve any "fancy" algorithms or "tricks". What I want to see are the coding style, attention to details, and of course, if the candidate is comfortable at coding.

This approach has been working well for senior candidates. It is much harder to interview new graduates.

Re:Technical interview performance is kind of arbitrary by splintercell on Wednesday February 17, 2016 @04:53PM (#11121744)
> I also ask candidates to code on a realistic problem. It doesn't involve any "fancy" algorithms or "tricks". What I want to see are the coding style, attention to details, and of course, if the candidate is comfortable at coding.

I have been reading a quora answer about why most of the developers fail FizzBuzz test and the author differentiates between Programming and Engineering and he says that programming is aimed at making the machine work, where as engineering is more about the artistic aspect of building software (which is highly dependent upon experience and tenacity to get the job done). That people wanna hire Engineers, but they test for Programmers.

This got me thinking about a common pattern I have been observing. Most of the algorithms I implement in a real world code are very basic. Most of the work I do, revolves around the fact that my code should be easily understandable to other people (and sophisticated algorithms prevent that), that people should be easily be able to modify it, repurpose it or expand it

In real world, if I ever was asked to implement FizzBuzz, I wouldn't even open my editor until I understood what is it going to be used for, what future features it will have, and what existing code will it work with. Once I understand it all, I might never write the code which most people write (or I myself write) during a fizzbuzz interview.

Maybe it's time to create a Software engineering fizz buzz rather than programming fizzbuzz.

Re:Technical interview performance is kind of arbitrary by muddyrivers on Wednesday February 17, 2016 @05:43PM (#11122139)
The current common interview practice is more like a programming contest. The candidate has to figure out a problem and finish it within ~30~35 minutes. Very competitive, but with little engineering involved.

I like the "Software engineering fizz buzz" idea. For backend engineers, I usually ask the candidate to implement a commonly used API in a language she/he is most proficient at.

Re:Technical interview performance is kind of arbitrary by splintercell on Wednesday February 17, 2016 @07:26PM (#11122736)
The way I envision "Software Engineering Test" as a 20 questions exercise.

The interviewer will give a simple user story to the user. "As a user I want to be able to add two numbers".

After the candidate implements that, "As a user I want to be able to subtract two numbers". At this point look how the candidate continues. If he implements a class Calc with two methods as Add and Subtract, then give him 5 points, if he just writes another method then zero points.

Then ask him to add multiplication functionality. If at this point he encapsulates the code as a class, good, if not then make him do that and let him choose the encapsulation(with no bonus points).

Now the point of this exercise is how good of a job does a developer do of figuring out what does the client want especially when client himself doesn't know what he wants.

Somehow once the Calculator class is implemented, the next user story is to "create an interest rate calculation method which offers different interest rate based on credit rating", the idea is the new user requirement is a client asking for to do something quite weird. You can't JUST add this method to the Calculator class. This is the point where the candidate shows how good he is in being an artist with the code.

Re:Technical interview performance is kind of arbitrary by tarsinge on Thursday February 18, 2016 @03:45AM (#11124485)
It looks like a test for how good you are at over engineering things. Making classes for data processing functions is OOP wrongly done in my opinion. Simple functions or even a lambda seems more appropriate, ability to make it simple is seems less impressive but it takes experience. Plus what if your language is functional and doesn't even have classes?
Re:Technical interview performance is kind of arbitrary by splintercell on Thursday February 18, 2016 @10:44AM (#11126529)
> It looks like a test for how good you are at over engineering things. <

Sorry I typed it all on mobile, so laziness got to me. But it seems like that you missed the point of the test by a fair margin. The test allows you to judge overengineering too. The whole idea is, give them scenarios like this, suitable to your values and business needs. Every language has abstractions, and it is the decision to figure out good abstraction vs bad abstraction vs no abstraction.

Making a calculator class is an overkill IMHO, and this is precisely why the next task is to "create an interest rate calculation method which offers different interest rate based on credit rating", the whole idea is, that here any developer worth their salt, will be separated from the chafe. Of course, you will need to help them a bit to steer in the right direction, but the test isn't about knowledge, but of their perspective.

Re:Technical interview performance is kind of arbitrary by tarsinge on Thursday February 18, 2016 @02:51PM (#11128721)
I reacted at

> If he implements a class Calc with two methods as Add and Subtract, then give him 5 points, if he just writes another method then zero points.

Sorry for misunderstanding your whole point (no sarcasm, my english is not ideal)

Re:Technical interview performance is kind of arbitrary by splintercell on Thursday February 18, 2016 @05:08PM (#11129715)
Oh I understand. What I skipped explicitly writing there is, if he writes an abstraction, and defends it well then give him 10 points, if he can't defend, give him 5 points. If he doesn't write an abstraction and defends it well, then give it 10 points, if not then 0....you get the jist.

The fundamental point is, who can best figure out the requirements of the customer, and write code which makes most sense with least amount of 'future problems'.

Re:Technical interview performance is kind of arbitrary by cmccomas on Wednesday February 17, 2016 @03:39PM (#11121162)
> I also ask candidates to code on a realistic problem. It doesn't involve any "fancy" algorithms or "tricks". What I want to see are the coding style, attention to details, and of course, if the candidate is comfortable at coding.

Do you do that on the spot or is it a "take home" assignment? I've known many solid programmers (myself included) that could code anything you want, but if you put them in a room, sit there and watch them do it, they'd freeze up. On the other hand, if you give them a project, give them a timeframe to develop it, then have them walk you through what/why they did, they would absolutely excel. It's sitting there in front of someone(s) and the expectation, that would just cause them to freeze up.

Re:Technical interview performance is kind of arbitrary by muddyrivers on Wednesday February 17, 2016 @06:03PM (#11122275)
On the spot. I fully understand that many good engineers could freeze up, myself included. That is the reason the coding question is about a realistic problem. No dynamic programming, graph theory, suffix tree, etc. Also, before the coding, I would talk to the candidates about technologies listed in their resumes. It is mostly like a talk between two engineers in a meetup or a conference, not a technical test. My intention is to build an environment that the candidates can feel like real work environment as much as possible. It also helps to bring up the candidates spirits. We are talking about something we like!

As long as the candidates get the logic flow on the solution, can write code down in well-formatted manner, pay attention to corner cases, it doesn't matter if the candidates actually complete the coding, if I think given enough time in a real work environment that the candidate has no problem in doing it.

There are some red flags I pay attention to. For example, readable code is very important to me since we work in a team and we spend more time reading code than actually writing it. Once we had a candidate. he got the coding right, but his code was very hard to read. It reminded me of some obscure C code in the past that one statement was trying to do many things so that it became very convoluted. For me, it is not "smart". It is bad engineering.

Re:Technical interview performance is kind of arbitrary by robryan on Wednesday February 17, 2016 @05:11PM (#11121880)
Yeah I do wonder what you are getting out of not doing this. If they were to somehow cheat (get someone else to do it) this would be picked up very quickly on the job and waste everyone's time including their own.
Re:Technical interview performance is kind of arbitrary by bsder on Wednesday February 17, 2016 @04:18PM (#11121485)
> I also ask candidates to code on a realistic problem.

I just ask them to bring code, and tell them we're going to talk about it.

It doesn't have to be their own (it normally is though). It doesn't have to be good code (nobody has yet brought bad code, but I wouldn't really care).

I would rather talk to somebody in their own code and language. If they can't explain it to me, then that's a data point, too.

Re:Technical interview performance is kind of arbitrary by brightball on Wednesday February 17, 2016 @03:07PM (#11120848)
Attention to detail will usually preclude someone from gluing things together like you describe though. Those are important details to account for and the type of person you're describing is more task focussed (aka - I got it done) than detail focussed (aka - I got it done right).
Re:Technical interview performance is kind of arbitrary by Nav_Panel on Wednesday February 17, 2016 @03:22PM (#11120984)
I would say this dichotomy doesn't quite capture what's being discussed. To my mind, detail focused can still result in an ugly hack of a solution, merely with all corner cases covered.

I think one possible phrase closer to the heart of things would be "aesthetically focused" as well as detail focused -- they care not only about the details of the functionality, but about the "technical beauty" of their solution.

Re:Technical interview performance is kind of arbitrary by FLUX-YOU on Wednesday February 17, 2016 @04:44PM (#11121683)
>There are plenty of engineers who are attracted to the challenge and excitement of building new things, but have no appreciation for The Right Way to build things.

It still takes a village to get to this point, which means even in the best case, we're all going to contribute some shitty code to the world because that's just the learning curve.

You can, of course, go a long time without peer review or having ever been shown a better way to do the stuff you just did.

Re:Technical interview performance is kind of arbitrary by fapjacks on Thursday February 18, 2016 @01:03PM (#11127777)
This is a very poignant observation. Interesting.
Re:Technical interview performance is kind of arbitrary by lamontcg on Wednesday February 17, 2016 @04:00PM (#11121350)
At the same time you can overdesign something based on how it 'should' be engineered to the point where you haven't shipped anything and your company is bankrupt. You need someone that can pick a decent enough pattern which can get the job done in the time allotted.

I would not hire someone that has a list of a hundred 'shoulds' which need to be met for any project to be shipped. That's a recipe for never shipping.

Re:Technical interview performance is kind of arbitrary by infinite8s on Wednesday February 17, 2016 @04:17PM (#11121474)
> I've met plenty of experienced engineers who still write bad code and design systems poorly. It has no correlation to how much of a tinkerer and curious person they are, in my experience.

Can they really be considered experienced then? Or are they basically just people who are first year engineers repeated for 5, 10, 15, etc years.

Re:Technical interview performance is kind of arbitrary by jkyle on Wednesday February 17, 2016 @03:51PM (#11121269)
> I expect a programmer to be able to pick up a new language or database within a couple of weeks (tops) in most cases.

They may be able to hack around, write a for loop, track down a bug....but you're not going to get the same caliber of work from someone who first saw python two weeks ago compared to someone whose been using the language for 5 years on real projects.

Re:Technical interview performance is kind of arbitrary by RogerL on Wednesday February 17, 2016 @04:03PM (#11121378)
So how exactly is anyone supposed to gain new experience?

I don't mean to be combative, but so many job recs and interviews expect X years of Y. How do you get that time it? You learn it, right? I didn't used to know Python, but it was obviously useful for my job. So, I installed it and learned it. I was producing useful results for my company very rapidly. Sure, a few years later my skills are more well rounded and 'pythonic', but really, so what? This is how every. single. one. of. us. learns.

My job is only interesting to the extent I am learning new things. You are only going to hire drudges if you require the applicant already know everything needed for the job. How boring. Obviously I'm not arguing for hiring a janitor to rewrite Google's deep learning from scratch; some ability is required. But picking up basic skills in a new language? Easy peasy. Nothing to it. That's our job.

Re:Technical interview performance is kind of arbitrary by deciplex on Wednesday February 17, 2016 @06:36PM (#11122478)
> So how exactly is anyone supposed to gain new experience?

By having commits on Github numbering in the middle five digits, of course! The only downside is eventually employers will move on to some other arbitrary bullshit metric, and you'll have to start over.

Re:Technical interview performance is kind of arbitrary by taneq on Wednesday February 17, 2016 @08:52PM (#11123107)
If you're good at picking things up in a hurry, the best way to gain experience in new skills is to get hired for your existing skill set, either at a very small company or (better yet) a large one with incompetent management.

In a small company, everyone wears a bunch of different hats and you will often be asked to do new things outside your official role.

In a large company with bad management, staff turnover will ensure that they regularly find themselves short on skills, at which point you can stick your hand up to pick up the slack.

Either way, if you consistently deliver the goods then they'll keep coming to you with new challenges.

Re:Technical interview performance is kind of arbitrary by avn2109 on Thursday February 18, 2016 @01:17AM (#11124020)
>> "...(better yet) a large one with incompetent management."

Luckily this is >75% of large companies, IMHE.

Re:Technical interview performance is kind of arbitrary by bsder on Wednesday February 17, 2016 @04:23PM (#11121527)
> but you're not going to get the same caliber of work from someone who first saw python two weeks ago compared to someone whose been using the language for 5 years on real projects.

Careful. You probably need to define your terms more clearly.

A CS student who knows Java (4+ years of experience) is going to turn out very different programs from a 20 year veteran of Erlang who is just learning Java.

Even with bad Java idioms, the veteran is very likely to be turning out much better code because he is thinking about the underlying architectural issues (failure modes, recovery, concurrency) with far more experience.

Yeah, I watched this play out in real time when I paired them. It was actually really enlightening and entertaining.

I also found out I didn't know as much about either Java or Erlang as I thought I did.

Re:Technical interview performance is kind of arbitrary by deangiberson on Wednesday February 17, 2016 @04:43PM (#11121680)
"Even with bad Java idioms, the veteran is very likely to be turning out much better code because he is thinking about the underlying architectural issues (failure modes, recovery, concurrency) with far more experience."

Careful with that assumption. While there may be instances where this is true, I've met many veterans that couldn't think outside the small specialty they had become locked into.

Idioms are powerful in that the shape how you think about a solution within a fixed language. They shape your thinking and the shape of your thinking changes what solutions you can conceive of. A veteran that shows interest in a broad range of topics will have more failure experience and will be able to offer better results.

Re:Technical interview performance is kind of arbitrary by girvo on Wednesday February 17, 2016 @09:44PM (#11123306)
> I've met many veterans that couldn't think outside the small specialty they had become locked into.

It's the difference between 10 years of experience, and 1 year of experience repeated 10 times

Re:Technical interview performance is kind of arbitrary by blackflame7000 on Wednesday February 17, 2016 @05:45PM (#11122157)
I too have found this assumption to not always be the case. At my company there are certainly some people who qualify as vets yet insist on writing purely procedural C style code and have yet to adopt modern paradigms like OO design simply because they are so far removed from their education.
Re:Technical interview performance is kind of arbitrary by Can_Not on Saturday February 20, 2016 @01:48PM (#11141301)
To be fair, they might be on to something. I've programmed my whole life in OO and recently started looking into FP. I can see the veterans thinking that OO is a fad after seeing things like BeanFactoryFactoryFactory (I personally do not program in Java and have never encountered the use case for a "Factory", and as such do not know what the use case is). After that, what value do you get to adding the functions to structs? I personally see the value, but I also see the value in not doing that. I would recommend teaching them OO while yourself should study FP and criticisms of OO. After them, it may be easier to evaluate which is better for your use case. It sounds like the vets have already cornered you out of OO, but you also definitely don't want to force the wrong tool onto a project just because it's the tool you understand best.
Re:Technical interview performance is kind of arbitrary by bicknergseng on Wednesday February 17, 2016 @06:04PM (#11122280)
This makes me think of that study[1] about doctors being away on conferences. I think it likely comes down to recognizing that experience rarely, if ever, trumps solid analytical thinking.

[1]http://archinte.jamanetwork.com/article.aspx?articleid=20389...

Re:Technical interview performance is kind of arbitrary by jkyle on Thursday February 18, 2016 @01:05PM (#11127788)
> A CS student who knows Java (4+ years of experience) is going to turn out very different programs from a 20 year veteran of Erlang who is just learning Java.

Perhaps. But I would take contention with a CS student claiming 4+ years "experience" with Java unless they were referring to something outside of class work.

When filling a position though, you're usually not comparing "was handed my degree yesterday" candidates with 20 year veterans. . . they're demanding much different compensation and degrees of responsibility.

A more apt comparison of my point would be a 20 year veteran of of Erlang who says "oh, yeah, I can pick Java up. Never seen it, but it'll just take me a couple of weeks." is not, in any way, going to produce the same quality code as a 20 year veteran of Java of relatively comparable experience and general skill.

Re:Technical interview performance is kind of arbitrary by deciplex on Wednesday February 17, 2016 @06:41PM (#11122504)
Why didn't you just write this:

> A CS student is going to turn out very different programs from a 20 year veteran.

Re:Technical interview performance is kind of arbitrary by laxatives on Wednesday February 17, 2016 @10:33PM (#11123520)
Because its so obvious no one cares.
Re:Technical interview performance is kind of arbitrary by deciplex on Wednesday February 17, 2016 @10:48PM (#11123581)
Exactly my point. Adding additional information can't possibly make it less obvious.
Re:Technical interview performance is kind of arbitrary by Retric on Wednesday February 17, 2016 @04:30PM (#11121575)
That's far less true than you might assume.

I have seen a company pay someone 100$/hour to learn a new language as part of a 6 month contract. They were producing better code than the company's staff within 3 weeks and finished the project ahead of time.

Granted, he was an EE not a software developer. But, deep knowledge of a platform is often more dangerous than helpful. The surface layer tends to be the least buggy parts of most systems.

PS: I wish more people heard "Let's use reflection!" as "Let's use regular expressions!" for similar reasons. Yes, it can help, but you can also dig a ditch using grenades...

Re:Technical interview performance is kind of arbitrary by acveilleux on Wednesday February 17, 2016 @05:48PM (#11122170)
I hear "Let's use reflection!" as "It's time to find something else to work on!" Outside of writing developer tools or unit test frameworks, I can't think of a worse code smell. It's a klaxons blaring, we're doomed kinda thing.

Everytime I've seen it used, it turned into a quagmire of subtle regressions, strange effects at a distance and extremely brittle code.

I think the best pattern there are:

1. Thou shalt never write code that uses reflection on its own code base.

2. Thou shalt never use reflection unless all other options have been proven worse.

Which leaves mostly unit test frameworks for some reason...

Re:Technical interview performance is kind of arbitrary by fennecfoxen on Wednesday February 17, 2016 @07:50PM (#11122843)
I hear "Let's use reflection!" as "My language's tools for code reuse are hard to use and ineffective in practice, so I'm going to put annotations everywhere and use reflection instead! It'll be ten times harder to understand the code than it would have been with a little metaprogramming!"

But then, my opinion may be unduly influenced by Java vs Ruby.

Re:Technical interview performance is kind of arbitrary by tdeck on Wednesday February 17, 2016 @10:29PM (#11123505)
Unfortunately you practically have to use reflection for certain things if you work in Go, although the language authors have tried to discourage it by making the APIs absolutely awful.
Re:Technical interview performance is kind of arbitrary by georgemcbay on Wednesday February 17, 2016 @04:59PM (#11121783)
I don't disagree with the idea that becoming truly skilled in a language is more than a couple of weeks of work even for a great programmer, but more often than not you don't quite need that caliber of work from them right away.

Most job fills aren't going to be putting the new employee in charge of "greenfielding" the architecture of a brand new app, they'll be doing maintenance or build-out of an existing codebase, giving them plenty of time to ramp up on the fine details of a language while still being productive working with the existing code.

Re:Technical interview performance is kind of arbitrary by illicium on Wednesday February 17, 2016 @04:01PM (#11121357)
There's more to being a productive programmer than knowing the semantics of a language.

Someone who has been programming for a while but is learning a new language will have a ramp-up period when their code is ugly or unidiomatic, and they will take longer to write it, but it will capture the correct algorithms and abstractions. Compare that to someone who is inexperienced and writes a pile of exponential-time spaghetti that is slow and unmaintainable in any language.

Re:Technical interview performance is kind of arbitrary by RogerL on Wednesday February 17, 2016 @04:05PM (#11121394)
Yes, and code reviews and other mature practices will get the person over that hump very quickly. Anyone can point you to the 'PEP8' of your language of choice.
Re:Technical interview performance is kind of arbitrary by seanwilson on Wednesday February 17, 2016 @04:02PM (#11121371)
> They may be able to hack around, write a for loop, track down a bug....but you're not going to get the same caliber of work from someone who first saw python two weeks ago compared to someone whose been using the language for 5 years on real projects.

From the opposite side of things, someone who's only been using the same tools for 5 years is probably going to struggle picking up new tools. For the projects I work on, it's rare to use the same languages and tools for every project. I'd rather have someone that understands how to write good code in general and knows multiple programming paradigms instead of someone claiming to be a guru in a single language.

If someone knows Java and JavaScript well for example, is it really going to take them more than a few weeks to be productive in Python (especially if you have someone on the team helping with picking the appropriate libraries to use)?

Re:Technical interview performance is kind of arbitrary by nv-vn on Wednesday February 17, 2016 @04:09PM (#11121435)
I think his point is more that someone who's been exposed to a language for years but isn't interested is going to pay off much less in the long run than someone who's using it for the first time but enjoys learning. The reason he mentioned a few weeks of training for the language meant that they would be able to start making changes within a few weeks and be making major contributions by a few months. The fact that their first month or so may be relatively unproductive is less of a concern if they're constantly getting better and better. That said, a few weeks of training plus exposure to a large codebase in a language should be enough for even the short term unless they're trying to learn a whole new paradigm or some huge frameworks/libraries.
Re:Technical interview performance is kind of arbitrary by muddyrivers on Thursday February 18, 2016 @01:29AM (#11124056)
I would like to add that interviewing requires quite different skills from engineering. A good tech interviewer has to be a good engineer, but a good engineer might not be a good interviewer. I have seen good engineers with poor ability to read people, with strong bias of "curse of knowledge". They are more likely to fall for saleperson-typed candidates.

Therefore, a hiring manager should have the ability to tell which engineers are good interviewers, and give more weights to their opinions. Pay extra attention to those interviewers who is more of a big talker and less of a listener, if you have to ask him/her to interview. If one can't be a good listener to his/her teammates, I can't imagine he/she would listen to and observe a stranger with any substantial effort. Unless he/she is a genius in reading people, his/her feedback can be mostly ignored.

Re:Technical interview performance is kind of arbitrary by jchendy on Wednesday February 17, 2016 @03:20PM (#11120967)
As somebody who's terrible at monologuing, this scares me.
Re:Technical interview performance is kind of arbitrary by NDizzle on Wednesday February 17, 2016 @03:29PM (#11121049)
It shouldn't be a monologue - it should be a discussion.
Re:Technical interview performance is kind of arbitrary by sandworm101 on Wednesday February 17, 2016 @04:06PM (#11121404)
It's only a discussion if the person conducting the interview has some concept of what they ask. I've been to several interviews over the years where the HR person asked questions without any understanding, questions they were obviously handed by bosses. They then hurry to write down your every word of the response, the plan being to google key terms later rather than admit ignorance now.

I had a HR interview team recently ask me about a particular rule governing the admission of evidence in administrative or arbiter proceedings. I started by asking whether they wanted me to explain admission generally or specifically how it differed between the two.... total blank faces. I asked whether I should first explain relevance ... they all nodded.

"Explain it as you would explain it to your students."

"That's at least a three hour lecture."

"Ok, can you do a 10 minute version?"

"Yup."

Re:Technical interview performance is kind of arbitrary by paulddraper on Wednesday February 17, 2016 @10:59PM (#11123625)
Interest is not sufficient.

People who have natural abilities chronically underestimate their effects. Some, regardless of interests, will always struggle more with certain physical or mental tasks.

Interest is important, but ignoring ability is not the right way to interview.