Live data from Hacker News

Today's Coding Interview Game

shubharamani.com

91–100 of 127 posts

Re: Today's Coding Interview Game

#91
post #90
post #82

Earlier quoted context omitted.

I agree, though I think, perhaps, the author has a point about something. It's one thing to be asked to write code on the whiteboard for a practical problem. During the interview process for my current employer, I was asked to sketch out a database design for a given application, including actually writing out some of the SQL to generate the tables, constraints, etc. I was then asked to write queries to pull reports…

It's often hard to ask relevant questions that will fit into the time allotted for an interview. Your DB schema example is a good one - it shows that the candidate can design (and to a lesser extent, implement) an application. Your example (I'm assuming) is missing strong algorithmic problem solving however. It would be good to have an additional question to test this kind of knowledge. It's also important to realize…

Good points, but, how many interviewers would severely penalize someone for not even knowing what a binary tree was? I think explaining the tree and asking for an implementation could be a fair question, but only if the question assumes that the implementation is the important bit.

Re: Today's Coding Interview Game

#92
post #66
post #23

Earlier quoted context omitted.

Well I know that I've solved a few problems in my time: like developing a multi-threaded distributed object-oriented control system, implementing a JPEG2000 encoder, a convolutional neural net, as well as solving a number of debugging problems that escaped my colleagues. I also know I failed miserably at a trivial coding task in an interview. So I don't know. If I'm the only one who has that kind of problem, maybe my…

How trivial? What was the task, then? And what where the conditions? Were you required to remember some nitty details? In an interview, you can fail in almost anything, depending on how nervous you are.

The problem was: given the following prototype implement the function

  void move( char** colNames, int toColumn, int fromColumn );
The function should move the column name at index fromColumn to the position toColumn. (It does not swap the columns.)

Now I just spent 43 min implementing this with a compiler and some trial and error.

During the interview I was expected to do it with pen and paper.

Now my IQ is above the 99th percentile but apparently there are people who can do this sort of thing in their head without errors and that's what some interviewers appear to be looking for. That's why this post hit home for me, though personally I probably wouldn't have had much trouble with linked lists.

Re: Today's Coding Interview Game

#93
post #91
post #90

Earlier quoted context omitted.

It's often hard to ask relevant questions that will fit into the time allotted for an interview. Your DB schema example is a good one - it shows that the candidate can design (and to a lesser extent, implement) an application. Your example (I'm assuming) is missing strong algorithmic problem solving however. It would be good to have an additional question to test this kind of knowledge. It's also important to realize…

Good points, but, how many interviewers would severely penalize someone for not even knowing what a binary tree was? I think explaining the tree and asking for an implementation could be a fair question, but only if the question assumes that the implementation is the important bit.

Also a good point. I'd be surprised if a programmer didn't know what a binary tree was and would certainly consider it a warning sign. I would assume that, given a description, they probably wouldn't be able to code one (or code much of anything). However I'm willing to be proven wrong and if they were able to implement one I would be pleasantly surprised.

Of course, I can only speak for myself. I'm sure many programmers would immediately write them off.

Re: Today's Coding Interview Game

#94
post #26

I worry a lot about this. I don't think it's distrust so much as thoughtlessness. From what I can tell, Google (and other companies) started using these kinds of questions as a way to cheaply filter sudden floods of applicants, not because this is the way to find the greatest geniuses of our time. Policies implemented under the gun have two unfortunate properties: they are wasteful and hard to change after the fact.…

Thoughtful comment, but there's a practical problem with your last point: how can YOU (as a hiring manager at this "some smarter company") effectively filter through the enormous set of screened-out candidates that Google rejected and find those productive, creative misfits that you want to interview/hire out of the teeming throng of vocational misfits? Of the people actively applying for jobs at any given point in t…

Remember the goal is to find high quality candidates not shift though all of the incoming resumes. So if you have 2 open positions and 10,000 resumes just stop when you find enough high quality candidates.

Re: Today's Coding Interview Game

#95
post #4

Earlier quoted context omitted.

They'd rather reject 95% of the qualified people and 99.9% of the unqualified people rather than 94% qualified and 99.5% unqualified. And then they complain that they can't hire developers. I don't think these types of interviews are well conceived. Human memory is extremely context dependent and a whiteboard/interview type situation doesn't establish the right context for someone who's accustomed to working alone wi…

> Also the more knowledge you have the more difficult it becomes to retrieve that knowledge quickly. I've never heard this about the human brain before. I'm not saying you're wrong, because I don't know, but statements of fact like this deserve a good reference. Do you have anything to back up this assertion of fact?

[deleted]

Re: Today's Coding Interview Game

#96
post #4

Earlier quoted context omitted.

