At least in my experience, the main point of coding interviews has always been to expose and analyze the way that you approach and solve problems, not to see how fast you write code. It's usually better to take a step back and re-evaluate the design of your solution rather than dive into the first solution you create, since you'll usually find a better way to express the solution that is short enough to write down on the whiteboard without pressing against the time constraints.
It's also important to see how reliant people are on their tools.
I don't think the whiteboard interviews expect an executable at the end of the process. It's not a complete test, but a partial one: testing if you can come up with suitable algorithms within a reasonable time - and perhaps how you work/your process. None of which is dependent on any (software/IDE) tools
If you're asking them to design something rather than build something off a pre-existing design, you might like to know that they actually understand the principles of design, and aren't relying on a tool to pretend they do.
It is completely reasonable to rely on a text editor and the language interpreter. Hell, even the language documentation.
This could be an issue with really fancy IDE features, but there's a world of difference between a whiteboard and an IDE - namely, a text editor and an interpreter/compiler.
This was accessible and interesting, thanks for the link.
A few questions:
1. Does the overhead of creating a new CLH every time a Haskell function is invoked from C introduce any performance concerns(speed didn't seem to be well-covered in section 6)?
2. How should Table 5 be interpreted? Is the main goal to show that B5 and B6 do not use the garbage collector if it's unnecessary for the task? Not sure I understand how the event-driven mutator fits into the situation.
> 1. Does the overhead of creating a new CLH every time a Haskell function is invoked from C introduce any performance concerns(speed didn't seem to be well-covered in section 6)?
Yes. It needs to initialize the heep at any function entry point. The time is proportional to number of all thunk on the Haskell application.
However, in future design, we may cache the initialized heap structure.
> 2. How should Table 5 be interpreted? Is the main goal to show that B5 and B6 do not use the garbage collector if it's unnecessary for the task? Not sure I understand how the event-driven mutator fits into the situation.
Yes. Interrupt occur on Table 5.
B5 and B6 are also using GC. However, GC trigger doesn't occur while the Haskell contexts are live, because the context's heap is big enough to escape first GC trigger watermark.
I think both this, the parent comment, and a fair amount of other comments on this post are unnecessarily harsh towards the designers. Pointing out design issues is always helpful for improvement and reiteration, but attacking their motivations just makes everyone hostile and gets nothing accomplished.
It appears that the hostility stems from a deep misunderstanding of football, the current UX and why it evolved the way it has.
You can hardly blame the community for reacting harshly when presented with a product they never asked for claiming that their current experience is somehow broken when it is not.
If I pay to get all the questions only to learn later that I could have accessed them all easily for free, I'm going to feel ripped off, even if it was only $5. Either make sure the questions are blocked off properly or let everyone have access to all of the questions. You can't have it both ways here.
If I pay for this Pepsi only to learn later that I could have easily stuck it in my coat for free, I'm going to feel ripped off, even if it was only $1.25. Either make sure someone's watching me at all times and patting down my coat at the door properly, or let everyone have Pepsis for free.
Doesn't seem quite as appropriate when the context is changed, does it?
Reading through this I see I was wrong. Thank you.
My reaction was provoked when I was considering paying for the rest of the questions, saw the comments and saw the link to all of them. I was too hasty in my response.
I see the point you're making here, but I feel like the motivations you're pointing at for why people post on discussion groups and forums isn't correct in most cases. At least in my experience, people tend to post helpful advice because helping people out feels good. It also provides an ego boost when people view you as an expert at something.
Right. If someone slips on ice on the sidewalk in front of a store, you don't ignore them and think, hey, the store owner is on the hook here; not my problem.
You help that person get up.
That doesn't absolve anyone of their rightful responsibilities, but it does make for a nicer world.
It's also important to see how reliant people are on their tools.