Design Me A House

« Return to Article
  • Herr Killjoy 2008-04-10 10:12
    Okay, time to be a German grammar and spelling nazi. (Would there really be any other kind?)

    Guten Tag.

    One 't', and both words capitalized.
  • Josh 2008-04-10 10:14
    I got the "design me a house" question during one of my first-job-out-of-school interviews. Given my n00bishness, I didn't have the liberty of scoffing outright, but, to say the least, that was one of the few interviews that didn't result in a job offer.

    I sort of understand the brain teaser ones, or at least, would if the interviewers were coming up with their own, but how does "build me a house!" in any way relate to programming or software design?
  • Chad 2008-04-10 10:15
    You know what? I think I want 3 references from you Mr. Employer. You know this is a 2 way street, right?

    I think I'm going to start asking for that.
  • Koun 2008-04-10 10:15
    If they liked me, well, "gutten tag", and all that!

    It's "Guten Tag" (with or without Linux. I guess German is cross-platform)
  • vt_mruhlin 2008-04-10 10:16
    The sad truth of the matter is that the step-by-step installation is probably the only Linux experience you need to do the job. Most of the other consultants on the team probably added C++ to their resume under the same pretenses as you, and the reason it won't compile in Linux is that it won't compile anywhere.

    All you need for that kind of job are simple troubleshooting skills. See where it breaks and read the man pages.
  • Koun 2008-04-10 10:16
    Koun:
    If they liked me, well, "gutten tag", and all that!

    It's "Guten Tag" (with or without Linux. I guess German is cross-platform)

    OK got beaten to it (with a funnier comment)
  • Smash 2008-04-10 10:19
    Fine. How many floors do you want?"

    "Two!," he shouted, "no, three! I mean, one! Err... no, I want six, maybe sev--"
    This guy really got into character. He has no idea about what he wants at all, just like most customers I've seen.

    captcha: jumentum. Could it be any more appropriate?
  • vt_mruhlin 2008-04-10 10:19
    Josh:
    I got the "design me a house" question during one of my first-job-out-of-school interviews. Given my n00bishness, I didn't have the liberty of scoffing outright, but, to say the least, that was one of the few interviews that didn't result in a job offer.

    I sort of understand the brain teaser ones, or at least, would if the interviewers were coming up with their own, but how does "build me a house!" in any way relate to programming or software design?


    Given the changing of the number of rooms, I'm guessing it's supposed to mimic the flakiness of the software requirements gathering process?

    Now, it's fun because I bet architects actually get customers like that. I wonder if they have to design software for their job interviews.
  • AbbydonKrafts 2008-04-10 10:22
    Josh:
    I sort of understand the brain teaser ones, or at least, would if the interviewers were coming up with their own, but how does "build me a house!" in any way relate to programming or software design?


    If you knew how to build a house as well as design software, you'd know the analogy fits. I used it in an IP lawsuit once, and all parties involved knew exactly what I was talking about. The problem is when the one attempting the analogy gets it wrong.
  • James Ingram 2008-04-10 10:23
    vt_mruhlin:
    the reason it won't compile in Linux is that it won't compile anywhere.


    No, the Windows version was compiling fine (or so they said). I'm not a C++ expert, either - but have dabbled (this was also clear on my *original* CV - the job offered me gain C++ and gain Linux). They were asking someone who had dabbled with C++ and dabbled with Linux to fix a mission critical compile error when the previous dev had left the project.

    If he had had Linux added to his CV as well.. what sort of state would the system be in? No way was I taking that risk..

    ..oh, and thanks to everyone who pointed out that I can't spell in German :)

  • Smash 2008-04-10 10:23
    Smash:
    ...Could it be any more appropriate?
    err sorry, I meant adequate, but as english is a foreign language to me and all that, you know...
  • Greg 2008-04-10 10:26
    IMO the housing interview question is valid. The candidate can get assessed on how he would design something he hasn't designed before, which is an important skill for a developer - often some algorithm or business process has to be implemented, and interviewing and bargaining suddenly become important skills. The candidate can show initiative, how he bargains with a potential customer on features, wether he has commercial skills, etc etc etc. For a lead developer or consultant, this is relevant. For a junior position however, much less.
  • taylonr 2008-04-10 10:28
    If it's true that relatively few people get fired for incompetence, but instead of relational issues (lazy, a jerk, etc) why not focus on personality issues?

    If you go interview at Caterpillar, whether you are interviewing for an accounting position, or an engineering position, or a sales position, the questions are more like: "Tell me about a time when you were on a project that didn't get done on time." Followed up with "Did you identify the reasons why it didn't get done on time?" and "What would you do about that next time" etc.

    I interviewed with 3 mid-level managers, got 9-10 questions like that. Got 0 questions of "can you design me a circuit that will filter out a 3kHz signal" or "write out the output of this logic circuit" or worse yet, "design me a house!"

    Found out later, that there is a set of about 50 questions. HR picks who you interview with and which of the series of questions each manager will ask you about. Managers pick the specific questions.

    Seems to work pretty well for them, they've got some of the brightest people I've ever been around, yes software people too.
  • Jack Flash 2008-04-10 10:29
    Its "Guten Tag" not "gutten tag"

    CAPTCHA: Kraut
  • sewiv 2008-04-10 10:33
    That "list of questions" approach is called Targeted Selection. It's what we use here, along with a separate technical interview.
  • Smash 2008-04-10 10:34
    Maybe they only needed someone with interview-for-requirements and drawing skills?

    "Hey, requirement guy, the application needs a 32x32 icon. Draw us a house, ok?"
  • Outlaw Programmer 2008-04-10 10:55
    I "get" the whole house metaphor, but I don't think it's really that accurate. After all, people have been building houses for 5000+ years, but have only been designing software for 50 years. If I was an architect and my customer asked me to build a house where they could rearrange rooms or add/remove floors whenever they wanted, I don't know what my reaction would be.

    In The Pragmatic Programmer, the author talks about how programming is more like a garden. Gardens start out small, and you start with a specific plan in mind, but you're forced to rearrange the garden periodically because you're not sure how it's going to grow. I find that's much more accurate than building a house, where you MUST have some blueprints and it's very unlikely for those plans to change much once construction is underway.
  • SomeCoder 2008-04-10 11:10
    The real WTF is that the house metaphor was taught to me in one of my "new age" software engineering classes in college. We also had to pack up a house to move in a certain amount of time and build an egg catcher.

    All have some principles that can be applied to SE but I'm not sure I took a class that had less "substance". Most of the things we had to do were simply time wasters and didn't help us to managed the real project we had to do the next semester of SE - basically a continuation of the previous semester. Rather, they hurt because we were on such a time crunch that doing anything except coding was actually harmful. And yes, that's a WTF in and of itself but we won't go there and it's just academia, right?

    I really hate companies that ask brain teasers instead of real questions. My current company asks brain teasers but then they give you real programming problems to solve also.
  • James 2008-04-10 11:19
    James Ingram:
    vt_mruhlin:
    the reason it won't compile in Linux is that it won't compile anywhere.


    No, the Windows version was compiling fine (or so they said). I'm not a C++ expert, either - but have dabbled (this was also clear on my *original* CV - the job offered me gain C++ and gain Linux). They were asking someone who had dabbled with C++ and dabbled with Linux to fix a mission critical compile error when the previous dev had left the project.

    If he had had Linux added to his CV as well.. what sort of state would the system be in? No way was I taking that risk..

    ..oh, and thanks to everyone who pointed out that I can't spell in German :)



    Ah, this clarifies a bit. My first impression on reading the story was that the Client was a non-technical person who had been convinced by people who didn't know what they were talking about that they needed a "Linux expert" when in fact you'd just be deploying to a Linux system, about which you needed to know pretty much nothing. I figured that the intermediary (the one who added Linux to your resume) was the guy who knew better. I guessed he was taking the path of least resistance by simply telling the Client that you had Linux experience, rather than trying to convince them that it wasn't necessary.
  • DeLos 2008-04-10 11:23
    Herr Killjoy:
    Okay, time to be a German grammar and spelling nazi. (Would there really be any other kind?)

    Guten Tag.

    One 't', and both words capitalized.



    Make this a featured comment. We've already got two more people chiming in.

    btw - did you know it should be "Guten Tag"?
  • Former Jr. Programmer 2008-04-10 11:25
    Guten Berg.

    Finally off of Dancing with the Stars.

    Finally.
  • Havok 2008-04-10 11:42
    Smash:
    Fine. How many floors do you want?"

    "Two!," he shouted, "no, three! I mean, one! Err... no, I want six, maybe sev--"
    This guy really got into character. He has no idea about what he wants at all, just like most customers I've seen.

    captcha: jumentum. Could it be any more appropriate?


    I really think he was playing a game. I dont think he was uber retarded. He was testing your reactions.
  • taylonr 2008-04-10 11:47
    Yeah, couldn't remember the term. But I went to "Host Training" so that you could be the host to incoming interviews, and they kept talking about Targeted Selection.
  • taylonr 2008-04-10 11:49
    Hey, has anyone chimed in about how Gutten is spelled wrong? That'd be pretty funny if someone would point that out. Surprised nobody has.
  • ChZEROHag 2008-04-10 11:51
    Herr Killjoy:
    Okay, time to be a German grammar and spelling nazi. (Would there really be any other kind?)

    Guten Tag.

    One 't', and both words capitalized.


    Two, surely?

    EDIT: Well one's a 't' and the other's a 'T', which are not the same.
  • For-Switch 2008-04-10 11:52
    The second one was definitely not WTF. It's quite possible that a person has worked in one position for a long time and has quit due to personal pressure or what-not. The fact that asking for refs is a "standard practice" doesn't mean that it's the only way to prove one's abilities. In fact i would say that if the interviewer has asked for refs after already confirming that the prospective employer is knowledgeable then the story is WTF, but for the completely different reason.
  • evilghost 2008-04-10 12:03
    If I ever got asked the "Build me a house" metaphor I'd go out of my way to make it ridiculous, referencing all events applicable to building a house with no application to software development.

    First, I'd respond with "What county is this house going to be built in, do you have the appropriate building permit, are there any leans against your property? Can I see the land deed? I'll also need to see your loan pre-qualification's letter".

    I'd later respond with "Am I just your framer or general contractor/builder?"

    I'd force the "home owner" to produce the house plans, identify where each receptacle, switch, recessed light, and CATV/Phone gang box would be.

    Then, when asked another question, I'd sit there in silence. After about 30 seconds I'd respond with "I'm busy building other McMansions, so I'm juggling building your house with multiple others and my plumber hasn't showed up yet because he's on another job site. Before we can start drywalling I need him to rough it in."

  • Fraggle My Rock 2008-04-10 12:03
    I had a similar interview once, but it didn't go well ...

    interviewer: You're in a desert, walking along in the sand when all of a sudden you look down,
    me: What one?
    interviewer: What?
    me: What desert?
    interviewer: It doesn't make any difference what desert, it's completely hypothetical.
    me: But, how come I'd be there?
    interviewer: Maybe you're fed up. Maybe you want to be by yourself. Who knows? You look down and see a tortoise, Leon. It's crawling toward ...

    Needless to say, I didn't get the job, too many stupid questions.
  • newfweiler 2008-04-10 12:13
    Builder: Do you want me to build your house from the bottom up or from the top down?

    Client: From the bottom up of course!

    Builder: Dang it, now I have to tear it all down and start all over again.
  • poopdeville 2008-04-10 12:17
    Fraggle My Rock:
    I had a similar interview once, but it didn't go well ...

    interviewer: You're in a desert, walking along in the sand when all of a sudden you look down,
    me: What one?
    interviewer: What?
    me: What desert?
    interviewer: It doesn't make any difference what desert, it's completely hypothetical.
    me: But, how come I'd be there?
    interviewer: Maybe you're fed up. Maybe you want to be by yourself. Who knows? You look down and see a tortoise, Leon. It's crawling toward ...

    Needless to say, I didn't get the job, too many stupid questions.


    Liar. That's from Blade Runner.
  • tezoatlipoca 2008-04-10 12:23
    Fraggle My Rock:
    I had a similar interview once, but it didn't go well ...

    interviewer: You're in a desert, walking along in the sand when all of a sudden you look down,
    me: What one?
    interviewer: What?
    me: What desert?
    interviewer: It doesn't make any difference what desert, it's completely hypothetical.
    me: But, how come I'd be there?
    interviewer: Maybe you're fed up. Maybe you want to be by yourself. Who knows? You look down and see a tortoise, Leon. It's crawling toward ...

    Needless to say, I didn't get the job, too many stupid questions.

    Not only that but typically companies take a dim view putting their HR staff on life support.

    S'ok, I still like your owl.
  • Paul 2008-04-10 12:25
    I know enough about building houses and designing software to know that the analogy is suitable to only a small subsection of modern code design - that of the massive, monolithic, hard to extend, multi-manyear projects.

    Adding an extension to a house isn't the same as implementing an extension for Firefox, unless you overcharge the customers, promise them you'll be done in three weeks tops while really taking 10 weeks, and force them to use IE while you're adding the extension.
  • GF 2008-04-10 12:31
    For-Switch:
    The second one was definitely not WTF. It's quite possible that a person has worked in one position for a long time and has quit due to personal pressure or what-not. The fact that asking for refs is a "standard practice" doesn't mean that it's the only way to prove one's abilities. In fact i would say that if the interviewer has asked for refs after already confirming that the prospective employer is knowledgeable then the story is WTF, but for the completely different reason.

    While it's possible to ascertain that someone has a reasonable amount of skill or BS ability, it's often impossible to determine if they're reliable in a one hour interview. That's what references are for.
  • Jon B 2008-04-10 12:31
    After we finish designing the house, we'll figure out that it's way over budget and won't be ready until years after we need it. We'll suggest building a smaller house (limiting scope), but that won't go over well. So we'll decide to ignore best practices (building code), exception handling (smoke alarms), and security (door and window locks). We'll even farm much of the work out to low-cost, offshore workers. When it's still not done in time, we'll just go ahead and have the owner move in anway (who needs drywall and flooring) - we'll call it a beta.

    Did I pass?
  • arian 2008-04-10 12:31
    You never tried to build a house in spain, did you?
  • Michael Suzio 2008-04-10 12:32
    OK, someone took the Christopher Alexander / Patterns metaphor too far. Programming can be inspired by architecture, but you can't refactor a house, OK? If you want me to design a house that in any way resembles the way I'd design a program, then expect:

    - Me to want to tear down major portions of it each year as I realize better ways to layout the floor plan.
    - Due to this constraint, I will suggest you actually build three houses so I can have a production, staging, and development environment. Otherwise, learn to love sleeping on the front lawn while the house is undergoing development.
    - The backyard will be a solid black field of nullity until you can tell me where the maple tree goes, because everything else depends on that decision and you're being way too vague on requirements.
    - If pressured on the backyard module, I will lay down nasty green astroturf, a faux tree rescued from outside my cubicle, and a sky of plastic glow-in-the-dark stars so you can see a prototype.
  • Anon 2008-04-10 12:32
    Fraggle My Rock:
    I had a similar interview once, but it didn't go well ...

    interviewer: You're in a desert, walking along in the sand when all of a sudden you look down,
    me: What one?
    interviewer: What?
    me: What desert?
    interviewer: It doesn't make any difference what desert, it's completely hypothetical.
    me: But, how come I'd be there?
    interviewer: Maybe you're fed up. Maybe you want to be by yourself. Who knows? You look down and see a tortoise, Leon. It's crawling toward ...

    Needless to say, I didn't get the job, too many stupid questions.


    Let me tell you about my mother.
  • BIll 2008-04-10 12:33
    Reconfiguring a house is easy, if all the 'rooms' are cubicles. Ahhh, I'd feel right at work...
  • Justice 2008-04-10 12:36
    Fraggle My Rock:
    I had a similar interview once, but it didn't go well ...

    interviewer: You're in a desert, walking along in the sand when all of a sudden you look down,
    me: What one?
    interviewer: What?
    me: What desert?
    interviewer: It doesn't make any difference what desert, it's completely hypothetical.
    me: But, how come I'd be there?
    interviewer: Maybe you're fed up. Maybe you want to be by yourself. Who knows? You look down and see a tortoise, Leon. It's crawling toward ...

    Needless to say, I didn't get the job, too many stupid questions.


    I wish some of my interviews could have ended the way that one did.

    Though I think if I'm ever in a hiring position I'll give Voight-Kampff tests. Can't be too careful.
  • Outlaw Programmer 2008-04-10 12:38
    Fraggle My Rock:
    I had a similar interview once, but it didn't go well ...

    interviewer: You're in a desert, walking along in the sand when all of a sudden you look down,
    me: What one?
    interviewer: What?
    me: What desert?
    interviewer: It doesn't make any difference what desert, it's completely hypothetical.
    me: But, how come I'd be there?
    interviewer: Maybe you're fed up. Maybe you want to be by yourself. Who knows? You look down and see a tortoise, Leon. It's crawling toward ...

    Needless to say, I didn't get the job, too many stupid questions.


    Heh, you know, I was SURE that I'd heard that before, but I was ready to believe I saw it on a tech blog or something. Most clever post thus far, for sure!
  • DaveAronson 2008-04-10 12:51
    newfweiler:
    Builder: Do you want me to build your house from the bottom up or from the top down?

    Client: From the bottom up of course!

    Builder: Dang it, now I have to tear it all down and start all over again.

    Don't you mean, tear it up?
  • PosterDude 2008-04-10 12:52
    I would introduce a house builder monad parameterized over a housing structure type. I'd be sure is was left adjoint to the foundation functor.
  • DaveAronson 2008-04-10 12:53
    Chad:
    I think I want 3 references from you Mr. Employer. You know this is a 2 way street, right?

    All too many interviewees don't realize it's a two-way street. Much can be revealed that should send any sane candidate running away screaming if they hope to stay that way....
  • Rick 2008-04-10 12:55
    Chad:
    You know what? I think I want 3 references from you Mr. Employer. You know this is a 2 way street, right?


    I figure that meeting other programmers on the project during the interview process fulfills this requirement.

  • WhiskeyJack 2008-04-10 13:01
    PosterDude:
    I would introduce a house builder monad parameterized over a housing structure type. I'd be sure is was left adjoint to the foundation functor.


    Wow, you sound like some of the guys I work with.

  • Bottom 2008-04-10 13:29
    newfweiler:
    Builder: Do you want me to build your house from the bottom up or from the top down?

    Client: From the bottom up of course!

    Builder: Dang it, now I have to tear it all down and start all over again.
    Wouldn't you actually have to tear it up?
  • Ace 2008-04-10 13:30
    Herr Killjoy:
    Okay, time to be a German grammar and spelling nazi. (Would there really be any other kind?)


    Austrian?
  • Jay 2008-04-10 13:34
    I have a pathological dislike of giving references also. But surely the reason is obvious. There are plenty of people who are very good at bluffing their way through an interview. The employer hopes that by checking a reference, they might find out where you were lying to them.

    I have fond memories of hiring someone once who sounded great in the interview. He could talk about all the latest technologies and techniques. My only fear was that he would be upstaging

    This was always a tricky proposition because the candidate is unlikely to give you names of people who will say bad things about him. Unless he's a total idiot, in which case you don't want to hire him. This is even more pointless in America today because people are so afraid of lawsuits that few will say anything negative. My previous employer had a company policy that if anyone called them for a reference, they would "confirm dates of employment" and that was it.
  • Ralph 2008-04-10 13:40
    Rick:
    Chad:
    You know what? I think I want 3 references from you Mr. Employer. You know this is a 2 way street, right?


    I figure that meeting other programmers on the project during the interview process fulfills this requirement.



    Exactly. I had an interview this past Tuesday in which the VP of the company sat in on the entire time. Not only did he not know what he was talking about from a technical standpoint, he limited the IT Director's responses by talking too much. That sort of thing sends up red flags all over the place.
  • SomeCoder 2008-04-10 13:43
    Jay:
    I have a pathological dislike of giving references also. But surely the reason is obvious. There are plenty of people who are very good at bluffing their way through an interview. The employer hopes that by checking a reference, they might find out where you were lying to them.

    I have fond memories of hiring someone once who sounded great in the interview. He could talk about all the latest technologies and techniques. My only fear was that he would be upstaging

    This was always a tricky proposition because the candidate is unlikely to give you names of people who will say bad things about him. Unless he's a total idiot, in which case you don't want to hire him. This is even more pointless in America today because people are so afraid of lawsuits that few will say anything negative. My previous employer had a company policy that if anyone called them for a reference, they would "confirm dates of employment" and that was it.


    Sometimes it's not idiocy, it's ignorance.

    Post-bubble, I was looking for a job. I routinely gave the reference of my former team lead.

    BAD IDEA. I didn't know it but he was talking shit about me behind my back. I felt like I had done a good job at that company but apparently he didn't. I had a hard time finding work because of that and I only found out about it a year or so later after landing a job where I did NOT give references.

    I try not to give them or only give them if I really, really know the person and KNOW that they will give glowing ones.
  • Zylon 2008-04-10 13:43
    poopdeville:
    Liar. That's from Blade Runner.

    Congratulations on explaining the joke, loser.
  • real_aardvark 2008-04-10 13:49
    GF:
    For-Switch:
    The second one was definitely not WTF. It's quite possible that a person has worked in one position for a long time and has quit due to personal pressure or what-not. The fact that asking for refs is a "standard practice" doesn't mean that it's the only way to prove one's abilities. In fact i would say that if the interviewer has asked for refs after already confirming that the prospective employer is knowledgeable then the story is WTF, but for the completely different reason.

    While it's possible to ascertain that someone has a reasonable amount of skill or BS ability, it's often impossible to determine if they're reliable in a one hour interview. That's what references are for.

    And they're so very fit for that purpose, too.

    Prospective Boss: I understand that Mr Jones is an expert Brainf*ck programmer. Is that so?
    Reference: Mr Jones worked for Brains, Inc between April and November last year.
    Prospective Boss: Well, he claims to have been the main Brainf*ck evangelist on a mission-critical project during that time. Is that so?
    Reference: Mr Jones worked for Brains, Inc between April and November last year.
    Prospective Boss: Did he at least contribute to the project? What was his job title?
    Reference: Mr Jones worked on that project during his employment here. His job title was "Senior Systems Analyst."
    Prospective Boss: I hate to ask, but it was kinda dark in that interview room. Is Mr Jones a blonde with a huge rack?
    Reference: Mr Jones worked for Brains, Inc between April and November last year.

    And so on. This is of course an exaggeration, and I'm sure you can get something from a reference, but as far as I can see they're just CYA HR fodder. Plus the references are often friends or beloved cow-orkers (I mean, would you specify your PHB as a reference?), which is why many people, including myself, hate to pass them out willy-nilly.

    Of course, there is one, and only one, case where references work brilliantly as a discriminator; and that's where the prospective hire is asking for an intra-company (or inter-agency, or inter-school) transfer. This is the way it works:

    "Is it a good idea for us to hire Mr Jones to program Brainf*ck?" -- "Absolutely! The man is a genius. Plus, he's a really good-looking blonde with great tits!"

    (Translation: Mr Jones is a worthless idiot, and his bra-size is 32-B at best. Plus, he dyes his hair with toilet bleach.)

    Or:

    "No way, my man! Mr Jones was personally responsible for the Chernobyl meltdown while he worked here!"

    (Guess the translation on this one.)

    For 99.9% of referrals, using a divining rod, or graphology, or something, would be a far better idea. The proof is in the pudding. How many TDWTFs do you see that include the actual details of a reference?
  • pythonic 2008-04-10 13:52
    Outlaw Programmer:
    I "get" the whole house metaphor, but I don't think it's really that accurate. After all, people have been building houses for 5000+ years, but have only been designing software for 50 years. If I was an architect and my customer asked me to build a house where they could rearrange rooms or add/remove floors whenever they wanted, I don't know what my reaction would be.


    The point of the exercise is not to actually design a house in 5 minutes. The point is to see what kind of questions the interviewee asks and how they would gather requirements and understand use cases.
  • Anon Fred 2008-04-10 13:58
    Jay:
    I have a pathological dislike of giving references also.


    My references are extremely valuable to me. They are well-known in their field, and busy.

    It especially sucks for consulting companies whose only check they do on you is your references.
  • Outlaw Programmer 2008-04-10 13:59
    That justification flew out the window as soon as he started talking about a house that's actually a Transformer. If it was a requirements gathering exercise, they would have just left it at "draw a house." Now you can ask questions about how big, what color, how many windows.

    No, this dude was definitely trying to "simplify" the art of software engineering by dressing it up as house construction.
  • Anon Fred 2008-04-10 14:04
    Outlaw Programmer:
    That justification flew out the window as soon as he started talking about a house that's actually a Transformer.


    Well, fuck. That's a house I'd actually want to design!
  • Aaron 2008-04-10 14:06
    "but what if I want to add more later? Or combine them."

    Simple! Just watch a few episodes of Bob Villa, take a trip to your local Home Depot, head over to the "home improvement" section, and talk to the nearest group of Mexicans willing to do drywall work for bus fare.
  • Tom 2008-04-10 14:10
    No wonder the Amish are such good programmers
  • FredSaw 2008-04-10 14:11
    Smash:
    Fine. How many floors do you want?"

    "Two!," he shouted, "no, three! I mean, one! Err... no, I want six, maybe sev--"
    This guy really got into character. He has no idea about what he wants at all, just like most customers I've seen.
  • Franz Kafka 2008-04-10 14:13
    Outlaw Programmer:
    I "get" the whole house metaphor, but I don't think it's really that accurate. After all, people have been building houses for 5000+ years, but have only been designing software for 50 years. If I was an architect and my customer asked me to build a house where they could rearrange rooms or add/remove floors whenever they wanted, I don't know what my reaction would be.

    In The Pragmatic Programmer, the author talks about how programming is more like a garden. Gardens start out small, and you start with a specific plan in mind, but you're forced to rearrange the garden periodically because you're not sure how it's going to grow. I find that's much more accurate than building a house, where you MUST have some blueprints and it's very unlikely for those plans to change much once construction is underway.


    Also, relevant to the house thing, houses aren't really built for extension - add a story and you had better have a sufficiently thick slab, you may need I-beams installed, and so on. You also have more consideration goven to the overall aesthetics of the thing - you don't want a new chunk of house that looks bolted on, and complicated shapes are harder to waterproof.

    Can you tell what I've been look into lately?
  • Tim 2008-04-10 14:17
    If I were asked to design a house and I was truly that frustrated with the interview at that point I think I'd start to have fun with it. I'd start asking mind numbing questions like this:

    - How big is the land for the house?
    - What shape is the land? Can you draw it for me?
    - What city/town is it in? Do they impose any building restrictions?
    - How high is the water table?
    - Is the land sloped? That could have an effect on the septic field of course...
    - What building materials can I choose from? How do their prices compare?

    Now if they have well-thought out answers for all of this, not just something off of the top of their head, then you're stuck. But otherwise you can keep going on all day to keep them guessing.
  • Franz Kafka 2008-04-10 14:21
    pythonic:
    Outlaw Programmer:
    I "get" the whole house metaphor, but I don't think it's really that accurate. After all, people have been building houses for 5000+ years, but have only been designing software for 50 years. If I was an architect and my customer asked me to build a house where they could rearrange rooms or add/remove floors whenever they wanted, I don't know what my reaction would be.


    The point of the exercise is not to actually design a house in 5 minutes. The point is to see what kind of questions the interviewee asks and how they would gather requirements and understand use cases.


    Well, he did start with 'how do you want it to look', which generally maps to a standard style (colonial, rambler, borg cube), which then suggests where most of the floor space is. The presence of a basement is determined partially by the ground and frost level; once you get that and have an idea how big the house should be, you can look at layout. The interviewer played the clueless moneyman well - that begs for a slapdown (which was delivered), after which point you can decide on the basic paramters of the house, which, btw, aren't easily modifiable.

    Also, movable walls are just stupid. Cheaper to make the house bigger.
  • David V. Corbin 2008-04-10 14:22
    I have to chime in on this one...

    As a developer for over 35 years, (and even having worked for MSFT for a while) I completely AGREE with the technique of asking "brain-teasers" and "non-programming" questions on my interviews.

    For many years I have utilized a completely ficticious language for all programming samples that take place on the interview.

    In the long hual, I am much more interested in how a person thinks and how they address situations they have never seen before.

    I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.
  • Sanity 2008-04-10 14:34
    Greg:
    IMO the housing interview question is valid. The candidate can get assessed on how he would design something he hasn't designed before, which is an important skill for a developer...

    That's why I answer with "I would hire an architect." If he insists that I'm his architect, I would answer, "I would go to the library and read books on architecture."

    Which is the same as my answer for the Boeing question, by the way: "I would call Boeing."

    Someone who attempts to game the question in such a way will likely use the same techniques for real-world problems, where they make a lot of sense -- either delegate to someone much more qualified, or educate yourself. Don't just jump in on the whiteboard and attempt to solve a problem completely outside your field of expertise.

    Although I have no problem with stupid interview questions if they can be answered quickly. The rope bridge one took all of two seconds of thought to realize that you just go yourself (you're the fast guy) and ferry everyone across.
  • SomeGuy. 2008-04-10 14:35
    I see it working this way:

    Criteria:
    Number of Beds.
    Number of Baths.

    -- Based on family composition.

    Kitchen
    --With or without nook

    Dining Room (or use nook)
    Living Room
    Family Room or Den TV room

    Billiard Room / Games Room (kids?)

    Storage space considerations? - Do you have a large collection of empty Whisky barrels you need to store/display.

    What type of entertaining do you do?
    -- Bar?
    -- In home theater?
    -- Rubber room with easy to clean surfaces and convenient Tie-down locations?

    Constraints:
    Budget.
    Lot Size.
    Disability (Stairs?)

    Extras:
    These are luxury items that you have to tell me about.
    I can ask certain questions
    Do you want a pool?
    putting green,
    but I really can't reduce every possible luxury to a binary question.

    etc.

    Obviously theres a hell of a lot more, but this would demonstrate that I'm thinking about fulfilling your needs, not building a house.

    I might determine that what you need is not a house at all, but a two bedroom luxury condo with security, pool, billiards room and bondage facilities at the swinger's club next door.

    The client usually doesn't know what they need. The client asked for a house, which is a presumption on their part. What they need is a place to live. I, as the analyst will ask you various questions (as above) to help you decide what type of place to live you really want.







  • JTK 2008-04-10 14:57
    Tim:
    If I were asked to design a house and I was truly that frustrated with the interview at that point I think I'd start to have fun with it. I'd start asking mind numbing questions like this:

    - How big is the land for the house?
    - What shape is the land? Can you draw it for me?
    - What city/town is it in? Do they impose any building restrictions?
    - How high is the water table?
    - Is the land sloped? That could have an effect on the septic field of course...
    - What building materials can I choose from? How do their prices compare?

    Now if they have well-thought out answers for all of this, not just something off of the top of their head, then you're stuck. But otherwise you can keep going on all day to keep them guessing.


    Why aren't you buying one of the thousands of houses currently on the market, which you can move into much quicker than it would take to design this one?
  • morry 2008-04-10 15:10
    My living room is quite flexible. It can be easily reconfigured into a family room, game room, sitting room, reading room, and nap room.

    I'd have been tempted to throw undue process back at the interviewer. "I'm sorry but we cannot proceed without confirmation of funding and a sign-off on the project charter. Please make sure you use the current version of the P199238-B large project charter template (customized). Only then we can allocate resources."
  • who me? 2008-04-10 15:18
    Another employer who uses riddles in the recruitment process is Google http://labnol.blogspot.com/2006/05/cryptic-google-recruitment-billboard.html and supposedly they are a great employer to work for.
  • The Heretic 2008-04-10 15:19
    Recruiters: total waste of time and space.

    I've had one play the Linux trick with SQL instead. I have SQL on my resume, I actually have a little experience with SQL, but I am upfront with the fact that I am a beginner and still learning. When I made that clear to the recruiter at one job shop he suggested that I leave that out and if the client asked I should just lead them on. Obviously most recruiters have never been in a technical interview where real technical questions are asked about your expertise in any given area.

    Then there are the recruiters who don't know the difference between AWT and GWT, or between between any other acronym and another - i.e., almost all of them (if they knew the difference they would be working in tech, not recruiting for it). And don't get me going on recruiters that demand 10 years experience in a technology that has only been around for five years, or that want experience with Oracle 11g, Oracle 10g not being good enough even though Oracle 11g has only been around for six months and many shops have not migrated to it.

    Many recruiters go around finding job postings on corporate websites, try to find a matching resume and then spam you when even one word in your resume matches the requirements. I just ignore them and apply for the job directly. Many employers won't deal with recruiters unless they have an exclusive contract with them.

    Then there are the recruiters who demand references up front before an interview or even seeing my resume - presumably so they can spam them too.

    Anymore I just ignore recruiters - in over 20 years in the tech sector I have never gotten a job through one, and I have only ever gotten one interview (cost me travel money and was a total waste of time because the recruiter misunderstood the job requirements).

    I haven't gotten many "why is a manhole cover round questions?" in interviews the last five years or so - mostly fallen out of favor. Most interviewers don't know how to ask the questions anyway, much less how to properly interpret the answers.
  • Khanmots 2008-04-10 15:38
    Sanity:
    Although I have no problem with stupid interview questions if they can be answered quickly. The rope bridge one took all of two seconds of thought to realize that you just go yourself (you're the fast guy) and ferry everyone across.


    Ah, but that's not the fastest way. That winds up having the times for all the slow people be additive. There's an opportunity presented in the setup to create a pair of slow people so that you only have one of them affect your time.

    i.e., you're sending the slow people across serially when you can do so in parallel.

    serial method
    send 1,10 across (10)
    send 1 back (1)
    send 1,5 across (5)
    send 1 back (1)
    send 1,2 across (2)
    done! (in 19)

    parallel method
    send 1,2 across (2)
    send 1 back (1)
    send 5,10 across (10)
    send 2 back (2)
    send 1,2 across (2)
    done! (in 17)

    Personally I find certain types of brain teasers like this to be worthwhile. For instance, think of this problem in the context of an interview for a position dealing with multi-threaded design.

    However, some things like weighing a jet... why waste your candidates time?
  • ThisIsMe 2008-04-10 15:39
    If architects built buildings the way programmers wrote programs ... the first woodpecker to come along would destroy civilization as we know it ... :\
  • Anon Fred 2008-04-10 15:39
    Sanity:
    The rope bridge one took all of two seconds of thought to realize that you just go yourself (you're the fast guy) and ferry everyone across.


    You might want to give a few more seconds of thought.
  • N 2008-04-10 15:39
    I once saw a house in Turkey that had a first floor and a roof on top of the second floor, but no second floor.
  • wee 2008-04-10 15:40
    This is Joel's fault: http://www.joelonsoftware.com/articles/fog0000000073.html

    "Part 6: the design question. Ask the candidate to design something. Jabe Blumenthal, the original designer of Excel, liked to ask candidates to design a house. According to Jabe, he's had candidates who would go up to the whiteboard and immediately draw a square. A square! These were immediate No Hires."

    It's all part of that "move Mt Fuji with a spoon" nonsense. The guy David J interviewed with was just parroting this woolly-headed, new age interviewing B.S.

    I've actually had to tell people straight away that I won't be doing any brain teasers or the like. For some reason, people think that's all we ask here...
  • xtremezone 2008-04-10 15:43
    Josh:
    I got the "design me a house" question during one of my first-job-out-of-school interviews. Given my n00bishness, I didn't have the liberty of scoffing outright, but, to say the least, that was one of the few interviews that didn't result in a job offer.

    I sort of understand the brain teaser ones, or at least, would if the interviewers were coming up with their own, but how does "build me a house!" in any way relate to programming or software design?

    It's entirely possible the interviewer was either testing his openness to admit when he's out of his area of expertise (building a house isn't a programmer's job) or testing his ability to communicate with the user.

    Throwing ideas out for problems you clearly can't solve shows that you're the dishonest type that doesn't care about the project's success and is probably more interested in getting the job regardless of his fit to the position. Whether this particular interviewer was calculated or insane is anybody's guess, but the job of the person(s) hiring is to figure out which candidate is most fitting for the position, not who claims to know the answer to every question asked in an interview. Saying you don't know is a valid response, unless the thing you don't know is critical to the position (in which case you probably shouldn't be applying).

    Also, when a user is jumping all over the place with requirements it's not OK to tell them they're getting <this>. You instead need to explain to them that you need to know what they want before you can develop it for them.

    It sounded like this particular candidate just wanted to get the fuck out of there though, so that's a different story, but in theory the interviewer could have had valid reasons for asking the questions.
  • Michael 2008-04-10 15:49
    Anon Fred:
    Sanity:
    The rope bridge one took all of two seconds of thought to realize that you just go yourself (you're the fast guy) and ferry everyone across.


    You might want to give a few more seconds of thought.


    His method takes 19 minutes, you have a better one?

    A=1
    B=2
    C=5
    D=10

    So they go:

    AD -> 10 min
    A <- 1 min
    AC -> 5 min
    A <- 1 min
    AB -> 2 min
  • Anon Fred 2008-04-10 15:50
    wee:
    According to Jabe, he's had candidates who would go up to the whiteboard and immediately draw a square. A square! These were immediate No Hires.
    This entire thread I've been thinking "if someone wants me to design a house, I'm drawing a fucking square, writing www.joelonsoftware.com next to it, and heading out the door."

    Joel! On Software! Inventing dubious reasons to cull programmers since 1998! (It's how we get to be so selective, you see.)
  • Khanmots 2008-04-10 15:53
    Michael:
    His method takes 19 minutes, you have a better one?


    Like the one I listed a bit above his comment that takes 17? :)
  • wee 2008-04-10 16:08
    Anon Fred:
    This entire thread I've been thinking "if someone wants me to design a house, I'm drawing a fucking square, writing www.joelonsoftware.com next to it, and heading out the door."


    This is exactly what I would do as well. There are a lot of ways to judge my creativity, intelligence, or design abilities, as well as how I'd cope with shifting user reqs. Asking me random nonsense about a rope bridge or guys in a boat throwing stuff overboard or being shrunk down and put in a blender doesn't really provide a lot in the way of useful insight. And if you think it does, you're not somebody I want to work for.
  • Fraggle My Rock 2008-04-10 16:14
    "Design me a house," the interviewer cheerfully demanded."

    See this was your mistake in not taking "the out". What you should have said was "You betcha!" and quickly walked out of the interview and said nothing more.

    Then after about six weeks you could have sent some pictures of some housing complex construction site that you had taken (or jacked from Google) and sent a lengthy fax outlining expenditures broken down based on materials, labor costs and given a bank account number for deposit for "works rendered". To add icing on the cake, the report would have a good old fashioned Italian name on it with emphasis on "Family Business", "We get the job done no matter what", and "We kill the competition" references.

    That would have taken good care of Mr. HR Know-it-all.
  • RH 2008-04-10 16:20
    [quote user="Franz Kafka"][quote user="pythonic"][quote user="Outlaw Programmer"]I "get" the whole house metaphor, but I don't think it's really that accurate. After all, people have been building houses for 5000+ years, but have only been designing software for 50 years. If I was an architect and my customer asked me to build a house where they could rearrange rooms or add/remove floors whenever they wanted, I don't know what my reaction would be.[/quote]

    The point of the exercise is not to actually design a house in 5 minutes. The point is to see what kind of questions the interviewee asks and how they would gather requirements and understand use cases.[/quote]

    Which is EXACTLY what you do as a programmer, so why not ask it in the context of a programming project rather than a house project? It's like asking someone how well they touch type to gauge their dexterity in a bomb-dearming position.
  • Michael 2008-04-10 16:39
    Khanmots:
    Michael:
    His method takes 19 minutes, you have a better one?


    Like the one I listed a bit above his comment that takes 17? :)
    Oh yeah, that would do it.
  • Aaron 2008-04-10 16:48
    It actually just occurred to me that a "fully customizable" house as per interview spec would probably violate several bylaws in most cities. So my answer to that question might actually be "I'd choose not to build your house because I think I could make more money by suing you."
  • Fraggle My Rock 2008-04-10 16:54
    poopdeville:
    Liar. That's from Blade Runner.


    cookie4LiteralBoy++;
  • WhiskeyJack 2008-04-10 16:56
    xtremezone:
    Whether this particular interviewer was calculated or insane is anybody's guess, but the job of the person(s) hiring is to figure out which candidate is most fitting for the position, not who claims to know the answer to every question asked in an interview. Saying you don't know is a valid response, unless the thing you don't know is critical to the position (in which case you probably shouldn't be applying).


    I found out some time after I was hired that one of the reasons was because I was honest when answering the question: how do you feel about round-trip software engineering? (E.g. with Rational Rose)

    How do I feel? I think it's a neat idea in theory but totally impractical in the real world of iterative development and refinement. Far more efficient to have a high-level overview design and not try to design out the minutia until you've got something that works well, then back-fill the details. Designs for the stuff in between are better left to whiteboards, doodles and face to face discussion, not CASE tools.

    My interviewers looked at each other and smirked when I gave my answer. Seems they'd been doing exactly that, until upper management recently came down with a directive to use the CASE tools. They liked that I was familiar with the subject and realistic in my assessment of theoretical benefits versus reality.
  • JR 2008-04-10 16:57
    I just read "Please draw a class model with emphasis on scalability aspects" in the "Build me a house" sentence. Whether this makes any sense is another matter.
  • Yoooder 2008-04-10 17:00
    I was in a general "Computers for Businesses" type class and the prof thought that a similar problem would be a good way for him to play Solitaire all day, so I argued that the task was meaningless and wasteful; even more so because the majority of students in the class weren't computer students.

    He claimed that being able to correlate computer implementations and construction projects was paramount, so I looked up a construction management professor I knew well, called him on speakerphone and asked if he ever asked his students to draw out a software plan or if any CIS/CS majors had taken his classes as an elective for their degree.

    My prof turned red when the other prof started rofl'ing. We still had to do the project, but nobody took it seriously. I drew a cubicle with a toilet, roof, and door.
  • Asiago Chow 2008-04-10 17:12
    The house question is totally legit for a consulting company.

    Businesses don't hire programmers because they want code. They don't care about code. They have no use for code. They want business problems solved. A new staff programmer usualy spends a few years as an apprentice (aka jr. programmer) learning the ins and outs of that business's problem domain. A programmer hiring on to a financial services company for the first time will spend a lot of time learning about financial services before they are promoted to a major problem solving position. A programmer hiring on at an insurance company or medical imaging or whatever else company will likewise spend time learning the problem domain. Figuring out how problems in that specific field are solved. A consultant doesn't have that time. They must be able to figure out a new problem domain quickly and produce useful results... and they can't always subcontract out all the work. They certainly can't say, "your problem is stupid I'm leaving."

    So...the job applicant wasn't qualified to do the work.

    As for the answer... the best starting point would've been to ask where the house was going to be. Above or below land or sea? In air or space? Once they answer that (e.g. below ground) you'd ask for size and then you say, "first we detonate a small nuclear bomb at the sight to dig the initial hole, then we cast a slab floor. We bring the new homeowner on-sight to verify the work and lay a 17' thick slab of reinforced concrete over the crater with anchor pins for automated, remotely controllable, hanging wall segments and modular fixture units that can be attached to the hanging walls. We then charge time and material to remotely reconfigure the hanging wall and fixture assemblies until the customer accepts the product."


    Perfect consultant answer... the house can be as big as they want, have as many rooms as they want, you can keep billing the customer forever for minor changes, and there is no door so the customer can't come after you when the radiation poisoning kicks in.
  • Fraggle My Rock 2008-04-10 17:28
    Asiago Chow:
    Perfect consultant answer... the house can be as big as they want, have as many rooms as they want, you can keep billing the customer forever for minor changes, and there is no door so the customer can't come after you when the radiation poisoning kicks in.


    And there will be cake.

  • FredSaw 2008-04-10 17:30
    Asiago Chow:
    first we detonate a small nuclear bomb at the sight to dig the initial hole
    Doc Brown:
    I'm sure that in 2008 plutonium is available in every corner drug store, but in 1955 it's a little hard to come by.
  • Flash 2008-04-10 17:46
    Asiago Chow:
    "first we detonate a small nuclear bomb at the sight to dig the initial hole, then we cast a slab floor. We bring the new homeowner on-sight

    "site" not "sight"


    evilghost:
    are there any leans against your property?

    "liens" not "leans"
  • Fraggle My Rock 2008-04-10 17:51
    Flash:
    Asiago Chow:
    "first we detonate a small nuclear bomb at the sight to dig the initial hole, then we cast a slab floor. We bring the new homeowner on-sight

    "site" not "sight"


    evilghost:
    are there any leans against your property?

    "liens" not "leans"


    "site" not "sight". <--- full stop

    "liens" not "leans". <-- full stop
  • LieutenantFrost 2008-04-10 17:52
    Asiago Chow:
    (Long explanation involving remote controls and nuclear weaponry...potentially taking place in space)

    I'm not sure if you're joking or not. Is that The Real WTF?
  • RH 2008-04-10 18:21
    Fraggle My Rock:
    Flash:
    Asiago Chow:
    "first we detonate a small nuclear bomb at the sight to dig the initial hole, then we cast a slab floor. We bring the new homeowner on-sight

    "site" not "sight"


    evilghost:
    are there any leans against your property?

    "liens" not "leans"


    "site" not "sight". <--- full stop

    "liens" not "leans". <-- full stop


    "site", not "sight". <--- comma

    "liens", not "leans". <-- comma
  • Anonymous 2008-04-10 19:11
    vt_mruhlin:
    Josh:
    I got the "design me a house" question during one of my first-job-out-of-school interviews. Given my n00bishness, I didn't have the liberty of scoffing outright, but, to say the least, that was one of the few interviews that didn't result in a job offer.

    I sort of understand the brain teaser ones, or at least, would if the interviewers were coming up with their own, but how does "build me a house!" in any way relate to programming or software design?


    Given the changing of the number of rooms, I'm guessing it's supposed to mimic the flakiness of the software requirements gathering process?

    Now, it's fun because I bet architects actually get customers like that. I wonder if they have to design software for their job interviews.


    It's a trick question. They are looking for people who suggest cubicles so they can put them in one and argue that the candidate thought they were a good idea. =)
  • The Real WTF 2008-04-10 19:24
    Tim:
    If I were asked to design a house and I was truly that frustrated with the interview at that point I think I'd start to have fun with it. I'd start asking mind numbing questions like this:

    - How big is the land for the house?
    - What shape is the land? Can you draw it for me?
    - What city/town is it in? Do they impose any building restrictions?
    - How high is the water table?
    - Is the land sloped? That could have an effect on the septic field of course...
    - What building materials can I choose from? How do their prices compare?

    Now if they have well-thought out answers for all of this, not just something off of the top of their head, then you're stuck. But otherwise you can keep going on all day to keep them guessing.


    Well, considering the point of that ridiculous exercise is to see how you are at gathering user requirements...
  • Franz Kafka 2008-04-10 20:23
    Khanmots:
    However, some things like weighing a jet... why waste your candidates time?


    How is weighing a jet different from weighing the front and back two sets of tires (with attached jet)? If you really need to know, it becomes a mechE problem - design a scale that you can sit a jet on.
  • Franz Kafka 2008-04-10 20:28
    xtremezone:
    Josh:
    I got the "design me a house" question during one of my first-job-out-of-school interviews. Given my n00bishness, I didn't have the liberty of scoffing outright, but, to say the least, that was one of the few interviews that didn't result in a job offer.

    I sort of understand the brain teaser ones, or at least, would if the interviewers were coming up with their own, but how does "build me a house!" in any way relate to programming or software design?

    It's entirely possible the interviewer was either testing his openness to admit when he's out of his area of expertise (building a house isn't a programmer's job) or testing his ability to communicate with the user.


    Anybody can build a house. There are details (such as meeting code) that would make the house illegal, but you hire experts for that. It'll cost more than if you know how to do for yourself, but oh well. This is akin to asking a programmer how to start a company - nobody knows evberything they need the first time they do it, but it isn't that hard.
  • Anony 2008-04-10 22:50
    The thing that's not thought of is the amount of time you have to spend explaining the whole thing to the group. It would probably take more than the two minutes you save by going 'parallel' over 'serial' just explaining, and arguing, about all of the steps.

    Faster is not always the most efficient.
  • Matts 2008-04-10 23:00
    Country is applicable to software, so are permits. And leans/financing/profitability is rather significant. Perhaps the metaphor is not all that bad.
  • Easter Bunny 2008-04-10 23:27
    Hmmmm.

    Just mess with the interviewer's head and explain that software doesn't have a physical existence separate from a computer or storage medium. Therefore *drawing* a house would be inappropriate. Instead the interviewer and interviewee must maintain the existence of the house design in each person's memory in order to really emulate the process.

    Then build away!
  • Easter Bunny 2008-04-10 23:39
    pythonic:

    The point of the exercise is not to actually design a house in 5 minutes. The point is to see what kind of questions the interviewee asks and how they would gather requirements and understand use cases.


    Son of a gun!

    I guess that's why I got the funny looks when I pulled out the suitcase full of Legos.
  • Easter Bunny 2008-04-11 00:04
    David V. Corbin:
    I have to chime in on this one...


    Your dime.

    David V. Corbin:
    As a developer for over 35 years, (and even having worked for MSFT for a while) I completely AGREE with the technique of asking "brain-teasers" and "non-programming" questions on my interviews.


    Been programming for 30+ years, but never for MSFT. No idea if that's a good thing or a bad one.

    Personally the whole "brain-teasers" leave me flat. The purpose is to produce solid, dependable, stable applications. And anything that doesn't lead to this end result is a waste of effort. And I really don't see the connection between "brain-teasers" and programming.

    IMO 99% of programming is having a good memory.

    David V. Corbin:
    For many years I have utilized a completely ficticious language for all programming samples that take place on the interview.


    *Shrug* isn't that a complete waste of time? The whole point behind using a standard programming language in the interview process is to have a common frame of reference. Both the interviewer and the interviewee understand the syntax, limitations and libraries involved with this language.

    Throwing some pseudo-language that you created into the mix doesn't appear, to me at least, as an optimal solution. Instead all it could do is drag the whole interview process out. Either the interview takes longer than it should, in order to explain the nuances of this new language, or time limitations will restrict the depth of the interview process.

    David V. Corbin:
    In the long hual, I am much more interested in how a person thinks and how they address situations they have never seen before.


    *shrug* Most of the programming I've encountered has pretty much either been similar to stuff I've done before or at best an evolution of older technology or techniques. In the world of business programming there really ain't that much new under the sun.

    IMO I'd rather have someone with a depth of experience and a good memory. And if the person isn't a complete sociopath, emotional flake or has passed the egomania phase of programming, which we've all had to deal with, then that's a total bonus.

    David V. Corbin:
    I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.


    Well you're in the minority then. Sorry.
  • Easter Bunny 2008-04-11 00:06
    Sanity:

    That's why I answer with "I would hire an architect." If he insists that I'm his architect, I would answer, "I would go to the library and read books on architecture."


    Hmmmm.

    I would answer "I *was* interviewing for the Senior Software Developer position but since I'm now interviewing for an Architect position ... I want a raise."
  • Easter Bunny 2008-04-11 00:22
    Aaron:
    It actually just occurred to me that a "fully customizable" house as per interview spec would probably violate several bylaws in most cities. So my answer to that question might actually be "I'd choose not to build your house because I think I could make more money by suing you."


    Me I'd point the guy at a geodesic dome. No interior walls are load-bearing so do whatever the hell you want.
  • ajk 2008-04-11 01:19
    The real WTF is the ads displayed by AdSense from Google - ads about housing architecture LOL
  • Lynx@Work 2008-04-11 01:36
    Outlaw Programmer:

    In The Pragmatic Programmer, the author talks about how programming is more like a garden.

    I agree. Sometimes you deal with fertilizer all day and really need to spread it around to make sure your project can get to where you want it. Just like application development.

    :D :D
  • NewbiusMaximus 2008-04-11 01:38
    My lands, why keep playing along if you've already decided the interview is over? If the interviewer is going to be rude about it, follow suit and just stop answering questions and/or walk out of the room.

  • Mef 2008-04-11 02:24
    Guys, i actually dont know what's the problem to design house?
    The interviewer asked some simple design skills like:

    class Room
    {
    };

    class Floor
    {
    Vector<Room*> rooms;
    public:
    bool MoveWall(int wallID);
    };

    class House{
    Vector<Floor*> floors;

    };

    or something like that. Its up to creation skills of candidate. Add some methods and discuss about that.
    That's the same as "how much cars in the US?" - interviewer dont ask for exactly value but he would like to see how the candidate thinks. nothing complex.
  • some guy who does job interviews 2008-04-11 02:47
    Actually ...

    Not sure of how the rest of the world sees these riddle parts, but when I am interviewing people for positions on my team I always put in at least one of these things or even rather non-sensical tasks.

    Actually having the balls to include "well, i don't see how this is relevant for the job, but..." along with some fun or creative answer are the top scorers for me.

    The approach and reaction to the situation are waaay more important than the actual answer. Businesslife offers sufficient non-sensical and frustrating situations that you just have to go along with occasionally that including such a situation in an interview seems rather correct to me.

    And considering that I still have never rued getting anyone on my Team so far I guess the approach is sound enough.

    Just my two cents on the issue.
  • nat42 2008-04-11 03:11
    Hey, I had "draw me a house" this week too. And I did, no questions asked!

    However the interviewer was concerned I didn't ask any questions.

    And I had to explain that "the draw me a ..." business just doesn't work like that. First you show a sample of what you can do, and only then do you start discussing what someone wants.

    Would you go to one of though street portrait drawers that had no sample pictures up? Do you order a couch in your choice of fabric, without fabric swatches or seeing what that style of couch may look like? Would you order custom Nike joggers (Nike ID) without any idea what the final product may be like? -> Did you mean when you order multiple pumps you didn't want the footwear to resemble a darlek?? No. You would not order or set out specs for these things without a clue as to the final outcome.

    It's like a user interface mockup. It's a throw away "here what I'm thinking" to let your client know -
    a) your drawing skills: are you the be interviewee to be hired to draw houses, is it pointless given the lack of drawing skills to specify the species of grass they want drawn for the lawn
    b) Something that can then be discussed to meet the spec. Your client , the interviewer, is probably only dabbles in the drawn house industry and likely will be aided by a model to discuss. They may realise more specs from the mockup they they had not thought to include initially
    c) They may have only half read the "Draw-me-a-house" interview pattern and misunderstand what it demonstrates...
  • M.I.K.e 2008-04-11 03:40
    Reminds me of the time when my boss "corrected" my experience in OS-9 to OS/2 on my resume without asking me if that was a typo or if there really is a difference between the two systems.

    For those who don't know:

    OS/2 is a PC operating system that was developed by IBM and Microsoft, but then Microsoft decided to push Windows instead.

    OS-9 was originally designed by Microware for the Motorola 6809 in the pre-MS-DOS days. Nowadays it's used as an embedded system for different architectures and is sold by Radisys.
  • Sjaak spoiler 2008-04-11 03:52
    One should definately ignore companies that ask for references.
    I've seen a major company go bankrupt because of a manager hired after our HR manager inquired all his references.
    After turning a small yearly profit into a multi million dollar loss, my collegue just Googled this chap's name and it turned out he already left a trail of bankrupt and devastated companies in the past.
    So much for references.....

  • Cope with IT 2008-04-11 04:33
    Or may be they werer just entirely nuts (as well as not watching their typing) and were talking about a mark on some sort of drain (gutter tag).

    Have a nice morning/day/evening - whenever you are
  • NeoMojo 2008-04-11 07:02
    Khanmots:

    send 1,2 across (2)
    send 1 back (1)
    send 5,10 across (10)
    send 2 back (2)
    send 1,2 across (2)
    done! (in 17)


    Send 1,2 across (2)
    Throw torch across bridge (<1)
    send 5,10 across (10)
    done in 12
  • JB 2008-04-11 07:21
    I don't thing that bombarding the interviewer with more irrelevant questions would get the point accross. I get the feeling that this simpleton would delight in the idea that you are ingaged in this his inane exercise. In the end he'd just flip every question into "how can you be flexible enough to handle every option?"
  • Addie 2008-04-11 08:17
    Franz Kafka:
    Khanmots:
    However, some things like weighing a jet... why waste your candidates time?


    How is weighing a jet different from weighing the front and back two sets of tires (with attached jet)? If you really need to know, it becomes a mechE problem - design a scale that you can sit a jet on.


    No no no. Float the jumbo jet in a giant pool of mercury. Measure the change in depth of the pool. Depth times cross sectional area times mercury density - bingo.

    And then replace all the aluminium parts of the aeroplane.
  • tinkerghost 2008-04-11 08:44
    Easter Bunny:
    Aaron:
    It actually just occurred to me that a "fully customizable" house as per interview spec would probably violate several bylaws in most cities. So my answer to that question might actually be "I'd choose not to build your house because I think I could make more money by suing you."


    Me I'd point the guy at a geodesic dome. No interior walls are load-bearing so do whatever the hell you want.

    My thought was post & beam for the same reason. Plus you have vertical outside walls, which simplifies tacking on additions.
  • woohoo 2008-04-11 09:26
    Easter Bunny:

    The purpose is to produce solid, dependable, stable applications. And anything that doesn't lead to this end result is a waste of effort. And I really don't see the connection between "brain-teasers" and programming.

    Flexible thinking.
    Thinking out-of-the-box.
    Dealing with the unexpected.
    etc etc ...

    Easter Bunny:

    IMO 99% of programming is having a good memory.


    WHAT? You must be a code monkey, no kidding...

    Software architects and good developers very much depend on different skills.

    No real skill that requires intelligence depends 99% on good memory. That's what we have documentation, lexicons etc. for.
    I refuse to remember the APIs of 3000+ classes, when it is much more important to have really absorbed the paradigms of OO.

    Unfortunately it is very often the other way round. Reminds me of the people that completed university physics exams by learning the complete book by heart without understanding anything, but perfectly replicating all derivations on request - often with better grades than the ones who tried to understand what they were doing...
    I would not count on the former to solve a *new* problem, though.

    David V. Corbin (whose attitude you criticised in your post) has it spot-on.

    Easter Bunny:

    Personally the whole "brain-teasers" leave me flat.


    Well, *that* might be part of the problem... ;o)
  • wilko 2008-04-11 09:37
    Obviously the the house problem was to see if the candidate could write modular software, and handle interconnection or reorganisation.

    Rooms could be individual units, with wiring and plumbing that stack or be combined with each other to make larger rooms. Then you wrap it in a nice pleasing skin (like a UI?).

    Kitchen inherits from room, has sink, cooker which are Appliances.

    (This would of course be a bitch to make unless it were made of something like lego. Though I've just googled and modular houses exist! Damn)

    I talk shit [in interviews]. That's all they've ever seemed to want. Maybe I'll be a manager some day.
  • FredSaw 2008-04-11 10:09
    Easter Bunny:
    David V. Corbin:
    I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.


    Well you're in the minority then. Sorry.
    Don't be so sure. Particularly in this field (IT), knowledge becomes obsolete very quickly. I was once an expert in VB6 and ADO. With the advent of .Net, that knowledge became obsolete, and I had to learn the .Net platform and C# language (a company preference over VB.Net). More recently I've been studying Ajax, WCF, SQL Server Reporting Services, and Generics, with LINQ and Silverlight waiting in the wings. An employer who hired me simply for my knowledge in a specific area would be foolish. Better to know that I keep studying to stay abreast of developments in this field.
  • Asiago Chow 2008-04-11 10:12
    LieutenantFrost:
    Asiago Chow:
    (Long explanation involving remote controls and nuclear weaponry...potentially taking place in space)

    I'm not sure if you're joking or not. Is that The Real WTF?


    It's a bit strange but a WTF? Shrug.

    Clue 1: Answers to hypothetical questions are hypothetical. Hypothetical answers are not constrained by normal physical, legal, and economic limits; they are constrained only by the terms of the hypothetical question and the capabilities of the answering party. This hypothetical question did not set any real constraints beyond the most basic: design me a house. Ergo the answering party is free to set the terms at will. You could correctly answer with, "I'm going to design you a bounce house. It will be inflatable, economical, and fun! Most importantly it can be expanded with duct tape and more bounce houses, and can be used most anywhere so long as you avoid sharp pointy protrusions and women with high heels."

    Clue 2: A joke, in the context of a job interview, can be a very serious answer.
  • Easter Bunny 2008-04-11 10:17
    woohoo:
    Easter Bunny:

    The purpose is to produce solid, dependable, stable applications. And anything that doesn't lead to this end result is a waste of effort. And I really don't see the connection between "brain-teasers" and programming.

    Flexible thinking.
    Thinking out-of-the-box.
    Dealing with the unexpected.
    etc etc ...


    *shrug* and "brain-teasers" will identify those people for you? So someone who is good at what are effectively cocktail party games is who you want developing applications for you?

    Well then. Bring on the Pictionary!

    My negative view about these "brain-teasers" is that they're irritating, useless and frankly don't really show whether or not someone really *is* flexible or capable of thinking out of the box. All it offers is the opportunity for the interviewer to annoy the hell out of the interviewee and to waste some more time in the interview process.

    woohoo:
    Easter Bunny:

    IMO 99% of programming is having a good memory.

    WHAT? You must be a code monkey, no kidding...


    *shrug* I code. I architect. I really can't say I care overly much which. It's all enjoyable to me.

    Frankly there really isn't much new under the sun when it comes to business programming.

    woohoo:
    Software architects and good developers very much depend on different skills.


    Really? I have been in the business for a few decades so I do know the difference.

    Here's your choice:

    A. Architect, very creative but lousy memory

    B. Architect, not so creative but perfect memory

    IMO "B" will win out every time. Why? Because a creative application or system is nice, but users want stability more than anything else and, IMO of course, someone with a perfect memory is less likely to create a monstrous pile of rubbish.

    woohoo:
    No real skill that requires intelligence depends 99% on good memory. That's what we have documentation, lexicons etc. for.


    Yes we do. But if you can't keep this stuff in memory then what good are you? Particularly if you're having to deal with multiple systems in widely differing languages all of which have their own unique syntax and, more importantly, their own particular set of libraries.

    Consider concatenating a string. Every damn language has its own particular style of concatenating a string. Every stupid SQL engine likewise. It's a silly example but if you are having to deal with legacy systems along with a host of other established systems in your application then being able to remember the specifics does frankly help.

    woohoo:
    I refuse to remember the APIs of 3000+ classes, when it is much more important to have really absorbed the paradigms of OO.


    'Cause remembering the paradigms of OO are so hard?

    No offense but remembering the paradigms of OO isn't all that hard.

    woohoo:
    Unfortunately it is very often the other way round. Reminds me of the people that completed university physics exams by learning the complete book by heart without understanding anything, but perfectly replicating all derivations on request - often with better grades than the ones who tried to understand what they were doing...
    I would not count on the former to solve a *new* problem, though.


    Now you're introducing a strawman.

    woohoo:
    David V. Corbin (whose attitude you criticised in your post) has it spot-on.


    *shrug* I disagree

    woohoo:
    Easter Bunny:

    Personally the whole "brain-teasers" leave me flat.

    Well, *that* might be part of the problem... ;o)


    Not really. They simply bore me. When/if I encounter them in an interview I pretty much lose interest at that point. If they want someone experienced who can get the job done then they can stop fucking around with idiotic "brain-teasers" and actually present the problems they want to hire me to solve.

    Seriously. You'd rather hire someone who gives reasonable answer for the "Rope Bridge" nonsense rather than someone who can jump right in on discussing the problem at hand and offer an intelligent discourse on what the issues are?

    *shrug* good luck with that.
  • Easter Bunny 2008-04-11 10:25
    FredSaw:
    Easter Bunny:
    David V. Corbin:
    I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.


    Well you're in the minority then. Sorry.
    Don't be so sure. Particularly in this field (IT), knowledge becomes obsolete very quickly. I was once an expert in VB6 and ADO. With the advent of .Net, that knowledge became obsolete, and I had to learn the .Net platform and C# language (a company preference over VB.Net). More recently I've been studying Ajax, WCF, SQL Server Reporting Services, and Generics, with LINQ and Silverlight waiting in the wings. An employer who hired me simply for my knowledge in a specific area would be foolish. Better to know that I keep studying to stay abreast of developments in this field.


    That's just the cost of doing business as a developer.

    Sure I did the same thing. Programmed VB, ADO and a pile of other things. Hell I started programming on a TRS-80 Model I, if that matters at all, and had to change to programming RPG went I got a job coding IBM midrange.

    Sure there's a lot of new technology out there. But a lot of it is an evolution of previously existing technology as well.

    And tell me that an excellent memory isn't helpful in learning new tech. You're not are you?

    As for the rest. *shrug* employers hire you for what you can do now, not what you can do in a few years. Otherwise we could go into an interview, answer the silly-ass "Rope Bridge" nonsense and get a job right then and there. Because it wouldn't matter that we had no knowledge of the tech needed in the job, we can learn pretty damn quickly eh?

    It's nice to dream, but reality is somewhat different.
  • ubersoldat 2008-04-11 10:31
    Sjaak spoiler:
    One should definately ignore companies that ask for references.
    I've seen a major company go bankrupt because of a manager hired after our HR manager inquired all his references.
    After turning a small yearly profit into a multi million dollar loss, my collegue just Googled this chap's name and it turned out he already left a trail of bankrupt and devastated companies in the past.
    So much for references.....


    Asking for references is something stupid. Maybe the person who gets called won't even remember you or even worst, confuse you with someone else. IMO anyone who works with computers have left something behind, either a webpage, a blog, something. So just google the name, ask for his IRC/MSN/Quake/SecondLife nickname (which btw, is something to be studied because there's got to be a very close relationship between a nickname you *choose* and your personality) and see what pops ups.
  • NiceWTF 2008-04-11 10:48

    Like most sane people, I absolutely despise the whole Job Interview 2.0 thing.


    http://www.phdcomics.com/comics/archive.php?comicid=993
  • ForcedSterilizationsForAll 2008-04-11 10:55
    If ever asked to design a house in an interview, I would tell the interviewer that I am an Application Developer, not an architect. Then I'd tell him if he wanted me to design a house, I'd subcontract the work out to experts in a third world country.
  • FredSaw 2008-04-11 10:56
    M.I.K.e:
    Reminds me of the time when my boss "corrected" my experience in OS-9... *snip*
    OS-9 was originally designed by Microware for the Motorola 6809 in the pre-MS-DOS days.
    Oh, man, I loved OS-9! Used to code modules for it in Assembler and Basic09. I learned C on that machine, too, but the modules took up so much of my 256k of memory that I generally stuck to Assembler. I was devastated when the CoCo finally faded from the scene, relegated to obsolescence by 16-bit machines. That was about the time I decided to go to college and switch my occupation to programming.

    I was one of those who got our first copy of OS-9 from the Rogue game diskette, before the OS was officially released. Man, those were happy days! I should have moved up to the 68xxx series instead of going with Intel. But of course the university, and later, the businesses with programmer positions were all using Intel/Microsoft. And my C++ was waved aside for RAD using VB4. I haven't been back to C++ since.

    I can't say that I would include OS-9 experience on a resume, though. Too long ago, and too obscure.
  • FredSaw 2008-04-11 11:07
    Easter Bunny:
    And tell me that an excellent memory isn't helpful in learning new tech. You're not are you?
    Memory is obviously useful; so is Google.
    Easter Bunny:
    As for the rest. *shrug* employers hire you for what you can do now, not what you can do in a few years.
    Probably, some do; others have more insight. I'm included in the interviews for positions on our team, and of course we're looking for people who are currently skilled in ASP.Net and SQL (and others). But we're looking beyond that, too. In addition to personality fit, we're interested in what they've done before, how they've adapted to changes in technology. This, specifically because we want to know how well they will adapt to future changes as one of our employees. Our company provides us a little training here and there, but for the most part we keep up on our own. New team members need to have that habit, too.
  • Easter Bunny 2008-04-11 11:20
    FredSaw:
    Memory is obviously useful; so is Google.


    Google is only useful if you can figure out or remember the specific keywords that'll actually return a useful response. Or at least one that isn't completely overwhelmed by useless nonsense.
  • Anon Fred 2008-04-11 11:29
    Easter Bunny:
    David V. Corbin:
    I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.
    Well you're in the minority then. Sorry.
    I'm sure it looks that way to you.

    However, there are lots of shops where general knowledge is important. It's not so much that you need to know the answers. It's that you need to know the questions.

    Of course, there's a lot of money to be made off of people who've never read The Mythical Man-Month and think "we need 10 .NET developers with LibFoo 1.3.98 experience RIGHT NOW!" The project is doomed, but if you can convince the clueless manager that he needs to hire you as a contractor, you'll do fine.

    Just make sure you get paid up-front.
  • Mot 2008-04-11 12:51
    The truly parallel method.
    -------
    1 - Carry 10 across on his back (1)
    send 1 back (1)
    1 - Carry 5 across on his back (1)
    send 1 back (1)
    1 - Carry 2 across on his back (1)
    done! (in 5)
  • Nick 2008-04-11 13:12
    Hmmm is 2 female and Cute, cross with 1 & 2, torch bridge...
  • real_aardvark 2008-04-11 13:14
    Fraggle My Rock:
    "Design me a house," the interviewer cheerfully demanded."

    See this was your mistake in not taking "the out". What you should have said was "You betcha!" and quickly walked out of the interview and said nothing more.

    Then after about six weeks you could have sent some pictures of some housing complex construction site that you had taken (or jacked from Google) and sent a lengthy fax outlining expenditures broken down based on materials, labor costs and given a bank account number for deposit for "works rendered". To add icing on the cake, the report would have a good old fashioned Italian name on it with emphasis on "Family Business", "We get the job done no matter what", and "We kill the competition" references.

    That would have taken good care of Mr. HR Know-it-all.
    Fail!
    You're missing the pond. Fish need somewhere to sleep too, you know...
  • real_aardvark 2008-04-11 13:17
    WhiskeyJack:
    xtremezone:
    Whether this particular interviewer was calculated or insane is anybody's guess, but the job of the person(s) hiring is to figure out which candidate is most fitting for the position, not who claims to know the answer to every question asked in an interview. Saying you don't know is a valid response, unless the thing you don't know is critical to the position (in which case you probably shouldn't be applying).


    I found out some time after I was hired that one of the reasons was because I was honest when answering the question: how do you feel about round-trip software engineering? (E.g. with Rational Rose)

    How do I feel? I think it's a neat idea in theory but totally impractical in the real world of iterative development and refinement. Far more efficient to have a high-level overview design and not try to design out the minutia until you've got something that works well, then back-fill the details. Designs for the stuff in between are better left to whiteboards, doodles and face to face discussion, not CASE tools.

    My interviewers looked at each other and smirked when I gave my answer. Seems they'd been doing exactly that, until upper management recently came down with a directive to use the CASE tools. They liked that I was familiar with the subject and realistic in my assessment of theoretical benefits versus reality.
    Well, it works with a suitable AST.

    Unfortunately, very few programmers code directly to an AST.

    Even more unfortunately, Rational Rose is very far indeed from being an AST.
  • real_aardvark 2008-04-11 13:27
    nat42:
    Hey, I had "draw me a house" this week too. And I did, no questions asked!

    And I had to explain that "the draw me a ..." business just doesn't work like that. First you show a sample of what you can do, and only then do you start discussing what someone wants.

    I must be the only person here who immediately thought of Tracy Kidder's book "House." (Which I thoroughly recommend. Franz Kafka, are you still listening?)

    I'd say that it encapsulates the folly of using house-building as a metaphor for software beautifully. Not that it's a bad metaphor; simply that it's a perfect real-world example of how "only then do you start discussing what someone wants" fails miserably.

    Mind you, bringing that up at an interview would probably elicit nothing but blank stares. Human Resources people are such uninquisitive folk that I'd be surprised if they even read a book. Which is a shame, because they have almost no other visible skills, other than decent dress-sense and a nice set of pearly whites.
  • Kuba 2008-04-11 13:53
    WhiskeyJack:
    PosterDude:
    I would introduce a house builder monad parameterized over a housing structure type. I'd be sure is was left adjoint to the foundation functor.


    Wow, you sound like some of the guys I work with.



    So, you work for INRIA, Microsoft Research or Jane Street? :)
  • Franz Kafka 2008-04-11 14:02
    wilko:
    Obviously the the house problem was to see if the candidate could write modular software, and handle interconnection or reorganisation.

    Rooms could be individual units, with wiring and plumbing that stack or be combined with each other to make larger rooms. Then you wrap it in a nice pleasing skin (like a UI?).


    If they wanted something modular, then they shouldn't be designing a house - houses aren't modular (unless they're trailers).

    By the way, reconfiguring plumbing without getting the results approved (every time) could land you in jail - connect waste to supply and you can poison a whole neighborhood.

    real_aardvark:

    I must be the only person here who immediately thought of Tracy Kidder's book "House." (Which I thoroughly recommend. Franz Kafka, are you still listening?)


    Heh, nice. Looks like a good read.
  • Kuba 2008-04-11 14:29
    Franz Kafka:
    wilko:
    Obviously the the house problem was to see if the candidate could write modular software, and handle interconnection or reorganisation.

    Rooms could be individual units, with wiring and plumbing that stack or be combined with each other to make larger rooms. Then you wrap it in a nice pleasing skin (like a UI?).


    If they wanted something modular, then they shouldn't be designing a house - houses aren't modular (unless they're trailers).

    By the way, reconfiguring plumbing without getting the results approved (every time) could land you in jail - connect waste to supply and you can poison a whole neighborhood.


    I call BS on that. Waste systems are usually unpressurized, and usually incompatible (pipe diameter and fitting-wise with supply lines). It'd take an idiot to confuse them.

    I presume that in most places they are not done like in the US. In the US sewer piping is often done to supply-standards (could in principle withstand supply pressures, if you'd plug everything), but in e.g. Poland, the waste piping is not designed to be pressurized, and most seals would probably leak like hell.

    If I were to directly attach a freshwater pipe to a waste pipe, all I'd get, in almost any place on the planet, is a huge waste of fresh water, and that's it. No cross-contamination due to relatively fast flow.

    Cheers, Kuba
  • C. F. Martin 2008-04-11 15:41
    Best comment ever
  • Brad B 2008-04-11 16:38
    I had a previous boss use the house metaphor, I never understood the use a this. I know 100 times more about building software than construction, and I do my own plumbing and electrical. Metaphors are useful when they put the unfamiliar in familiar terms, and this does the exact opposite.

    A useful metaphor would be if I hired a carpenter to work on my house, and when I said I couldn't understand them, they explained as "It's like a C++ program..."
  • woohoo 2008-04-11 16:56
    Easter Bunny:
    woohoo:
    Easter Bunny:

    The purpose is to produce solid, dependable, stable applications. And anything that doesn't lead to this end result is a waste of effort. And I really don't see the connection between "brain-teasers" and programming.

    Flexible thinking.
    Thinking out-of-the-box.
    Dealing with the unexpected.
    etc etc ...


    *shrug* and "brain-teasers" will identify those people for you?

    At least the odds of identifying such people are higher with "brain teasers" than with questions directly referring to special technical/coding skills.
    Many of the existing good questions that do refer to special skills are "brain teasers" in their own right, only in the context of said skill.
    Easter Bunny:

    So someone who is good at what are effectively cocktail party games is who you want developing applications for you?

    I did not say anything about "cocktail party games". Of course there are lots of inadequate "brain teasers", but this holds equally true for all technical/special questions as well.
    Easter Bunny:

    Well then. Bring on the Pictionary!

    My negative view about these "brain-teasers" is that they're irritating, useless and frankly don't really show whether or not someone really *is* flexible or capable of thinking out of the box.

    And "technical" questions or small talk do that job better? C'mon...
    Easter Bunny:

    woohoo:
    Easter Bunny:

    IMO 99% of programming is having a good memory.

    WHAT? You must be a code monkey, no kidding...


    *shrug* I code. I architect. I really can't say I care overly much which. It's all enjoyable to me.

    Frankly there really isn't much new under the sun when it comes to business programming.

    woohoo:
    Software architects and good developers very much depend on different skills.


    Really? I have been in the business for a few decades so I do know the difference.

    A few? Aha, so you perhaps beat me here, it's only two decades for me ;o)
    Easter Bunny:

    Here's your choice:

    A. Architect, very creative but lousy memory

    B. Architect, not so creative but perfect memory

    If you take such pathological border cases like "lousy" and "perfect", you always can construct a case that makes your argument win.
    I care to disagree nevertheless. "Lousy" memory can be compensated with discipline in commenting and documentation.
    "Lousy" thinking (creativity is only one part of it) can not be compensated that easily...
    Easter Bunny:

    IMO "B" will win out every time. Why? Because a creative application or system is nice, but users want stability more than anything else and, IMO of course, someone with a perfect memory is less likely to create a monstrous pile of rubbish.

    That is complete nonsense... Every pile of (software)rubbish I have encountered was always the fault of people not knowing their stuff or thinking about the problem from wrong perspectives - never was bad memory the reason - or did "perfect memory" save anything, at that.
    I know more than one developer who is able to recite vast parts of the APIs in question, but creates complete garbage when coding.
    On the contrary, people with a less-than-perfect memory but good understanding tend to be *much* more disciplined when it comes to commenting and documentation, because they simply *have* to be.
    Easter Bunny:

    woohoo:
    No real skill that requires intelligence depends 99% on good memory. That's what we have documentation, lexicons etc. for.


    Yes we do. But if you can't keep this stuff in memory then what good are you? Particularly if you're having to deal with multiple systems in widely differing languages all of which have their own unique syntax and, more importantly, their own particular set of libraries.

    Even more important it is then to *understand* these systems and better know where to look for the information you need than knowing all of it (you never do that anyway...) by heart.
    With increasing complexity it is neither possible nor desirable to keep all the details (especially pertaining to libraries/APIs) in memory, because this informations change frequently anyway.
    And mind you, you were talking about "99% is memory" - I would not have reacted so strongly if you'd not have taken this absurdly extreme notion.
    Easter Bunny:


    Consider concatenating a string. Every damn language has its own particular style of concatenating a string. Every stupid SQL engine likewise. It's a silly example but if you are having to deal with legacy systems along with a host of other established systems in your application then being able to remember the specifics does frankly help.

    It does help, yes. But it does not make you a better developer/architect. Never.
    Most likely it makes you only a little faster than the other guy who has to look stuff up.
    Easter Bunny:

    woohoo:
    I refuse to remember the APIs of 3000+ classes, when it is much more important to have really absorbed the paradigms of OO.


    'Cause remembering the paradigms of OO are so hard?

    No offense but remembering the paradigms of OO isn't all that hard.

    You'd be right if I'd have said "remember the paradigms". I said "absorb the paradigms", which means not only remembering them, but most importantly *understanding* them and putting them to (correct!) use over and over again. It takes years to become a really good developer, good memory or not.
    Easter Bunny:

    woohoo:
    Unfortunately it is very often the other way round. Reminds me of the people that completed university physics exams by learning the complete book by heart without understanding anything, but perfectly replicating all derivations on request - often with better grades than the ones who tried to understand what they were doing...
    I would not count on the former to solve a *new* problem, though.


    Now you're introducing a strawman.

    I was only trying to illustrate the fact that knowing many (if not all) things by heart does not necessarily make you good in a certain field of knowledge.
    Easter Bunny:

    woohoo:
    David V. Corbin (whose attitude you criticised in your post) has it spot-on.


    *shrug* I disagree

    Of course you have every right to do so. Still, he had the better arguments ;o)
    Easter Bunny:

    woohoo:
    Easter Bunny:

    Personally the whole "brain-teasers" leave me flat.

    Well, *that* might be part of the problem... ;o)


    Not really. They simply bore me. When/if I encounter them in an interview I pretty much lose interest at that point. If they want someone experienced who can get the job done then they can stop fucking around with idiotic "brain-teasers" and actually present the problems they want to hire me to solve.

    Come on. You can't seriously present a real problem from a real system (apart from very simple or small ones) in an interview and expect to get meaningful information from that.
    Most importantly, you will never know if the interviewee will be able to adapt to new technologies and requirements which have nothing to do with the problem du jour...

    And programming skills are not everything, moreover. The times of monad wizards hacking together whole systems on their own is over - the new employee has to fit in your team structure and be able to work autonomously as well as closely with others and communicate the things he has accomplished.
    Easter Bunny:

    Seriously. You'd rather hire someone who gives reasonable answer for the "Rope Bridge" nonsense rather than someone who can jump right in on discussing the problem at hand and offer an intelligent discourse on what the issues are?

    Please show me where I said that the "Rope Bridge" is a good assessment tool? But assessing skills is more than asking for technical knowledge in a special field - you can do that additionally, yes, but it does not show you what kind of brain you are going to hire ;o)
  • Horace Finklemeyer 2008-04-11 17:48
    "Um, I'll need 30% of the construction costs up front..." Holy cow, I wish software was like that!
  • olie 2008-04-11 18:55
    While I follow that many people give crappy interviews, and your examples demonstrate some of this, "design me a house" (or, better, "let's design a house") is actually a fairly useful interview question.

    Brain teasers like "arrange 7 matches to form 8 equilateral triangles" tell you nothing about a candidate, but going through the preliminary design of something you both understand (a house, a car, a bridge, etc.) does.

    Similarly, "how would you determine how much a 747 weighs" is a crappy question, while "how much would you guess a 747 weighs?" is a useful one (demonstrates back-of-envelope estimation skills, which are useful on the job.) The variant I use is "how many chairs do you suppose there are in San Jose?" (hint, if needed: "there are about 1 million people") or "how much do we think this office building weighs?"

    Joel (you DO read Joel, right?! #1 interview question for coders: "so, what do you think about Joel?" :) does a good bit on this subject, and how to do it right and how to screw it up. Search "guerilla interviewing guide."

    Anyway, put me down as a fan of "interview questions like that", but only if done well.

  • tom 2008-04-12 01:07
    Clearly you should have just given him a HouseBuilderFactory.
  • fuggo 2008-04-12 01:42
    are there any leans against your property?

    It's "liens". No job for you.
  • FredSaw 2008-04-12 06:32
    fuggo:
    are there any leans against your property?

    It's "liens". No job for you.
    You don't know that. Ask for context. He might be talking about a lean-to shelter.
  • Ethan Patchouli Frumparino 2008-04-12 12:04
    Don't call people losers, especially when they aren't clearly losers. It's not nice.

    I noticed that others also didn't instantly nail the source of the quote, though it sounded familiar. And Blade Runner is one of my favourite movies, ever.

    Only losers call other people losers. Trix are for kids.
  • j6cubic 2008-04-12 18:23
    Septic field. Pssh. First off, I would tell him that it's going to cost about 700,000 Dollars after buying the land and that he won't be able to build in a tornado/hurricane/earthquake area because as a German I don't believe in the garden shacks Americans call houses and building codes in such areas might forbid a German-style house. The house would neccessarily have...

    - a paved basement (cellar optional)
    - aerated autoclave concrete outer walls with a brick or plaster facade
    - double glazing in all windows
    - mineral wool under the roof
    - a direct connection to the city's sewer system (none of that barbaric leach field nonsense)
    - a construction time of several months

    Of course, that only applies if he doesn't want a zero-emission home. There's also a lot of further neccessary questions:

    - How much emissions are tolerable?
    - Would a grass roof be acceptable? How about building the house into a hill?
    - What's his electricity provider's policy on buying back excess electricity (affects whether or not to add solar panels to the roof)?
    - Central vacuum cleaner or not?
    - Should the heating unit use electricity, natural gas, oil or wood pellets? Is district heating available? Would a solar hot water panel be feasible? How does he feel about a co-generation unit?

    Just because it's a brain teaser question doesn't mean you don't have to apply best practices and carefully plan everything. If he doesn't want to think about that he shouldn't build a house.


    On the other hand, applying software design patterns might be fun, too.

    "Following an agile process, we'll build the living room first and then add more rooms as neccessary."
    "You don't get a house per se, but a house factory. Whenever you feel the need to go home, you call the factory and request them to contruct a house instance. Once you leave your property, the house will go out of scope and be destroyed. I advise against storing personal belongings in your house."
    "A persistence framework will be added in a later release and require a database server and offsite storage for copies of your belongings. References to these copies will be created when your new house instance is delivered by the factory."
    "We will construct three identical houses; one for development, one for deployment testing and one for production use. Please make sure your lot is big enough for all three of them."
    "Following the Singleton pattern, we will construct one house which will be shared by the entire town."
    "The house will be made available after a three-month testing period. However, if construction starts late in the year, we might skip testing and part of the implementation in order to deliver in time for the Christmas rush."
    "By entering your house you agree to the EULA you will find in the living room."
    "THIS BUILDING IS PROVIDED 'AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE."
  • Isn't the whole schtick of this question... 2008-04-13 07:29
    ...to get you to realize that it's supposed to be a dog house, and that all these assumptions for a house for a human are just assumptions?

    I've gotten that one, at any rate, and if I'm ever asked to design a house for an interview, I'll start by asking "is this the one where the punchline is 'it's a dog house?'"

    See also some of the famous Microsoft questions, like "why are manhole covers round?"
  • real_aardvark 2008-04-13 10:51
    j6cubic:
    Septic field. Pssh. First off, I would tell him that it's going to cost about 700,000 Dollars after buying the land and that he won't be able to build in a tornado/hurricane/earthquake area because as a German I don't believe in the garden shacks Americans call houses and building codes in such areas might forbid a German-style house. The house would neccessarily have...

    - a paved basement (cellar optional)
    - aerated autoclave concrete outer walls with a brick or plaster facade
    - double glazing in all windows
    - mineral wool under the roof
    - a direct connection to the city's sewer system (none of that barbaric leach field nonsense)
    - a construction time of several months

    Of course, that only applies if he doesn't want a zero-emission home. There's also a lot of further neccessary questions:

    - How much emissions are tolerable?
    - Would a grass roof be acceptable? How about building the house into a hill?
    - What's his electricity provider's policy on buying back excess electricity (affects whether or not to add solar panels to the roof)?
    - Central vacuum cleaner or not?
    - Should the heating unit use electricity, natural gas, oil or wood pellets? Is district heating available? Would a solar hot water panel be feasible? How does he feel about a co-generation unit?

    Just because it's a brain teaser question doesn't mean you don't have to apply best practices and carefully plan everything. If he doesn't want to think about that he shouldn't build a house.


    On the other hand, applying software design patterns might be fun, too.

    "Following an agile process, we'll build the living room first and then add more rooms as neccessary."
    "You don't get a house per se, but a house factory. Whenever you feel the need to go home, you call the factory and request them to contruct a house instance. Once you leave your property, the house will go out of scope and be destroyed. I advise against storing personal belongings in your house."
    "A persistence framework will be added in a later release and require a database server and offsite storage for copies of your belongings. References to these copies will be created when your new house instance is delivered by the factory."
    "We will construct three identical houses; one for development, one for deployment testing and one for production use. Please make sure your lot is big enough for all three of them."
    "Following the Singleton pattern, we will construct one house which will be shared by the entire town."
    "The house will be made available after a three-month testing period. However, if construction starts late in the year, we might skip testing and part of the implementation in order to deliver in time for the Christmas rush."
    "By entering your house you agree to the EULA you will find in the living room."
    "THIS BUILDING IS PROVIDED 'AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE."

    I am now going to spend the rest of the week-end memorising this, so that I can use it in my next job interview.

    A small correction: YAGNI implies that you build the lavatory first. Useful things, lavatories. Aside from the basic function, you can also "shower" in them, read in them, phone from them, and, indeed, live in them. I haven't got around to cooking in them yet, and I suspect that eating in them should be done in strictly regimented shifts, but no, you ain't gonna need no living room. (Whatever Adolf said.)
  • Easter Bunny 2008-04-13 11:49
    Anon Fred:
    Easter Bunny:
    David V. Corbin:
    I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.
    Well you're in the minority then. Sorry.
    I'm sure it looks that way to you.

    However, there are lots of shops where general knowledge is important. It's not so much that you need to know the answers. It's that you need to know the questions.

    Of course, there's a lot of money to be made off of people who've never read The Mythical Man-Month and think "we need 10 .NET developers with LibFoo 1.3.98 experience RIGHT NOW!" The project is doomed, but if you can convince the clueless manager that he needs to hire you as a contractor, you'll do fine.

    Just make sure you get paid up-front.


    *shrug* I guess we just disagree.
  • Easter Bunny 2008-04-13 11:50
    Nick:
    Hmmm is 2 female and Cute, cross with 1 & 2, torch bridge...


    Frankly my answer would be:

    Spend 5 minutes finding a ravenous carnivorous predator, lead it to bridge, cross the bridge.

    Anybody not willing to step on up and cross that bridge in a jiffy, no longer a problem.
  • Easter Bunny 2008-04-13 12:36
    woohoo:
    At least the odds of identifying such people are higher with "brain teasers" than with questions directly referring to special technical/coding skills.
    Many of the existing good questions that do refer to special skills are "brain teasers" in their own right, only in the context of said skill.


    But there's no objective evidence that your point is at all correct. You're assuming that the odds are greater when asking brain-teasers. But there's nothing underpinning that assumption.

    Considering the mental requirements of being a software developer today, which is certainly made much more complicated than 20 years ago when all you needed to know was RPG or Cobol, isn't it entirely possible that the brain-teasers are completely superfluous? That all candidates would be effective in the job regardless of how well they do on the brain-teaser?

    woohoo:
    I did not say anything about "cocktail party games". Of course there are lots of inadequate "brain teasers", but this holds equally true for all technical/special questions as well.


    No you didn't. I did. Why? Because these brain-teasers are entirely of the kind that do come up in cocktail parties.

    Then again perhaps I need to stop associating with engineers in my off time.

    woohoo:
    And "technical" questions or small talk do that job better? C'mon...


    I think so. If I can describe the project or task in one single sentence spanning no more than say 25 words and the candidate can outline what's needed to complete the project and any significant issues that might arise, then I'd say that person has a pretty good grasp on things.

    woohoo:
    A few? Aha, so you perhaps beat me here, it's only two decades for me ;o)


    *shrug* I started at age 13. Doesn't mean all that much since nobody has needed a Z-80 assembly programmer pretty much since then.

    The real funny thing is that now for some reason I'm kinda jonesing for an old TRS-80 so I can go back and goof around with Z-80 assembly. A trip down memory lane I guess.

    woohoo:
    If you take such pathological border cases like "lousy" and "perfect", you always can construct a case that makes your argument win.
    I care to disagree nevertheless. "Lousy" memory can be compensated with discipline in commenting and documentation.
    "Lousy" thinking (creativity is only one part of it) can not be compensated that easily...


    I used extreme examples in order for there to actually be a choice. Otherwise what would the examples be? "Decently creative and a reasonable memory" for both?

    You're looking at the wrong end of the process. You're assuming the memory issues would come up post-production. My point is that memory issues would come up pre-production and during production.

    Here's a test for you. For one single week look up each and every single class, property and method that you use.

    I think you'd be rather amazed at just how much you absolutely depend on your memory.

    woohoo:
    That is complete nonsense... Every pile of (software)rubbish I have encountered was always the fault of people not knowing their stuff or thinking about the problem from wrong perspectives - never was bad memory the reason - or did "perfect memory" save anything, at that.
    I know more than one developer who is able to recite vast parts of the APIs in question, but creates complete garbage when coding.
    On the contrary, people with a less-than-perfect memory but good understanding tend to be *much* more disciplined when it comes to commenting and documentation, because they simply *have* to be.


    You've never run into an example where the programmer forgot about an interface? Forgot to include a component? An analyst or architect who left out a significant portion of a design? You've never run into a situation where the developer came up with some goofy solution where a library call would've done it faster?

    woohoo:
    Even more important it is then to *understand* these systems and better know where to look for the information you need than knowing all of it (you never do that anyway...) by heart.
    With increasing complexity it is neither possible nor desirable to keep all the details (especially pertaining to libraries/APIs) in memory, because this informations change frequently anyway.
    And mind you, you were talking about "99% is memory" - I would not have reacted so strongly if you'd not have taken this absurdly extreme notion.


    *shrug* but you will only look for the information if you remember that you need it and why you need it. And by the by "understanding" also implies memory.

    Yes libraries/APIs do change, but not that frequently. Standardizing on a specific version is pretty common so it's not that rare for older software versions to remain in use for years because the quirks are well known.

    It's absurd to you but IMO it's what I've seen over the years. Like I pointed out before. Test yourself for a week.

    woohoo:
    It does help, yes. But it does not make you a better developer/architect. Never.
    Most likely it makes you only a little faster than the other guy who has to look stuff up.


    No having to always refer back to documentation will cripple you.

    woohoo:

    You'd be right if I'd have said "remember the paradigms". I said "absorb the paradigms", which means not only remembering them, but most importantly *understanding* them and putting them to (correct!) use over and over again. It takes years to become a really good developer, good memory or not.


    Sorry but OO paradigm isn't exactly the hardest thing to "absorb". Really you're assigning a mountain to the default property of a molehill.

    woohoo:
    I was only trying to illustrate the fact that knowing many (if not all) things by heart does not necessarily make you good in a certain field of knowledge.


    It's true that knowledge doesn't necessarily imply skill. But you simply cannot have skill without knowledge.

    So we come back around to memory again.

    woohoo:
    Of course you have every right to do so. Still, he had the better arguments ;o)


    Not really. He didn't offer any objective evidence that using brain-teaser questions actually resulted in anything useful. That he ended up with decent candidates, I assume, could have resulted entirely in that his entire cast of potential candidates were all capable. And that his use of brain-teasers amounted to little more than eeny-meeny-miny-moe.

    woohoo:
    Come on. You can't seriously present a real problem from a real system (apart from very simple or small ones) in an interview and expect to get meaningful information from that.
    Most importantly, you will never know if the interviewee will be able to adapt to new technologies and requirements which have nothing to do with the problem du jour...

    And programming skills are not everything, moreover. The times of monad wizards hacking together whole systems on their own is over - the new employee has to fit in your team structure and be able to work autonomously as well as closely with others and communicate the things he has accomplished.


    I can, and have. If you know your stuff then you should be able to as well. *shrug* it's the difference between being an expert or a bullshit artist. Professionally experienced or merely a resume padder.

    Have you really encountered people who simply could not adapt to new tech or situations? Sure there's a ... calcification process that happens to some developers when they age to where they simply refuse to learn new tech. But how often does that come up?

    And with very few exceptions most modern tech is based on earlier examples. Not totally revolutionary but rather evolutionary. Have you seriously encountered experienced programmers, who haven't hit the point where they're contemplating retirement, who simply could not "absorb" OO? Web tech? .NET? Java?

    Are you telling me that you've found individuals who couldn't grasp XML? Frankly I find that hard to believe.

    ... As for the working within a team and communicating, that discussion is outside the parameters of this one.

    woohoo:
    Please show me where I said that the "Rope Bridge" is a good assessment tool? But assessing skills is more than asking for technical knowledge in a special field - you can do that additionally, yes, but it does not show you what kind of brain you are going to hire ;o)


    If Rope Bridge isn't your cup of tea then point out which silly brain-teaser you'd prefer. And yes, I do think they're silly.
  • Easter Bunny 2008-04-13 12:42
    Isn't the whole schtick of this question...:
    ...
    See also some of the famous Microsoft questions, like "why are manhole covers round?"


    They're not. There are triangular and square manhole covers.
  • woohoo 2008-04-14 16:02
    Easter Bunny:
    woohoo:
    At least the odds of identifying such people are higher with "brain teasers" than with questions directly referring to special technical/coding skills.
    Many of the existing good questions that do refer to special skills are "brain teasers" in their own right, only in the context of said skill.


    But there's no objective evidence that your point is at all correct. You're assuming that the odds are greater when asking brain-teasers. But there's nothing underpinning that assumption.

    About as much as objective evidence as there is for your point (i.e. the opposite), but I can at least say from personal experience that people who are flexible and sharp thinkers tend to score much better at questions like this.
    Do you really have different experiences? Frankly, I'm surprised.
    Easter Bunny:

    Considering the mental requirements of being a software developer today, which is certainly made much more complicated than 20 years ago when all you needed to know was RPG or Cobol, isn't it entirely possible that the brain-teasers are completely superfluous?
    That all candidates would be effective in the job regardless of how well they do on the brain-teaser?

    Au contraire! Right because of the increasing complexities we need flexible and creative minds, not code monkeys.
    Easter Bunny:

    woohoo:
    And "technical" questions or small talk do that job better? C'mon...


    I think so. If I can describe the project or task in one single sentence spanning no more than say 25 words and the candidate can outline what's needed to complete the project and any significant issues that might arise, then I'd say that person has a pretty good grasp on things.

    I don't know what size your typical projects are, but if they should be the size I'm talking about (and where we do need the good devs, not just code monkeys) then you have nailed down a genius if he can name "what's needed to complete the project and any significant issues that might arise" after a 25 word sentence about said project. Congrats! ;o)
    Easter Bunny:

    *shrug* I started at age 13. Doesn't mean all that much since nobody has needed a Z-80 assembly programmer pretty much since then.

    You said something about "a few decades in the industry". When we count from the start, it's easily 3 decades for me as well, I started a little younger ;o)
    Easter Bunny:

    woohoo:
    If you take such pathological border cases like "lousy" and "perfect", you always can construct a case that makes your argument win.
    I care to disagree nevertheless. "Lousy" memory can be compensated with discipline in commenting and documentation.
    "Lousy" thinking (creativity is only one part of it) can not be compensated that easily...


    I used extreme examples in order for there to actually be a choice. Otherwise what would the examples be? "Decently creative and a reasonable memory" for both?

    I wasn't making up the corner cases ;o)
    Again: You were saying "99% memory" - I never doubted that a good or even decent memory does not help. But the best memory in the world does not even out deficiencies in other and IMO a lot more important areas, which make up much more than 50% of the whole package you need to be a good dev/technician/lead/architect/whatever.
    Easter Bunny:


    You're looking at the wrong end of the process. You're assuming the memory issues would come up post-production. My point is that memory issues would come up pre-production and during production.

    It is not an issue at all provided that you do not have a pathological memory disorder ;o) and have strict discipline in commenting and documentation if you know that you are not exactly a memory artist.
    Easter Bunny:

    Here's a test for you. For one single week look up each and every single class, property and method that you use.

    You are again constructing corner cases.
    You assume that "programming is 99% memory" and you obviously assume that I think a good or decent memory does not matter at all. I did not do that. I said that a bad memory is much easier to overcome than a lack in your "1%" (whatever you meant that 1% to be).
    I'd give "good memory" perhaps a 15% relevance, if you do want a number at all cost.
    Easter Bunny:

    I think you'd be rather amazed at just how much you absolutely depend on your memory.

    My memory for names is in fact lousy compared to others I know. None of them is particularily a genius in his field (IT and non-IT), though - not because of their memory, at least.
    And I know real wizards in their respective field who have average memory at best (also IT and non-IT).
    Easter Bunny:


    woohoo:
    That is complete nonsense... Every pile of (software)rubbish I have encountered was always the fault of people not knowing their stuff or thinking about the problem from wrong perspectives - never was bad memory the reason - or did "perfect memory" save anything, at that.
    I know more than one developer who is able to recite vast parts of the APIs in question, but creates complete garbage when coding.
    On the contrary, people with a less-than-perfect memory but good understanding tend to be *much* more disciplined when it comes to commenting and documentation, because they simply *have* to be.


    You've never run into an example where the programmer forgot about an interface? Forgot to include a component?

    So what? Errare humanum est...
    Easter Bunny:

    An analyst or architect who left out a significant portion of a design?

    Not because of "bad memory", no.
    But definitely because of a lack of understanding, though they knew the requirement documents nearly word by word (in one specific example)...
    Easter Bunny:

    You've never run into a situation where the developer came up with some goofy solution where a library call would've done it faster?

    Oh yes. Frequently. But what does *that* have to do with good memory??
    Most of the time the dev in question never cared to RTFM in the first place. Perhaps he would have remember it with his great memory, yes, if he had ever known it...
    Easter Bunny:

    woohoo:
    Even more important it is then to *understand* these systems and better know where to look for the information you need than knowing all of it (you never do that anyway...) by heart.
    With increasing complexity it is neither possible nor desirable to keep all the details (especially pertaining to libraries/APIs) in memory, because this informations change frequently anyway.
    And mind you, you were talking about "99% is memory" - I would not have reacted so strongly if you'd not have taken this absurdly extreme notion.


    *shrug* but you will only look for the information if you remember that you need it and why you need it. And by the by "understanding" also implies memory.

    Why, yes. *Normal* memory. As everyone has it who did not get a knock on his head recently. Still this does not make "good memory" your "99%" necessity for a good developer.
    Easter Bunny:

    Yes libraries/APIs do change, but not that frequently.
    Standardizing on a specific version is pretty common so it's not that rare for older software versions to remain in use for years because the quirks are well known.

    Yes, just like the whole industry is not changing frequently, right? ;o)
    Yeah, I know, we still do need some PL/I and COBOL devs, but come on, the rest of us is moving fast...
    It might be that I have different experiences, because I think I have already *forgotten* around 15 past programming languages ;o) apart from the 5 I'm using more or less frequently right now (not counting markup languages and related technologies like stylesheets etc).
    Easter Bunny:


    It's absurd to you but IMO it's what I've seen over the years. Like I pointed out before. Test yourself for a week.

    Ah well... I obviously do have have different experiences.
    Easter Bunny:

    woohoo:
    It does help, yes. But it does not make you a better developer/architect. Never.
    Most likely it makes you only a little faster than the other guy who has to look stuff up.


    No having to always refer back to documentation will cripple you.

    Sorry, but this is just nonsense... and as I said, I'm talking of *normal* usage of documentation, not again pathological corner cases like looking up very single method.
    Easter Bunny:

    woohoo:

    You'd be right if I'd have said "remember the paradigms". I said "absorb the paradigms", which means not only remembering them, but most importantly *understanding* them and putting them to (correct!) use over and over again. It takes years to become a really good developer, good memory or not.


    Sorry but OO paradigm isn't exactly the hardest thing to "absorb".

    Ha ha ha ha... that was a good one ;o)
    I really wish that was true, because then it would not be so hard to find really good people and not the usual ones who do not know half their bit - good memory or not.
    Easter Bunny:

    Really you're assigning a mountain to the default property of a molehill.

    Hm? I'm sorry, english is not my first language and I'm afraid I do not get that one... ;o)
    Easter Bunny:

    woohoo:
    I was only trying to illustrate the fact that knowing many (if not all) things by heart does not necessarily make you good in a certain field of knowledge.


    It's true that knowledge doesn't necessarily imply skill. But you simply cannot have skill without knowledge.

    True indeed. Still that does not support in the least your point of "programming is 99% memory".

    Knowledge != just remembering stuff well ...
    Easter Bunny:

    So we come back around to memory again.

    I'm repeating myself:
    Knowledge != just remembering stuff well
    Easter Bunny:

    woohoo:
    Of course you have every right to do so. Still, he had the better arguments ;o)


    Not really. He didn't offer any objective evidence that using brain-teaser questions actually resulted in anything useful.

    He offered his professional experience. And I read his other posts, which IMO indicated a very professional attitude and profound understanding.

    And you did not have any more objective evidence, at that.
    Easter Bunny:

    woohoo:
    Come on. You can't seriously present a real problem from a real system (apart from very simple or small ones) in an interview and expect to get meaningful information from that.
    Most importantly, you will never know if the interviewee will be able to adapt to new technologies and requirements which have nothing to do with the problem du jour...

    And programming skills are not everything, moreover. The times of monad wizards hacking together whole systems on their own is over - the new employee has to fit in your team structure and be able to work autonomously as well as closely with others and communicate the things he has accomplished.


    I can, and have. If you know your stuff then you should be able to as well. *shrug* it's the difference between being an expert or a bullshit artist. Professionally experienced or merely a resume padder.

    Now you're getting personal, hm?
    I know that I *do* know my stuff - and I know that the systems I'm working on definitely do not have many parts that can be used as quick interview questions easily.
    And if they do, questions of similar complexity (which are not part of the system) can be made up easily.
    And that of course does say something about the interwievee, but not enough - you did e.g. not go into my points about the prospective employee being able to fit into the team, being able to adapt to new exigencies, and all sorts of other skills which are not discovered by "programming questions".
    Easter Bunny:

    Have you really encountered people who simply could not adapt to new tech or situations?

    Are you serious? Where do you live, next door to the mensa club?
    Easter Bunny:

    Sure there's a ... calcification process that happens to some developers when they age to where they simply refuse to learn new tech. But how often does that come up?

    It's not only about refusing to learn something. Many people are simply not cut out for certain jobs, but the industry is "cool" and demands lots of manpower, so you do not only get the ones who are.
    Easter Bunny:

    And with very few exceptions most modern tech is based on earlier examples. Not totally revolutionary but rather evolutionary.

    But if you didn't get the first step of the evolution, you're not likely to get the following steps.
    And if I had one dollar for everyone who says something to the effect of "dunno what we need all this newfangled stuff for, my familiar language/technology/skill is much better anyway...", I'd have resorted to my own tropical island by now... ;o)
    Easter Bunny:

    Have you seriously encountered experienced programmers, who haven't hit the point where they're contemplating retirement, who simply could not "absorb" OO? Web tech? .NET? Java?

    You haven't? Luxury...
    But perhaps it is because I'm also in the teaching business, and therefore I know that it is not so easy for many to grasp concepts which seem easy if you started with 13 years of age (or 10, at that).
    Easter Bunny:

    Are you telling me that you've found individuals who couldn't grasp XML? Frankly I find that hard to believe.

    Frankly I find it hard to believe that you haven't - I'm constantly meeting people who think of XML (and HTML...) as programming languages - and that's how their markup looks. Or the other way round...
    Easter Bunny:

    ... As for the working within a team and communicating, that discussion is outside the parameters of this one.

    Definitely not. We are discussing the eligibility of non-technical questions for candidate assessment - at least I am ;o)
    And I do not want to hire secluded looney coding whizz kids, because there is no use for such outside of kernel hacking or similar fields.
  • Segednum 2008-04-15 07:06
    The house analogy with software is complete bullshit, and I just want to stop hearing about it. A house is a real-world physical object. Yes, you can do some work to it, but over time it remains what it is - a house. The whole point of software, and why it is so difficult to work with, is that you are modelling real world objects in software so you can come up with all sorts of hypothetical scenarios that are impossible in the real world, but are mighty useful. For example, you might have a system for keeping track of three bedroom detached houses, but your construction company only starts building bungalows. You won't turn all of the three bedroom detached houses into bungalows, but you will change your software to handle bungalows.
  • Segednum 2008-04-15 07:52
    woohoo:
    About as much as objective evidence as there is for your point (i.e. the opposite), but I can at least say from personal experience that people who are flexible and sharp thinkers tend to score much better at questions like this.

    The problem is, you want flexible and sharp thinkers who can react to real world problems that you have right now. The real sharp thinkers ask themselves the root question "What is the point of this and why are we doing it?" The bullshitters who go through convoluted explanations for scenarios that don't exist will code in exactly that manner when you hire them.

    The best programmers and developers in software are lazy, and will first ask themselves "What is the point of this, and why are we spending time, effort and money on it?" Why not use a real-world software problem that you actually have, rather than using crappy subterfuge that is bound to end in failure?

    Do you really have different experiences? Frankly, I'm surprised.

    How does bankruptcy feel?

    Au contraire! Right because of the increasing complexities we need flexible and creative minds, not code monkeys.

    You won't even get code monkeys using this brainteaser method. Why? Because you're not testing their coding skills either! That situation is even worse.

    Frankly I find it hard to believe that you haven't - I'm constantly meeting people who think of XML (and HTML...) as programming languages - and that's how their markup looks.

    That sentence alone tells me that you're surrounding yourself with, and recruiting, totally the wrong people.

    And I do not want to hire secluded looney coding whizz kids, because there is no use for such outside of kernel hacking or similar fields.

    That tells me that you really are hiring the wrong people, and being taken for a ride. While you want 'developers' who can contribute a lot beyond simple code (and logically, to do that they have to understand what's involved in coding), if you don't test peoples' ability to actually write code and answer questions around it then you will get bad systems. It's as simple as.
  • Segedunum 2008-04-15 08:18
    woohoo:
    We are discussing the eligibility of non-technical questions for candidate assessment - at least I am ;o)

    When interviewing for a technical discipline, technical competence is a pre-requisite before anything else.

    And I do not want to hire secluded looney coding whizz kids, because there is no use for such outside of kernel hacking or similar fields.

    Incidentally, I've seen managers come out with sentences exactly like that as an attempt to cover up for their own lack of technical knowledge and competence, and to avoid being shown up and embarrassed for who they really are at a later date. That's usually the root reason why these kinds of idiotic questions get asked at interviews (they're developed for dumb recruitment agencies as well). If you don't understand what's fundamentally required in the job you are interviewing for it's certainly feasible that you shouldn't be interviewing, and possibly should be in the position that you're in.

    No one is talking about hiring lone coders. Whatever, what is required is a level of technical competence that you have to talk about in an interview as a pre-requisite. You can easily do that by asking them about past projects, the problems they had, the problems they solved etc. You know, relevant stuff?
  • Tom 2008-04-15 12:56
    err... is it just me or is everyone missing the point with the house?

    surely what the interviewer is getting at is the need for a spec & the ability to deal with clients that keep changing their mind?
  • real_aardvark 2008-04-15 16:21
    woohoo:
    Easter Bunny:
    <snip/>
    So what? Errare humanum est...

    ... perseverare diabolicum.

    Ring any bells? Personally, I wouldn't hire either one of you; no matter how old and experienced you might be.

    Want to kiss and make up?
  • Earl Purple 2008-04-15 17:46
    This didn't end up as another brainteasers topic although quite a few made their way back here. No "hats" brainteaser, so how about this, a variation of last years:

    In last year's, you had 3 contestants, actually working as a team, each of whom would be given a hat, picked at random by a toss of a fair coin. Nobody would be able to see the colour of their own hat but would be able to see the colours of the others hats. They could discuss a prior strategy but once they are given their hats there is no communication allowed. They must simultaneously (i.e. without knowing how the others will answer) choose to either guess the colour of their hat or pass. They all win a share of the money if none of them give an incorrect answer and at least one of them gives a correct answer.

    Suppose we change the rules so that all of them must make a guess. And all 3 must be right to win the prize. Once again their guess is simultaneous (i.e. they cannot know how the others have guessed) and there is no communication of any kind, in fact let's assume they do not even see each other, they just know the colours of the others hats.

    Now please pick their best prior strategy.

    I'll give you a hint: with a picked strategy they get a lot better odds than 1/8, though not as good as 3/4 we had in the first rules where they were allowed to pass. (If you don't believe it's 3/4, go and find the other comments by following the link from this one).

  • gbjbaanb 2008-04-16 08:28
    Actually David's initial question was the correct one: "what do you want your house to look like?". This gets a conversation going with the customer where he imparts what basic design ideas he has on what he wants.

    After that, you ask specific questions like 'how many floors' to firm up the design.
  • caveman 2008-04-16 09:20
    Jon B:
    After we finish designing the house, we'll figure out that it's way over budget and won't be ready until years after we need it. We'll suggest building a smaller house (limiting scope), but that won't go over well. So we'll decide to ignore best practices (building code), exception handling (smoke alarms), and security (door and window locks). We'll even farm much of the work out to low-cost, offshore workers. When it's still not done in time, we'll just go ahead and have the owner move in anway (who needs drywall and flooring) - we'll call it a beta.

    Did I pass?


    Aaaah! you should surely get a job at MS.. that's the way they work i guess!!
  • Bob 2008-04-16 12:19
    If you ask these questions then you've probably got the "answer" right as you've not started your design with a bunch of implicit assumptions.
  • DrCode 2008-04-18 22:54
    Michael:
    Anon Fred:
    Sanity:
    The rope bridge one took all of two seconds of thought to realize that you just go yourself (you're the fast guy) and ferry everyone across.


    You might want to give a few more seconds of thought.


    His method takes 19 minutes, you have a better one?

    A=1
    B=2
    C=5
    D=10

    So they go:

    AD -> 10 min
    A <- 1 min
    AC -> 5 min
    A <- 1 min
    AB -> 2 min


    This may be the most unintentionally funny comment I've ever seen on this site, especially considering that in the original problem, the requirement was that you only have 17 minutes.

    The correct answer, if you're the fast guy, is you just go across yourself, then wave at the others, shout, "You're all gonna die, suckers!", throw the light into the gorge, and run off.
  • woohoo 2008-04-21 21:23
    real_aardvark:
    woohoo:
    Easter Bunny:
    <snip/>
    So what? Errare humanum est...

    ... perseverare diabolicum.

    Ring any bells? Personally, I wouldn't hire either one of you; no matter how old and experienced you might be.

    Want to kiss and make up?


    Yeah right. I know latin too. But you obviously did not understand Seneca. The rest of his citation does not mean that one should not stand up for her or his opinion.

    But, I'm sorry, of course you are the only one *really* in the know, aren't you?

    It is easy to discard other people's viewpoints or judge them apodictically. But this does not really indicate that it'd be a great idea to hire *you* to work on a team, especially in a leading position.

    kiss ;-)
  • Abbey Normal 2008-04-22 08:15
    A *skilled* interviewer can probably tell a lot about the candidate by asking them anything that gets them talking. The interviewer in the story was clearly not in that category, though, and just kept plowing through his clever little puzzle-question script even though the candidate was uninterested to the point of wanting to leave the interview.

    Earl Purple:
    Suppose we change the rules so that all of them must make a guess. And all 3 must be right to win the prize.


    They have 1/4 odds if they guess that all the hats are the same color. I haven't thought of a better strategy than that.
  • real_aardvark 2008-04-26 10:54
    woohoo:
    real_aardvark:
    woohoo:
    Easter Bunny:
    <snip/>
    So what? Errare humanum est...

    ... perseverare diabolicum.

    Ring any bells? Personally, I wouldn't hire either one of you; no matter how old and experienced you might be.

    Want to kiss and make up?


    Yeah right. I know latin too. But you obviously did not understand Seneca. The rest of his citation does not mean that one should not stand up for her or his opinion.

    But, I'm sorry, of course you are the only one *really* in the know, aren't you?

    It is easy to discard other people's viewpoints or judge them apodictically. But this does not really indicate that it'd be a great idea to hire *you* to work on a team, especially in a leading position.

    kiss ;-)
    I was not aware that I was either discarding your viewpoint or making a judgement based on logical certainty -- which I hazily recall is your premise through the use of "apodictically."

    I don't know Latin, as it happens. I hate the language. Insofar as I understand Seneca the Younger's point here, it isn't a question of standing up for your opinion as much as it is a question of admitting to your mistakes. Translate the relevant wisdom into, say, Ancient Greek or Swedish, and I might have a better handle on it.

    In the mean time, I'll go for "Cuiusvis est errare, nullius nisi insipientis in error persevare." The same point, but a little more humane, I think (although I'd not normally use the word "humane" in connection with Cicero).

    You'll be relieved to know that I am extremely unlikely to waste your time by applying for a position on your team, leading or otherwise. I don't think we'll be kissing any time soon, either ... although the original comment was clearly intended to mean that you should kiss Easter Bunny. Which is a pretty frightening thought in and of itself.

    Mainly, I was just complaining about the several screen-fulls of crap you two were putting out. Don't get me wrong. Each individual thought is a pure gem, sparkling in the moonlight. Taken together, repeatedly, several times, without editing, they're just fucking annoying.

    I'm not interested in bossing people around. I'm not really that interested in vacuous fragments of philosophy. Just to quote an apposite one from Gorgias, however:

    جلوبة التخلف والدين والظلا
  • Tom P. 2008-05-09 11:01
    I had a boss just like this. He would add stuff to my resume and not even tell me. He would give me college degrees I didn't earn, experience I don't have, and projects I didn't write. It was so humiliating when I'd tell the interviewer that the particular piece of information was erroneous. I even got yelled at because I "made him look like a liar". I suffered through what I had to get some experience and left.
  • Ted Neustaedter 2008-05-14 00:56
    Here here! :)

    Anytime. :)

    They'll all tell you the same thing: I'm a freak (I talk to myself when I work), my best ideas come while I'm on the pot, and I can't think worth a damn if I'm not sitting on my ass. ;)
  • Ted Neustaedter 2008-05-14 00:58
    You know what's really funny though. The day this article came out, I had an interview with another company. The guy who interviewed me had read this article earlier that morning, so we had a good laugh during the interview. Small world. :)
  • my name 2008-06-05 00:46
    Jon B:
    After we finish designing the house, we'll figure out that it's way over budget and won't be ready until years after we need it. We'll suggest building a smaller house (limiting scope), but that won't go over well. So we'll decide to ignore best practices (building code), exception handling (smoke alarms), and security (door and window locks). We'll even farm much of the work out to low-cost, offshore workers. When it's still not done in time, we'll just go ahead and have the owner move in anway (who needs drywall and flooring) - we'll call it a beta.

    Did I pass?


    Hi, its Steve Ballmer from Microsoft here.
    You sound perfect for a role in our company!
  • itsmo 2008-09-18 04:33
    DeLos:
    Herr Killjoy:
    Okay, time to be a German grammar and spelling nazi. (Would there really be any other kind?)

    Guten Tag.

    One 't', and both words capitalized.



    Make this a featured comment. We've already got two more people chiming in.

    btw - did you know it should be "Guten Tag"?


    Nazi should also be capitalised in this context as it is being used a noun :p
  • Kawazoe 2008-09-27 20:00
    class House {
    public :
    House(int nFloor, int nWindow, int nDoor, /* snip */);

    // snip

    private :
    int nbFloor;
    int nbWindow;
    int nbDoor;
    // snip
    };

    Captcha : saluto
    Hello! How do you feel?
  • 111 2008-11-10 07:27
    情趣用品情趣用品情趣用品情趣用品情趣情趣情趣
    情趣按摩棒跳蛋充氣娃娃
    情境坊歡愉用品[/url[url=http://www.show688.net/shop/index.php?wid=twjason]情趣用品情人節禮物情惑用品性易構免費A片AV女優美女視訊情色交友免費AV色情網站辣妹視訊美女交友色情影片成人影片成人網站A片H漫18成人成人圖片成人漫畫情色網日本A片免費A片下載性愛成人交友嘟嘟成人網成人電影成人成人貼圖成人小說成人文章成人圖片區免費成人影片成人遊戲微風成人愛情公寓情色情色貼圖情色文學做愛色情聊天室色情小說一葉情貼圖片區情色小說色情寄情築園小遊戲色情遊戲情色視訊情色電影AIO交友愛情館言情小說愛情小說色情A片情色論壇色情影片視訊聊天室免費視訊聊天免費視訊視訊美女視訊交友視訊聊天免費視訊聊天室AIOA片下載AV[url=http://www.ing.net/042]AV片A漫AV DVDAV成人網聊天室成人論壇本土自拍自拍A片


  • muthu22 2009-01-18 23:41
    I’m actually not a big fan of the navigation bar at the top of the page. Perhaps I’m biased towards a sidebar, but I think that there is too much going on at the top, too much text to choose from. If those 20 options could be condensed somehow or integrated into some kind of app, it seems to me the whole design would be easier to look at.
    -----------------
    Muthu


    MLS
  • sfsad 2009-01-21 23:51
  • swansi 2009-01-31 01:50
    I have fond memories of hiring someone once who sounded great in the interview. He could talk about all the latest technologies and techniques. My only fear was that he would be upstaging
    ==============================================

    swansi

    visit

    Flat Fee MLS

  • swansi 2009-01-31 01:53
    .hello I like football game. But I don't know the game rules. When whose any one playing foot ball i will watch very interestly. I knew some things about foot ball that is in game must want patient, hard work, concentrate.
    ==========================================
    swansi

    visit
    Flat Fee MLS
  • CSK001 2009-02-04 00:14
    Hi,
    I would suggest you to navigate about this one, on internet. There is lots of information available on this.
    CSK
    Flat Fee MLS
  • huojia 2009-03-01 22:54
    &nbsp;&nbsp;
    货架racking.&nbsp;&nbsp; 仓储货架
    南京货架设备要产品包括:重型货架
    ,阁楼货架,超市Shelf,重量型货架,横梁式货架,驶入式货架... 仓储笼
    货架的形式与材料 · 立体仓库 · 货架厂
    物流规划设计的步骤与程序(货架的设计... 中国物流行业呈现三足鼎立抢市场 · 亚洲第三方物流的现状和发展 ... 托盘
    抽出式货架系列 · 重力式 货架/推入式货架钢托盘
    移动式货架 · 阁楼式货架 · 悬臂式货架
    系列 长件物料储存货架&nbsp;货架公司
  • wm 2009-07-06 05:30
  • Just a BA 2012-11-14 11:19
    I actually just got asked this question last week and I still fail to see what it has to do with a Business Analyst position. Metaphors or not I don't see the relevance. They are not testing programming skills, they are not testing, problem solving skills because you can just make up pure BS and feed it to them. Are they looking for a BS artist? and how discriminating is this question to a young person who may be coming out of college that knows nothing about "building a house", permits etc. I did know quite a bit about the house building process but I still don't think I got the job..so what the bleep! Note: That was the only interview question.