News for hackers. Stuff that matters.
Re:Lessons from 3,000 technical interviews by moxious on Wednesday December 28, 2016 @04:06PM (#13273642)
> Unfortunately, demonstrating intellectual curiosity often takes up personal time, so someone with heavy personal time obligations and a non-challenging day job is at a significant disadvantage.

This is true, and one of the things that tends to stack disadvantages against people who are older in the industry. There's a good correlation between free time and age in some ways, as people get to mid-career they tend to marry, have kids, and so on. Maximum free time comes during college and immediately after, for many people.

Valuing intellectual curiosity also tends to mean that this curiosity is valued over direct experience, which is what the older more time-strapped people have to offer relative to younger people who are doing the MOOCs.

Re:Lessons from 3,000 technical interviews by derefr on Wednesday December 28, 2016 @04:34PM (#13273868)
It'd be nice if we had on hand a lemma that stated that intellectual curiosity, once "proven" as a property of one phase of a person's life, will remain as a property of that person in all later phases, even if the indicator signal for it disappears. Then we could just look for people who look like they once were intellectually curious (perhaps in college) and then hire them on the basis that they'll be able to pick it right back up if given the time and the motivation.

Of course, nobody has ever done any experimentation to prove such a hypothesis so that it could be used as a lemma.

I often wish there was some sort of prediction market of I/O-psychology hypotheses that you could just throw a random prediction onto. The stakes on the most contentious results would then prompt the investors to leverage their bets with research organizations into grant-funding to study those questions.

Re:Lessons from 3,000 technical interviews by moxious on Wednesday December 28, 2016 @05:48PM (#13274350)
It would be nice, but I think we'd be hard-pressed to ever agree on what intellectual curiosity even is. It's one of those "I know it when I see it" things. I could evaluate whether a person has it (to my standard) but would someone else accept my call, 5 years later, for their company?
Re:Lessons from 3,000 technical interviews by nine_k on Wednesday December 28, 2016 @07:50PM (#13274943)
A proxy might be "did you study something non-trivial, without your work forcing you to, in last 1-2 years?"
Re:Lessons from 3,000 technical interviews by collyw on Thursday December 29, 2016 @04:36AM (#13276470)
I start a lot of things like that (currently trying to learn Rust). A lot of the time other things take over in my spare time and I never actually get anywhere. Having a job where you can put consistent practice into new technologies makes a big difference. I week at work is probably equal to more than a month of my spare time.
Re:Lessons from 3,000 technical interviews by fecak on Wednesday December 28, 2016 @04:24PM (#13273804)
I see this pattern time and time again in both my recruiting work and in my resume business. Someone gets a rather non-challenging job that pays market rate or better, starts a family, pays little attention to any tech outside their day job, and suddenly finds that their marketability outside the current job has suffered greatly.

As developers get older, they need to be conscious of the relevance of their work in regards to current trends, and if the day job is largely irrelevant they may need to find access to projects (often unpaid) that will serve to impress new employers.

I don't think that the value of experience has truly diminished, but I think what is now classified as 'experience' may have shifted a bit.

Re:Lessons from 3,000 technical interviews by hcatlin on Wednesday December 28, 2016 @04:34PM (#13273866)
I'm sure this happens, yes. But, that's not what's going on here, IMHO.

Asking a person to traverse and modify a linked-list (a very common problem) or to implement a B-tree are not 'tech outside their job'

Most of these interviews are more like math problems than anything a practical developer would encounter.

Shit, if these interviews were "What do you think of node?" or "What is Go's concurrency model?" I think experienced people would do fine.

Re:Lessons from 3,000 technical interviews by ashwinaj on Wednesday December 28, 2016 @05:03PM (#13274071)
> Asking a person to traverse and modify a linked-list (a very common problem) or to implement a B-tree are not 'tech outside their job'

No. No one in their daily jobs implements a linked list or B-Tree. There are predefined libraries in the languages or a user created library that people use. Do you really think every person in the company has his/her own version of a linked list in the same code base? This is a fallacy perpetuated time and again. (I'm not against these type of questions, but they don't represent someone's true ability)

Building a product, app, project requires application of this knowledge: eg., I need to design a distributed data store, should I use hash map? What about collisions? Should the collisions be resolved by chaining (linked List) or another map? What kind of data am I storing? Can that be exploited to make this more efficient, synchronization of data across nodes (?), etc..

Many of these interviews completely overlook someone's design ability and harp on some straightforward (and some obscure) topics which IMO has little to no co-relation to someone's ability as a software engineer.

Re:Lessons from 3,000 technical interviews by thecrazyone on Thursday December 29, 2016 @03:49AM (#13276349)
this, so this.

Why is everyone stuck on getting someone to reinvent the wheel as against getting him to use the said wheel and get things done.

I find the processes in a large company rather robotic (note: we're a startup, so my views might be biased).

Re:Lessons from 3,000 technical interviews by RandomOpinion on Thursday December 29, 2016 @10:26AM (#13277739)
>Why is everyone stuck on getting someone to reinvent the wheel as against getting him to use the said wheel and get things done.

A person who can only use a pre-made wheel is a technician (regardless of how ostentatious their job title may be).

A person who can invent the wheel on demand can also usually invent any other type of rolling mechanism one might encounter a need for and that makes that person a full-fledged engineer.

No value judgement of either person is implied; it's simply a statement of capability. Which type of person is needed depends on the company and the position but it is becoming increasingly clear that the two roles in software are separate, just as they are in other engineering disciplines.

Re:Lessons from 3,000 technical interviews by mathgenius on Thursday December 29, 2016 @03:21AM (#13276266)
> No one in their daily jobs implements a linked list or B-Tree.

Counter case: HFT. Those guys really do implement this stuff. Again and again.

Re:Lessons from 3,000 technical interviews by Terr_ on Thursday December 29, 2016 @03:52AM (#13276356)
Which is why it's an outlier.
Re:Lessons from 3,000 technical interviews by ubernostrum on Wednesday December 28, 2016 @05:13PM (#13274136)
Asking a person to traverse and modify a linked-list (a very common problem) or to implement a B-tree are not 'tech outside their job'

Yes, it is.

More to the point, it's built-in bias toward recent college graduates. Once someone's actually been out in the real world programming for several years, any space in their brain's metaphorical working set that was ever dedicated to remembering how to do this stuff has long since been paged out in favor of the actual day-to-day knowledge they need to do their job. Implementing basic data structures and algorithms is not part of what they need to do their job; that stuff's already provided by the platforms they use.

So when you get to the interview, if you just put someone on the spot and ask them to do one of these things, you're inherently biasing toward an inexperienced recent college graduate who will have this stuff close to the top of their head (on account of having just done it in school and not yet swapped it out of working memory through time on the job).

Which is in turn why there are now books you study -- as an already-qualified programmer -- in order to freshen your memory and ability to quickly regurgitate problems that have nothing whatsoever to do with your day-to-day work, in order to be able to perform them on command in interviews.

Re:Lessons from 3,000 technical interviews by aswanson on Wednesday December 28, 2016 @06:00PM (#13274421)
Right, as a metaphor, I'd almost compare it to grading a novelist or writer's grammatical knowledge of parts of speech and sentence structure rather than their ability to write a book or compelling article.
Re:Lessons from 3,000 technical interviews by ktRolster on Wednesday December 28, 2016 @05:49PM (#13274351)
I'll be honest, traversing a linked-list and implemented a B-tree (assuming someone reminds you what a B-tree is) are not particularly difficult problems. If you have trouble with those, I'm going to really wonder if your programming skills are really very good to begin with.
Re:Lessons from 3,000 technical interviews by ubernostrum on Wednesday December 28, 2016 @06:03PM (#13274438)
Those are bad examples, but real interview questions tend to be "implement from scratch, live and without reference to any materials, these things you've forgotten about because you could take them for granted for such a long time".

Also these days the trendy interview problem is longest common subsequence, which ends up testing "how recently did you review dynamic-programming techniques", not "can you code".

Re:Lessons from 3,000 technical interviews by richmarr on Wednesday December 28, 2016 @06:34PM (#13274620)
> I'll be honest, traversing a linked-list and implemented a B-tree (assuming someone reminds you what a B-tree is) are not particularly difficult problems

I'll be honest, this is indistinguishable from "I am good at X and I'm great therefore X is a good measure of ability".

Maybe worth rephrasing

Re:Lessons from 3,000 technical interviews by graffic on Wednesday December 28, 2016 @08:12PM (#13275025)
They're not particularly difficult. You usually take the algorithm definition and implement one, as you did in the university or in the Coursera algorithms course. Fun, you might learn a thing or two about the language you're using.

If the point of the exercise is a TRIVIA question, leave the interview. On the other hand, if the point of the exercise is not to get the right solution but see how you think and how you use basic programming blocks, then you're in the right place.

I've used the linked list question. And the goal is not for me to check if it is "not difficult" for you. Because I might not be able to teach you what a linked list is in 5 minutes while you're nervous in a technical interview. But to work on technical problems and see the following:

- Can you speak your mind so your peers know what are you doing?

- Will you ask for help?

- Will you accept help and feedback?

- Can we have a discussion about something that there are many "right answers"?

- Do you know the basic building blocks of the language you decided to use? <-- This plus javascript plus references is very funny.

Re:Lessons from 3,000 technical interviews by richmarr on Thursday December 29, 2016 @05:04AM (#13276551)
You refer to the interviewers as 'peers' but that's very much not the relationship that exists in an interviewer. The context is different, therefore the behaviour is different.

What you're describing is a confidence bias filter, dressed as an objective test.

Re:Lessons from 3,000 technical interviews by Terr_ on Thursday December 29, 2016 @03:58AM (#13276376)
Individually, with minor refreshing-study, perhaps no.

But in practice it's merely one of hundreds of things that might get instantly sprung on you as you stand before a whiteboard. In addition, developers with actual jobs can't stay in a continuous cycle of "exam cram" to the same extent that unemployed recent graduates can.

Re:Lessons from 3,000 technical interviews by Apocryphon on Wednesday December 28, 2016 @06:47PM (#13274676)
Traversing is a linked list is far simpler than implementing a B-tree.
Re:Lessons from 3,000 technical interviews by VLM on Wednesday December 28, 2016 @05:55PM (#13274384)
The problem is its possible to run a B-tree implementation and see if the unit tests pass or non-technical interviewers can compare the official solution to what the candidate is talking about fairly easily.

I've never used Go, don't really plan to unless I have to, nothing wrong with it just not my area of expertise and I'm busy with other toys although I'm sure its a very nice language, and if I went up against a non-technical or technically weak interviewer (aka almost all of them) I could probably BS my way thru based on what I do know about concurrency in general. Although after decades of experience, the reason why I'm not still programming in 6502/Z80 assembler is I'm good at that whole "BS my way thru till I'm an actual expert" thing, so maybe I'm talking myself into agreeing for non obvious reason!

BSing skill is under-rated. If you can't BS your way thru something that you don't entirely understand (because you're lazy), then when you're at the cutting edge developing or debugging you'll have trouble BSing about stuff that no one on the planet understands. Not all the worlds problems have a stack overflow question or a script reader at a support hotline, and how you deal with that gut check says a lot.

Re:Lessons from 3,000 technical interviews by collyw on Thursday December 29, 2016 @04:44AM (#13276493)
Actually BSing in tech makes you look very poor if you don't come out with a convincing answer.

(I listened to a training video given by a Marketing Cloud consultancy at my work. Someone asked "what is FTP" after seeing that as an option to upload files. Lots waffle including "the cloud" and no actual answer. The person asking the question was no wiser, and my opinion of the consultant went way down).

Re:Lessons from 3,000 technical interviews by fecak on Wednesday December 28, 2016 @04:41PM (#13273926)
I think my words may have been clumsy. My reference to "tech outside their job" was meant more about having relevant skills to a current job market (marketability), not the interview itself.
Re:Lessons from 3,000 technical interviews by graffic on Wednesday December 28, 2016 @08:23PM (#13275065)
That's a problem with... "people looking for shiny things". There are many shiny things, and they loose their shine quite fast.

It is true that many managers, recruiting agencies (almost 100%), and HR, will look for the keywords of the technologies the company is using. So if they use the new Angular 4, they will look for that.

But there are companies that look for the basics: do you know javascript? Have you worked with SPAs? And these are the ones that IMHO deserve your time to apply.

Because tomorrow, today's current trends will be tomorrow's trends. Companies looking for people that can adapt say a lot about what kind of work place will you find there.

Re:Lessons from 3,000 technical interviews by collyw on Thursday December 29, 2016 @04:55AM (#13276521)
One thing that annoys me at present is NoSQL experience (or similar).

I know enough about relational databases and NoSQL to know that unless you have a specific use case, relational is likely a better choice. If you are not scaling beyond one server, and want to view your data from different angles its almost certainly a better choice. As such I haven't really got a great deal of NoSQL experience. I will build a better application than someone who does resume driven development, but won't get past many HR drones.

Re:Lessons from 3,000 technical interviews by EdHominem on Thursday December 29, 2016 @04:45PM (#13280411)
Interestingly, one of my 'no' signals is people relying on a DB to do the work for them. Don't know how to index this? Shove it in the DB and query it back.

If you don't have a relational query in mind a relational DB is a bad fit, or at least premature optimization.

Re:Lessons from 3,000 technical interviews by collyw on Friday December 30, 2016 @11:44AM (#13285280)
I am not quite sure what you mean with your comment, as "relying on a DB to do the work for them" sound like a good thing to me. Its usually way faster than doing stuff in the application code, and the declarative nature of SQL usually means less bugs.
Re:Lessons from 3,000 technical interviews by EdHominem on Monday January 02, 2017 @01:54PM (#13303405)
> I am not quite sure what you mean with your comment, as "relying on a DB to do the work for them"

Maybe "to do the thinking for them" would be more accurate.

> sound like a good thing to me.

You did what they do - you assumed based on some your usual workloads that a DB and the overhead of using another language, and a non-compile-time checked language, with poor integration (type mismatch), is the solution for the problem I'm working on.

What I expect them to do is ask questions. How many values are there? Are they complex types or something that would map to tables well? What are the querying requirements? Are there any relational elements to the data?

> Its usually way faster than doing stuff in the application code

If shoving things across two sets of pipes, to a general-purpose app not tuned to your workload, is faster - you're writing your main app incorrectly.

> the declarative nature of SQL usually means less bugs.

A declarative language usually means less bugs. But adding a second mismatched language usually means more. Especially when it comes with a whole new system that takes experts to properly tweak.

Re:Lessons from 3,000 technical interviews by cookiecaper on Wednesday December 28, 2016 @04:47PM (#13273964)
I don't think curiosity diminishes with age, even if the ability to explore that curiosity may. You can still talk to someone and find out if they are interested in experimental technologies, what they choose to tinker with in the limited discretionary time they have, and so on. You can ask about their opinion on new technical developments and whether they follow any trade publications or forums and the coolest things they've found from those places in the last few months.

Since for programmers at least, such information is not hard-separated from the course of their normal work, they will usually have the opportunity, if interested, to be at least partially informed about such things and have some sense of the overarching zeitgeist. For instance, a C# developer would be fully justified in reading about the changes slated for the next iteration of C# during his/her day job, especially as that iteration neared and achieved release.

On top of this, professional engagement and awareness IS something that deserves out-of-work nurture time, even when you have a family or other demanding non-work obligations. You don't have to have an impressive free time project like a hand-built CPU, but expecting someone to put in a few hours a month to tinker, learn, or explore new things related to their field is not unreasonably demanding IMO, even for experienced/busy professionals.

Obviously "participated in a MOOC [Massive Open Online Course, btw, for those curious]" may indicate curiosity (though it may also indicate someone trying to short-circuit their lack of skill by gaining Yet Another Credential to ride off), but it's far from the only signal.

The best employee is an experienced person who has retained their intellectual curiosity, even if they don't have the time to fully exploit it.

Re:Lessons from 3,000 technical interviews by fecak on Wednesday December 28, 2016 @05:17PM (#13274164)
> I don't think curiosity diminishes with age, even if the ability to explore that curiosity may.

Anecdotally I'd assume that intellectual curiosity often increases with age, although that might be attributed to the availability of learning materials now compared to years ago. Some people here on HN would likely be shocked as to how many people in the industry consume almost zero content outside of what is necessary for their jobs.

Re:Lessons from 3,000 technical interviews by morgante on Thursday December 29, 2016 @12:18AM (#13275763)
> Some people here on HN would likely be shocked as to how many people in the industry consume almost zero content outside of what is necessary for their jobs.

Seriously. People significantly underestimate how much better the average HN user is than the average developer.

The median software developer sees programming as just a job and spends absolutely no time on developing their experience outside of work.

Re:Lessons from 3,000 technical interviews by moxious on Wednesday December 28, 2016 @05:50PM (#13274360)
> I don't think curiosity diminishes with age, even if the ability to explore that curiosity may

I think it definitely does, depending on the person. Many, many attributes of the person change over time. That's what growth and evolution is about!

Some people take a career path where they become expert at a narrow topic. As they master their field, I think they lose a lot of curiosity because there's simply less to be curious about unless they're on the forefront of research and not just a practitioner.

Other people simply develop other life priorities.

It's 100% an individual thing.