They'd rather reject 95% of the qualified people and 99.9% of the unqualified people rather than 94% qualified and 99.5% unqualified. And then they complain that they can't hire developers. I don't think these types of interviews are well conceived. Human memory is extremely context dependent and a whiteboard/interview type situation doesn't establish the right context for someone who's accustomed to working alone wi…

> Also the more knowledge you have the more difficult it becomes to retrieve that knowledge quickly. I've never heard this about the human brain before. I'm not saying you're wrong, because I don't know, but statements of fact like this deserve a good reference. Do you have anything to back up this assertion of fact?

Actually I intended that statement more as an hypothesis/conjecture than as a statement of fact.

It does agree with my own introspective observations. If I have seen many different approaches to solving a certain class of problems and I'm presented with a problem which shares features of that class I'm going to have to spend time trying to figure out which of those approaches is most appropriate to the problem and circumstances. If I've only ever seen one approach to that type of problem then the initial phase of the solution space search is simplified and I can immediately begin to try to adapt that one approach to the particular problem. An example might be solving a max flow problem. There are graph based and linear programming based approaches to that problem. If you're only aware of the graph based approaches then you won't lose time trying to figure out which of the two approaches is most appropriate for the problem you're facing.

Of course if you're confronted with hard real world problems then having more knowledge increases the likelihood that you will be able to find a solution. That may not apply however to artificial interview questions in a time constrained context.

Re: Today's Coding Interview Game

#98
post #7

I understand where the author is coming from because many interviews questions are unreasonable and test absolutely nothing. However, if someone couldn't code a linked list on a whiteboard, I'd be severely worried. Same goes for a binary tree. If you know what a linked list or binary tree is, you should have no issues figuring out how to represent them with code in 10 minutes. The other trickier problems are there to…

Code on the whiteboard is counterproductive at best. Let's hook up your laptop to the projector so I can get a glimpse of how you interact with your computer. I learn more about you by seeing your relationship with your text editor, how you look up information you can't remember, etc. Not watching you sweat with a marker in your hand.

My laptop is for reading email and surfing the web in hotel rooms. Occasionally I program on it when I don't have a choice, but I'm far less productive than on my regular workstation, both because of the ergonomic problems and because I haven't invested the time to set up all my usual software the way I like it. (Am I a dinosaur? Does everyone else have a laptop as his primary machine these days?)

Re: Today's Coding Interview Game

#99
post #26

I worry a lot about this. I don't think it's distrust so much as thoughtlessness. From what I can tell, Google (and other companies) started using these kinds of questions as a way to cheaply filter sudden floods of applicants, not because this is the way to find the greatest geniuses of our time. Policies implemented under the gun have two unfortunate properties: they are wasteful and hard to change after the fact.…

Thoughtful comment, but there's a practical problem with your last point: how can YOU (as a hiring manager at this "some smarter company") effectively filter through the enormous set of screened-out candidates that Google rejected and find those productive, creative misfits that you want to interview/hire out of the teeming throng of vocational misfits? Of the people actively applying for jobs at any given point in t…

If I were looking to hire a developer I would do the following :

1) Select a set of candidates based on their resumes making the assumption at this point that their resumes are honest. Good candidates should have at least worked on some interesting projects so their resumes should look interesting. Most lame candidates wouldn't even be able to invent a credible interesting project.

2) Do phone interviews where I would ask knowledge based (ie not problem solving based) questions related to their resumes. The goal here is mainly to filter out fake/exaggerated resumes.

3) Invite the selected candidates to give a presentation on a topic of their choice related to work they've done that is at least marginally relevant to the job. I think you can learn a lot about someone by seeing how they present their work and respond to questions (though it doesn't tell you if they're good coders, that's for the next step). The presentations could probably be done remotely.

4) Hire the selected candidates for short-term contract work. Set things up so they can work remotely. Assign them real tasks that you would expect them to perform in the job.

Make final selection based on evaluation of the candidate's work on step 4 and offer positions to the best.

Re: Today's Coding Interview Game

#100
post #40

Earlier quoted context omitted.

I learn more about you by seeing your relationship with your text editor Are you sure you are not just learning whether the candidate is superficially similar to you?

well a programmer that is coding a linked list in c/c++ probably(definitely) should know the pointer semantics. If they are looking that up then they should be a pass unless you are looking for a really junior programmer. Now if you are asking them to connect to a db and update a record with a stored procedure and they looked up the syntax for a db connection to a mysql database then you know they are fairly proficie…

Any language I have not used for a while get’s tossed out of the buffer, and I need to lookup even the most basic of syntax when I start coding in it. Once I get going I can easily recall if it’s *, &, ->, or ^ but at the start I really do need a refresher.

PS: Oddly enough, I have little issue working on a multi language programs, it's just I think in terms of pointer not C pointer.

Post reply on HN