• Fred (unregistered) in reply to Avi
    Avi:
    jay:
    I'm surprised that there aren't a bunch of comments saying that Avi is an idiot, and that Fred is smart in googling for code rather than trying to write his own.

    The problem with the interview wasn't that he googled code from the internet to answer a question. I do that all the time myself! The problems were:

    • He said he wrote the code himself, when he didn't.
    • Even if he's admitted that he didn't write it, he didn't understand the code, even to the level of knowing the difference between a constant and a variable (1 vs l).
    • The code did not work.

    As for the URL issue, it wasn't so much that he didn't know what a URL was, it was that he seemed unable to type in a URL that I gave him over the phone. I'd say, "Got to bigboxco.com/ide/H5rt3" and he'd say, "Uh, that didn't work." We tried this 3 or 4 times with different sessions until I just emailed him the URL.

    Uhm..."The Webpage cannot be found" in the big blue e - should I try with the google one?

  • Mike (unregistered) in reply to Joe
    Joe:
    Someone:
    Jeff:
    Looking up solutions to coding problems on a site actively maintained and reviewed by other programmers is such garbage, all programmers should spend hours inventing their own wheels, amirite?
    It's almost like this topic was addressed from multiple different angles in this thread before.

    There's always room for a better wheel. Determining whether you have the time and money to do such is a thing is an entirely different story.

    I have the time and plenty of monkeys....what now?

  • Ischnakov (unregistered) in reply to Meep
    Meep:
    .

    Types are also fundamental, and yet I see people who make everything into a damned string, and just pass strings around everywhere.

    Types are overused. Types are very good for some purposes, however sometimes people get too obsessed with them. I like C's structs. It's all about the data. Of course, I wouldn't necessarily call them strings, but most of the time I find I'm passing character arrays around...occasionally I might pass some numbers around instead, but normally it's jsut a whole bunch of characters.
    Sometimes I use numbers too, although only when I need to do frequent calculations....

  • Hocus (unregistered) in reply to Friedrice The Great
    Friedrice The Great:
    ZoomST:
    emaNrouY-Here:
    Don:
    Quango:
    ALWAYS test candidates' coding ability. Jeff Attwood's article http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html is six years old and still holds.

    I interviewed one guy who spent over an hour trying to write a FizzBuzz routine. He had a masters degree in CS.

    Masters degree doesn't really mean much. I had someone working with me previously that had a masters in IT from one of the top UK universities. Couldn't even setup a docking station...
    Pshaw! He's a Master's Degree holding developer. Setting up docking stations and doing tech repair grunt work... that's blue collar Union work.

    In all seriousness, a musician doesn't know how to repair a piano, a car owner doesn't necessarily know how to change their oil, and most computer users, developers, database admins must necessarily know how to build or setup the devices they work on (from a hardware standpoint).

    FTFY -- as popular knowledge dictates.

    A friend's father expected him to know how to use a polishing machine he rented just because he just had its degree in CS. Clearly he should wait until he had a Master's Degree!

    People usually expects you to fix their technology (for free) if you had a remotely-related degree. If you were a physician, they'll expect you to check their health (for free as well). Some jobs are almost free of this crap, such as gravedigger or a chicken sexer.

    My wife routinely expects me to know how to do anything in any program she's using, even if I've never heard of or even seen the program before ... and she doesn't have the patience to let me consult the Google oracle.
    My wife routinely expects me to know how to operate the microwave, the washing machine and the dishwasher. Honestly, just because I have a CS degree, doesn't mean I know how all this technology works!

  • Borthwallis (unregistered) in reply to Quango
    Quango:
    ALWAYS test candidates' coding ability. Jeff Attwood's article http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html is six years old and still holds.

    I interviewed one guy who spent over an hour trying to write a FizzBuzz routine. He had a masters degree in CS.

    Truth. I used a FizzBuzz in my company's recent bout of hiring. I got one of my colleagues to do the question; took maybe a minute, including reading and bewilderment ("is it supposed to be this easy?").

    The first interviewee I gave it to took 15 minutes. I was flabbergasted. Some were slow, some failed outright, some betrayed their lack of communication ability, and a small minority did it perfectly fine. It's not like I didn't screen their resumes. My test wasn't at all far from the stereotypical FizzBuzz either, I just customized it enough to keep it from being too Googleable.

  • Nox (unregistered)

    Except that as we all know, cheaters do prosper all the time.

    They misrepresent situations to the detriment of others, they take credit for things, they overcriticize and are hypocritical, they abuse and curry favor, they rely on politics rather than engineering merit, they resist change, and they are incompetent and hide it with metrics that obscure performance (360 degree reviews my ass)

    So, the article was spot on, but the title is wrong. The truth is cheaters do just fine. It's the rest of us who bounce from place to place trying to avoid their devastation.

  • Cheong (unregistered)

    It's funny that when you give out FizzBuzz question then change the number from 3 and 5 to 2 and 7, and still seeing people submitting reply with 3 and 5.

    They don't even qualify for "Copy and paste" type of programmer.

  • Friedrice The Great (unregistered) in reply to The Only One
    The Only One:
    You're all idiots.

    No, you're The Only One.

  • Friedrice The Great (unregistered) in reply to Hocus
    Hocus:
    Friedrice The Great:
    ZoomST:
    emaNrouY-Here:
    Don:
    Quango:
    ALWAYS test candidates' coding ability. Jeff Attwood's article http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html is six years old and still holds.

    I interviewed one guy who spent over an hour trying to write a FizzBuzz routine. He had a masters degree in CS.

    Masters degree doesn't really mean much. I had someone working with me previously that had a masters in IT from one of the top UK universities. Couldn't even setup a docking station...
    Pshaw! He's a Master's Degree holding developer. Setting up docking stations and doing tech repair grunt work... that's blue collar Union work.

    In all seriousness, a musician doesn't know how to repair a piano, a car owner doesn't necessarily know how to change their oil, and most computer users, developers, database admins must necessarily know how to build or setup the devices they work on (from a hardware standpoint).

    FTFY -- as popular knowledge dictates.

    A friend's father expected him to know how to use a polishing machine he rented just because he just had its degree in CS. Clearly he should wait until he had a Master's Degree!

    People usually expects you to fix their technology (for free) if you had a remotely-related degree. If you were a physician, they'll expect you to check their health (for free as well). Some jobs are almost free of this crap, such as gravedigger or a chicken sexer.

    My wife routinely expects me to know how to do anything in any program she's using, even if I've never heard of or even seen the program before ... and she doesn't have the patience to let me consult the Google oracle.
    My wife routinely expects me to know how to operate the microwave, the washing machine and the dishwasher. Honestly, just because I have a CS degree, doesn't mean I know how all this technology works!
    I know how to operate all of those machines. But, then, I don't have a CS degree.

  • Trasvi (unregistered) in reply to jay
    jay:
    17 ; x 4 ; y x () y

    (a) x is 4 and y is 17 (b) x is 21 and y is 4 (c) x is 0 and y is pi-squared

    I think such a question is just as fair as what it sounds like these students were given.

    The answer is A. ';' is the assignment operator, and () is the swap operator. =D Also, if you intend () to be equivalent to += then its associativity is different direction to ; which makes it an annoying programming language.

    The point is just consistency. If I treat () as swap consistently for all 20 questions, then I've worked out a consistent schema, and I can be a programmer. These aren't random people that the test is given to. These are people who express enough of an interest in programming to take formal classes in it; presumably they have decent education leaning towards mathematics/science. I was given questions like this in third grade... if 4 # 2 = 2, and 15 # 3 is 5, what is 12 # 4? Changing the symbol used for the operator shouldn't make any difference; a decent programmer should be able to switch between using 'is' 'let' 'var =' '=' ':=' '<-' and changing it to more 'palatable' wording essentially takes it further away from programming and makes it an English test.

    Also, I've interviewed many programmers before and if they can't write FizzBuzz in less than 10 minutes, interview is over. It happens disturbingly often.

  • Mr. C (unregistered) in reply to Trasvi
    Trasvi:
    jay:
    17 ; x 4 ; y x () y

    (a) x is 4 and y is 17 (b) x is 21 and y is 4 (c) x is 0 and y is pi-squared

    I think such a question is just as fair as what it sounds like these students were given.

    The answer is A. ';' is the assignment operator, and () is the swap operator. =D Also, if you intend () to be equivalent to += then its associativity is different direction to ; which makes it an annoying programming language.

    The point is just consistency. If I treat () as swap consistently for all 20 questions, then I've worked out a consistent schema, and I can be a programmer. These aren't random people that the test is given to. These are people who express enough of an interest in programming to take formal classes in it; presumably they have decent education leaning towards mathematics/science. I was given questions like this in third grade... if 4 # 2 = 2, and 15 # 3 is 5, what is 12 # 4? Changing the symbol used for the operator shouldn't make any difference; a decent programmer should be able to switch between using 'is' 'let' 'var =' '=' ':=' '<-' and changing it to more 'palatable' wording essentially takes it further away from programming and makes it an English test.

    Also, I've interviewed many programmers before and if they can't write FizzBuzz in less than 10 minutes, interview is over. It happens disturbingly often.

    I think part of why people here are having a hard time understanding the cited article is that it's difficult to conceive of the listed problem unless you've seen it for yourself. Source: I teach programmers. Watching people struggle with a task almost identical to one they've already solved is commonplace.

    As an example, in High-School maths, a common form of task is:

    1. Teacher explains a topic
    2. Worked example of a question
    3. Students given list of 50 questions almost identical to the worked example, just with different numbers

    I'm not saying this is a good teaching method, but it's how my school worked and it's how a lot of my friends and colleagues were taught.

    The expectation of the sort of people who hang around on forums such as these is that there are 3 categories of people: A) Those that solve all 50 questions correctly (barring transcription or arithmetic errors) B) Those that solve all 50 questions incorrectly, making the same mistake over and over C) Those that solve 4 questions one way or the other, and assume the rest will be the same

    It may come as a surprise to learn that there is a 4th category: D) Those that do all 50 questions, get some right and some wrong, following a different logical procedure each time. Sometimes they add, sometimes subtract, sometimes skip that step, sometimes do it twice. They are unable to extrapolate from the example in a consistent manner.

    If you're the sort of person to read The Daily WTF, you are not in that 4th category. Your coworkers might be, but since life rarely needs us to do the same thing 50 times in succession, they look like category B. The trick is, categories A, B and C are actually the same: essentially you can follow an algorithm (I'm oversimplifying here. More broadly, you can recognise patterns in data and information).

    Assuming you're still reading by this point: the cited article is research into this effect. If they get the same "wrong" answer 20 times in a row, they're in category B (which is functionally identical to A once you explain a given topic in enough detail to cover the bit they don't understand): it doesn't matter what you think the "=" sign does, as long as you think it means the same thing each time you see it.

    Part of the point of the paper is recognising that category D exists, which is an alien concept to the sort of people who can program. If, however, you try and explain functions to the people in D, you'll be met with confusion: their brain just does not recognise ordered series of steps that are self-similar.

    E.g. http://thedailywtf.com/Articles/The_Replacement.aspx. Observe the bit at the end with the strings.

  • Martin (unregistered)

    TRWTF is having an IDE with a font that allows you to mistake the 1 and l.

  • spike (unregistered) in reply to dkf
    dkf:
    Bring Back TopCod3r:
    https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/blob/master/src/main/java/com/seriouscompany/business/java/fizzbuzz/packagenamingpackage/impl/FizzBuzz.java
    Not enterprisey enough. Still too many pieces are hard-coded. The code needs to use some other configuration layer written in some other language, no, in XML, to stitch the pieces together from services published in JNDI or OSGi or something like that.

    I wish I was joking about this.

    At least iterate over a list of strategies.

  • Tim Rowe (unregistered) in reply to Remy Porter
    Remy Porter:
    My initial instinct was to say, "a fizzbuzz algorithm is way too easy for a coding test," but y'know what? Apparently I'm wrong.

    It's almost a one-liner in a number of different languages.

    I'd downvote an applicant who did it in one line. I'd expect to see it implemented as a function definition and a loop to call the function -- at least two lines (depending on the language).

  • AnonymouseUser (unregistered) in reply to Borthwallis
    Borthwallis:

    Truth. I used a FizzBuzz in my company's recent bout of hiring. I got one of my colleagues to do the question; took maybe a minute, including reading and bewilderment ("is it supposed to be this easy?").

    If I was given that to write in an interview I'd ask for the business reason for doing it - what department wants it, how much are they being charged, etc. Or do you want people who will code whatever they're asked without any question?

  • (cs) in reply to AnonymouseUser
    AnonymouseUser:
    Borthwallis:

    Truth. I used a FizzBuzz in my company's recent bout of hiring. I got one of my colleagues to do the question; took maybe a minute, including reading and bewilderment ("is it supposed to be this easy?").

    If I was given that to write in an interview I'd ask for the business reason for doing it - what department wants it, how much are they being charged, etc. Or do you want people who will code whatever they're asked without any question?

    Good luck with that, haha.

  • (cs) in reply to Friedrice The Great
    Friedrice The Great:
    I know how to operate all of those machines. But, then, I don't have a CS degree.

    Or an English degree.

  • jay (unregistered) in reply to AnonymouseUser
    AnonymouseUser:
    Borthwallis:

    Truth. I used a FizzBuzz in my company's recent bout of hiring. I got one of my colleagues to do the question; took maybe a minute, including reading and bewilderment ("is it supposed to be this easy?").

    If I was given that to write in an interview I'd ask for the business reason for doing it - what department wants it, how much are they being charged, etc. Or do you want people who will code whatever they're asked without any question?

    And if I was the interviewer in that case, I'd immediately dismiss you as someone too irrational to be a useful part of the team.

    Really now. A quiz question for an interview has to be something simple enough that a reasonably competent applicant could complete it in a few minutes, maybe an hour tops. We're not seriously going to ask an applicant to write a complete manufacturing requirements planning system as part of a job interview. Even if we asked him to make a minor modification to an existing system, he would have to learn enough about that system to figure out where and how to make the change. For someone coming in with no prior knowledge of the system, that could well be hours of work for even a trivial change.

    OF COURSE a quiz question is going to be over-simplified, abstract, and probably of no real-world value. The point isn't that our company needs to add a fizz-buzz processor to our accounts payable system, it's that we want to see if you are capable of writing a simple function accurately in a reasonable amount of time.

    If you can't grasp that concept, than forget your programming skills, you don't have enough plain common sense to work here.

  • Tony (unregistered) in reply to Geoff
    Geoff:
    Most likely he had actually delivered some project put together with duct tape, bailing wire, some bubble gum, and tons of copy/paste code from whatever Google results produced.

    There's another way??

  • Borthwallis (unregistered) in reply to AnonymouseUser
    AnonymouseUser:
    If I was given that to write in an interview I'd ask for the business reason for doing it - what department wants it, how much are they being charged, etc. Or do you want people who will code whatever they're asked without any question?
    I tell them outright that it's a programming competency test. If you pulled this out, I would think you're either:
    • stalling
    • being intentionally obtuse
    • being unintentionally obtuse

    In any of those cases, you're out of the interview process.

  • Meep (unregistered) in reply to JPW

    [quote user="JPW"]I haven't coded in a while, let's see how I do in Perl.

    Perl array merge

    @combined = @first_array + @second_array; [/quote]

    Nope, that will give you an array with a single element, which will be the sum of the lengths of the arrays, as + takes only scalars. You're looking for @combined = (@first, @second), since Perl flattens lists.

    Gosh that was hard.

    Let's try a Perl fizzbuzz. Let's use Map just to be a pain.

    @integers = (1..100); map {&carbonate($_)} @integers;

    print @integers;

    sub carbonate{ $n = $_ if ($n %3*5 == 0) {$n = 'FizzBuzz';} elsif ($n %5 == 0) {$n = 'Buzz';} elsif ($n %3 == 0) {$n = 'Fizz';} return $n; } [/quote]

    Close, should be $n = $_[0], or simply:

    map { join("", $_ % 3 ? () :  "Fizz", $_ % 5 ? () : "Buzz") || $_ } (1..100)

    [quote]Am I hired for succeeding, fired for using Perl, or mocked for some obvious failure in the above?[/quote]

    Not knowing scalar and list context is basically not knowing Perl, and not testing your code and then asking if you'll get mocked is just weak sauce.

  • (cs) in reply to Matt Westwood
    Matt Westwood:
    One particular job where you are *definitely* never asked to perform a task for free is if have a qualification in mathematics. You frequently get asked to help with the kiddies' homework - but guess what, they're prepared to pay you big bux for the privilege.
    Wait, what?

    I'll be back in a minute. I have to go and prepare invoices for my kids.

  • (cs)

    Quite frankly, if the code actually worked I'd continue with the interview.

    Programmers shouldn't waste valuable time actually writing code if a simple google search will give them what they need.

    Addendum (2013-05-10 10:45): Quite frankly, if the code actually worked I'd continue with the interview.

    Programmers shouldn't waste valuable time actually writing code if a simple google search will give them what they need for a simple problem. The follow up question should have been "explain to me how this works".

    +---+

    Also, I've been in an interview where they asked me to do the FizzBuzz thing. So I put the answer on the whiteboard without pausing (common question, easy answer). I then proceeded to put up 2 alternate versions.

    They said they were impressed.

    So I asked them what they had hoped to gain from the 3 possible outcomes to their question anyway. The possible outcomes being that 1. I couldn't do it. 2. I could do it without errors. or 3. I could with minor errors.

    They threw out a line about how it was to gauge whether or not I could solve a problem. I pointed out that if they really wanted to test someone they shouldn't use one of the most well known questions on the planet. A question whose answer is incredibly easy to recall without thinking; which is all I did.

    So I asked if they had put any real thought into go / no go questions and what those might be. When they looked at me blankly, I explained that go / no go questions are those that if answered incorrectly mean you discard the applicant. They still looked at me blankly, so I let them know that this was a no go moment and left.

    This is the problem with idiots who don't really consider how to conduct an actual interview. The interviewee is given a list of crap questions pulled from the internet which ultimately have absolutely nothing at all to do with the problem space their team is working in.

    How about asking me to do a select statement with a complex join on a couple tables? Or asking me to handle unmanaged resources (.net). Or even, how a doctype impacts presentation of html pages within various browsers?

    Those questions require actual experience to answer. Actually, I'd go further to say that if you can answer those three questions you would do well as a .net web programmer. If you can't you're either a junior level guy (regardless of time on job) or a complete pretender.

  • BlueCollarCritic (unregistered)

    Personally I hate being in management, having to hire and fire people. I’m a problem solver who prefers to let those with managing skills play the role of manager/leader. That said I have done interviews and hired as well as fired and from my experience the best way to sort out the BS/Sales people who are able to talk their way into a job and those with actual skills applicable to the job they are applying for is by providing a series of problems to solve that go from easy to difficult and which are applicable to the skill required for the job the interviewee is applying for.

    For example, if you are hiring a DBA or coder who will be focusing on interacting with a RDBMS like SQL Server/Oracle then I would provide the candidate with the DDL to build a new DB along with a set of tables and fill those tables with sample data. Next they would be asked to provide several queries with each being harder then the one before. I would work my way from a relatively easy query that anyone with a basic understanding of SQL would be able to do on up thru the really tough stuff, the kind of things that SQL Guru Joe Celko covers in any of a number of books he’s written. By starting of with easy and working my way up to really hard I can not only gauge if the candidate is a BS artist/Sales Person who just knows the jargon and or buzzwords but I can also determine to what level of knowledge with SQL they operate. If the candidate could not take the DDL code provided and create a new DB and tables with it then I know they have no clue about SQL or RDBMS. If however they ask no questions then I know they have at least a basic understanding of relation DB’s and from there it’s a matter of determining at what level they operate with the SQL language.

    I would imagine this same technique would work for a web designer or traditional Object Oriented Programming job working in C++ or VB.Net or any of a number of similar languages. What’s most important is to not throw at the candidate the most difficult thing you can think of, at least not at the start as you could end up intimidating the candidate into performing poorly and possibly loose a potentially excellent employee who simply does not function well under a pressure interview. Interviewing is a skill all its own and far too often the person tasked with the interviewing has no business doing interviews as they themselves are poor at interviewing. The interviewer can be just as bad at the task as the interviewee. Far too often its assumed that the manager/team leader is the best person to interview the candidates.

  • (cs) in reply to BlueCollarCritic
    BlueCollarCritic:
    Personally I hate... to interview the candidates.

    The above is mine and I posted it before registering b/c I though the registration would happen at first post. Since There’s no way I can see to edit an anonymous post after the posting I'm replying to it and claim the post.

  • jay (unregistered) in reply to clively
    clively:
    Programmers shouldn't waste valuable time actually *writing* code if a simple google search will give them what they need.

    Sigh. My son just took his road test to get a driver's license. The test begins at the testing station, circles around town and the highway for ten or twenty miles, and then ends at the opposite end of the testing station.

    So would it have been rational for my son to say, "Hey, if you're just going to end up at the other end of the parking lot, we can just walk there in thirty seconds. All this driving is a waste of time."

    Lest you think this a serious question, the answer is, "No." That would be stupid. The point of the test is not that the examiner wants to get from one side of the parking lot to the other and foolishly takes this wildly inefficient route. The point of the test is to determine the competency of the student in driving over this route.

    Likewise, when a company gives a fizz/buzz programming quiz, the point is not that they have a desperate business need for a working fizz/buzz program. It's that they want to see if the applicant is capable of writing such a program.

  • jay (unregistered) in reply to clively
    clively:
    Also, I've been in an interview where they asked me to do the FizzBuzz thing. So I put the answer on the whiteboard without pausing (common question, easy answer). ... They threw out a line about how it was to gauge whether or not I could solve a problem. I pointed out that if they really wanted to test someone they shouldn't use one of the most well known questions on the planet. A question whose answer is incredibly easy to recall without thinking; which is all I did.

    Sure, if I was going to give an applicant a programming quiz, I wouldn't use fizz/buzz because it is a common problem for beginning programmers and there's too much chance the applicant has already done it or seen solutions elsewhere. I'd prefer to make up an original problem of similar complexity.

    Though as someone pointed out earlier in this thread, an interesting thing to do is to make some trivial change to the problem, like make the magic numbers 9 and 13 instead of 3 and 5, or make the magic words "foo" and "bar" instead of "fizz" and "buzz". The truly incompetent applicants who have just memorized a solution will be completely flustered. It would be interesting to observe the results.

    Still, there'd be plenty of applicants who are mildly competent who would realize how to make the trivial change to a memorized solution. I'd prefer an original problem.

  • BillR (unregistered) in reply to flabdablet
    flabdablet:
    Remy Porter:
    My initial instinct was to say, "a fizzbuzz algorithm is way too easy for a coding test," but y'know what? Apparently I'm wrong.

    It's almost a one-liner in a number of different languages.

    C, for instance.

    And in perl, too:

    say(($_%3?'':Fizz).($_%5?'':Buzz)||$_)for 1..100;

    Only 50 bytes.

  • BillR (unregistered) in reply to JPW
    JPW:
    Am I hired for succeeding, fired for using Perl, or mocked for some obvious failure in the above?

    The real WTF, aside from your code not actually working, is the notion that you think you could be fired for using what might be the right tool for the job.

  • (cs) in reply to clively
    clively:
    Quite frankly, if the code actually worked I'd continue with the interview.

    Programmers shouldn't waste valuable time actually writing code if a simple google search will give them what they need.

    Addendum (2013-05-10 10:45): Quite frankly, if the code actually worked I'd continue with the interview.

    Programmers shouldn't waste valuable time actually writing code if a simple google search will give them what they need for a simple problem. The follow up question should have been "explain to me how this works".

    +---+

    Also, I've been in an interview where they asked me to do the FizzBuzz thing. So I put the answer on the whiteboard without pausing (common question, easy answer). I then proceeded to put up 2 alternate versions.

    They said they were impressed.

    So I asked them what they had hoped to gain from the 3 possible outcomes to their question anyway. The possible outcomes being that 1. I couldn't do it. 2. I could do it without errors. or 3. I could with minor errors.

    They threw out a line about how it was to gauge whether or not I could solve a problem. I pointed out that if they really wanted to test someone they shouldn't use one of the most well known questions on the planet. A question whose answer is incredibly easy to recall without thinking; which is all I did.

    So I asked if they had put any real thought into go / no go questions and what those might be. When they looked at me blankly, I explained that go / no go questions are those that if answered incorrectly mean you discard the applicant. They still looked at me blankly, so I let them know that this was a no go moment and left.

    This is the problem with idiots who don't really consider how to conduct an actual interview. The interviewee is given a list of crap questions pulled from the internet which ultimately have absolutely nothing at all to do with the problem space their team is working in.

    How about asking me to do a select statement with a complex join on a couple tables? Or asking me to handle unmanaged resources (.net). Or even, how a doctype impacts presentation of html pages within various browsers?

    Those questions require actual experience to answer. Actually, I'd go further to say that if you can answer those three questions you would do well as a .net web programmer. If you can't you're either a junior level guy (regardless of time on job) or a complete pretender.

    FizzBuzz is a baseline go/no go. If you know it, good. If you don't, and can't do it, it's an obvious no go, just like your personality.

  • (cs) in reply to Kuli
    Kuli:
    One can make a comment with <!--<a href="/">My comment</a> -->

    But it is visible in the page source code in browser.

    (Note: This comment was copied from Stackoverflow)

    Stackoverflow has ruined everyone and made all lazy.

  • nonce (unregistered) in reply to almien

    You know someone actually implemented that, eh:

    http://gkoberger.github.io/stacksort/

  • Borthwallis (unregistered)

    I'm actually kind of surprised that people actually give the "original" FizzBuzz as an interview question. I was under the impression that "a FizzBuzz" question should just be some relatively straight-forward question, but not necessarily the exact same one everyone uses.

  • Norman Diamond (unregistered) in reply to BillR
    BillR:
    JPW:
    Am I hired for succeeding, fired for using Perl, or mocked for some obvious failure in the above?
    The real WTF, aside from your code not actually working, is the notion that you think you could be fired for using what might be the right tool for the job.
    TRWTF is that you could be fired for using the right tool for the job, when corporate politics have no valid technical reason for imposing the wrong tool. It is not a WTF to think you could be fired for it, when the fact is that you could be.

    Or if not hired yet, you can't be fired, but you can be blacklisted. A few years ago I read about a Linux guy applying for a contractor's position to work on Linux at a client's site. The client's registration system only worked with Internet Explorer, even for the Linux position. The Linux guy had the gall to use Linux on his home PC. He further had the gall to inform the client of how their registration site could be modified to work with Firefox. That was the final straw. The WTF reward: he was blacklisted.

  • (cs) in reply to Xarthaneon the Unclear
    Xarthaneon the Unclear:
    How is this not classified as a 'Tales of the Interview'?
    Seconded. It definitely should be.
  • Gunslinger (unregistered) in reply to JPW
    JPW:
    I haven't coded in a while, let's see how I do in Perl.

    Perl array merge

    @combined = @first_array + @second_array;

    Gosh that was hard.

    Let's try a Perl fizzbuzz. Let's use Map just to be a pain.

    @integers = (1..100); map {&carbonate($_)} @integers;

    print @integers;

    sub carbonate{ $n = $_ if ($n %3*5 == 0) {$n = 'FizzBuzz';} elsif ($n %5 == 0) {$n = 'Buzz';} elsif ($n %3 == 0) {$n = 'Fizz';} return $n; }

    Am I hired for succeeding, fired for using Perl, or mocked for some obvious failure in the above?

    All of the above.

  • nibh (unregistered) in reply to Friedrice The Great
    Friedrice The Great:
    lolatu:
    tharpa:
    Don:
    I also don't like Atwood's article at http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html. I can imagine a person with programming potential (but who's never seen a line of code before) who's never been taught about assignment, and certainly has never been taught about the perverse way that C-family programmers use the equals sign, who would just see the third line in the code there, would think it was an error and/or that the test givers were morons, and wouldn't be able to get beyond that unless they were given those critical pieces of information.
    You may not like it, but they were looking at students before and after instruction. Once assignment has been explained and you still don't get it, well then you aren't going to be a programmer.

    I have interviewed many candidates over the years. Very rarely have the best ones had a CS degree of any kind. I honestly don't care if I see it on a resume. I look at resume, then code samples, then phone interview, if all those go well, then in-person with some programming exercises. Code samples are my main indicator of potential. Of course I go through them with the candidate to make sure it's actually their work (or at least they understand the code thoroughly enough to fake it).

    Best programmer I know personally: degree in Electrical Engineering.

    Best systems analyst I've ever worked with: Ph.D. in Chemistry.

    Takes all kinds!

    No offense, but those two are only the best programmer/analyst YOU know. Also, it takes knowledge and skill in a field to recognize knowledge and skill in the same field (of course, you're convinced you have both 100%).

  • nibh (unregistered) in reply to chubertdev
    chubertdev:
    Friedrice The Great:
    I know how to operate all of those machines. But, then, I don't have a CS degree.

    Or an English degree.

    And, what is wrong with that sentence, pretty boy?

  • nibh (unregistered) in reply to BlueCollarCritic
    BlueCollarCritic:
    BlueCollarCritic:
    Personally I hate... to interview the candidates.

    The above is mine and I posted it before registering b/c I though the registration would happen at first post. Since There’s no way I can see to edit an anonymous post after the posting I'm replying to it and claim the post.

    I'm claiming that post. I created it while I was logged in, and now I'm here as an anonymous user and I want everyone to know that this is still the same guy, that is, me.

  • (cs) in reply to nibh
    nibh:
    chubertdev:
    Friedrice The Great:
    I know how to operate all of those machines. But, then, I don't have a CS degree.

    Or an English degree.

    And, what is wrong with that sentence, pretty boy?

    Comma comma comma chameleon.

  • (cs) in reply to s73v3r
    jay:
    What is the result after this code sample?

    17 ; x 4 ; y x () y

    (a) x is 4 and y is 17 (b) x is 21 and y is 4 (c) x is 0 and y is pi-squared

    I think such a question is just as fair as what it sounds like these students were given.

    Quite possibly.

    But, it doesn't matter what I answer to that first question, there is no right or wrong. It's the rest of the questions that matter. If the second question is:

    23 ; x 62 ; y x () y

    (a) x is 85 and y is 62 (b) x is 62 and y is 23 (c) x is 0 and y is pi-squared

    then if I answered (a) then (b), or (b) then (a), or (c) in both cases, then I'm doing well; I've come up with a consistent model, and am applying the rules I've made (but answer (c) wouldn't be a good one, as it's not clear how 17 & 4 could be manipulated to give pi-squared).

    The rules are not complex. Because we can't see the other questions in that quiz, maybe you think they're trying to be tricky, but I guess they have the same simplicity throughout. If someone thinks the 'a = b' swaps the numbers, then that's OK, as long as they are consistent. If someone thinks 'a = b' means 'a += b', then that's OK, as long as they are consistent.

    Note that after doing the quiz, they are given instruction, and asked to do the quiz again - and the results are similar (but I expect more people would get the results 'correct' rather than just 'consistent'). This suggests that the ability to build and use a suitable mental model is not changed by the instruction, but the mental model used by those who could handle one would corrected.

    Maybe the test should have been totally outside the programming realm, but from my experience I can agree that there is a (quite strong) correlation between being able to come up with a mental 'model' to match evidence and programming ability.

    I'm not sure that this 'modelling' ability is strictly related to programming, but there are people who 'model' and people who don't. Good programmers will tend to model (but so will good soldiers, good pilots, good lawyers etc)

    s73v3r:
    No, it's not. Your code sample is bunk because you're introducing two different operators.

    I'm not sure I agree with that - 'int a = 10' is different from 'a = b' (or even 'a = 10'). If you don't know anything about programming, then you won't have a clue what the 'int' at the front means. However, that doesn't matter for this test.

  • (cs)

    FizzBuzz (contractor's version):

    Response.Write("1")
    Response.Write("2")
    Response.Write("Fizz")
    Response.Write("4")
    Response.Write("Buzz")
    Response.Write("Fizz")
    Response.Write("7")
    Response.Write("8")
    Response.Write("Fizz")
    Response.Write("Buzz")
    Response.Write("11")
    Response.Write("Fizz")
    Response.Write("13")
    Response.Write("14")
    Response.Write("FizzBuzz")
    Response.End()
    
  • Fritzr (unregistered) in reply to allo

    In Commodore BASIC (and many other dialects) equate (assignment) and equal to (comparison) use exactly the same symbol relying on context to differentiate.

    for example, What is the value of a after executing the following? b=2:c=3:a=b=c

    In many languages the value of a (and also b) is 3 In Commodore BASIC a=0 (b not equal to c) The keyword LET was not used because it is a space wasting optional keyword in Commodore BASIC. Sinclair BASIC also uses = for both meanings, though the LET keyword is required in that dialect.

    I often use == when I wish to make it clear I mean comparison, but in many languages it is a syntax error.

    The study, as explained clearly for those who actually read it before commenting, says that the test is administered before the course starts and again after the course is completed. Completing the course rarely changed the result. Restated as students who passed on the first test also passed on the second, students who failed on the first test also failed on the second & students who gave up on the first test also gave up on the second test.

    The test was not testing for knowledge of the programming syntax, it was testing for mindset which is why answering the questions using a consistent interpretation was "correct" regardless of what someone who had trained in that particular language would see.

  • Fritzr (unregistered) in reply to Borthwallis
    Borthwallis :
    I'm actually kind of surprised that people actually give the "original" FizzBuzz as an interview question. I was under the impression that "a FizzBuzz" question should just be some relatively straight-forward question, but not necessarily the exact same one _everyone_ uses.
    Everyone uses it because it gets rid of the ones who both can't code the answer and have not bothered to memorize an answer :P

    Once the lazy incompetents are removed, you can move on to realistic tests.

  • SmeckleTickle (unregistered)

    So let me get this straight - knowing what FizzBuzz is constitutes a test of programming ability?

    Why not just ask candidates to code a SmeckleTickle routine? Oh, nobody knows what SmeckleTickle is? Interview process complete in record time! Re-post the position. What's for lunch?

  • Anonymous (unregistered)

    I stumbled on this email address robinsonbuckler few days ago, so i emailed him about my bad relationship condition, how my lover left me, how he was with another girl, so Mr Robinson told me it would take 3days to get my boyfriend back, i waited for 3 days, unbelievable my boyfriend came to my house asking me if we could try things out again. He broke up with the other girl and we rekindled and got back together, he now show me care and attention. Mr Robinson was my last hope, my last chance after all the spell casters I tried before, Mr Robinson kept his promise! he is the greatest spell caster on the internet, call Mr Robinson, he stays in UNITED STATE + [1 9 7 1 5 1 2 6 7 4 5] for help

Leave a comment on “Cheaters Never Prosper”

Log In or post as a guest

Replying to comment #407675:

« Return to Article