It was appealing knowing that interviews were conducted in a language that wasn't really being used. Lots of companies claim they will hire smart people regardless of skills, but then you show up to interview and the guy across the table really expects you to know python and is flabbergasted that you bothered applying without it. I felt Fog Creek really demonstrated commitment to the principle by interviewing in a "useless" language. As someone with a bit of experience looking to make a change, it was a nice touch.
My full response to Ben is at http://news.ycombinator.com/item?id=2442696.
Though I am still in school, I feel everyone should understand how Memory works.
My assumption is that everyone should at least know about:
1. Pointers and their physical meaning
2. Difference between Process specific virtual memory and physical memory
3. Difference between Static, Stack and Heap Memory.
4. Also it is important to understand what happens when a disk access is required, and difference between Random reads and Sequential reads.
5. Bonus if you can understand, how swapfs is utilized and L2,L3 cache work.
If you enforce such kind of interviews in C, you will miss lots of great FP programmers. Maybe you don't care anyway.
I would guess that people might know 1 when they think about it some, but really don't know anything about the rest.
Joel's observation about pointers is dead-on, but I've personally beat that horse on HN in the past and will spare everyone a greatest hits anthology.
I like (FTA): "So I’ve picked a question that forces candidates to design a data structure" . . . "I’ll continue conducting my interviews in the language of the candidate’s choice"
As an even more general question to hackers here, what would impress you more? A candidate who comes in, whiteboards out an algorithm and data structure in C to solve a problem, or a candidate solves the same problem in Clojure?
Particularly if your org uses neither of those two languages :-) Of course, you have to grok the different paradigms you might use in both languages or you'll probably be unable to make a decent judgment.
A dev candidate who solves a problem in clojure may be impressive, but since I'm less qualified to judge, I will be less confident hiring them. Your best chance to get hired is to convince me that you are better than everyone else, and the best way to do that is to do something impressive that I can compare to everyone else.
I've also had people go from passing to failing because they overreached. More than one candidate successfully produced a correct C solution and then sunk their own battleship by volunteering a completely wrong soliloquy on heap vs stack memory. "Noone knows you're stupid until you open your mouth." Do NOT use clojure if you're betting the interviewer won't catch your mistakes.
(I believe I'm allowed to say this about the interview. If Joel or someone at Fog Creek comes across this and takes issue, just let me know and I'll remove the post.)