• Will (unregistered)

    When learning a framework written in Java, shouldn't you generally know Java too?

    It makes you wonder if the Java spec went something like:

    try {} catch blocks: Synonymous with /* */ - if it doesn't compile, surround the problem lines with these.

    Captcha: hacker - Brillant.

  • Chris (unregistered)

    Well at least he got fired in the end. We tend to keep those folks around.

  • dasgsdgsd (unregistered) in reply to Chris
    > had a name that fit in really well with Java's whole coffee theme
     
    That's funny.
  • David (unregistered)

    I really don't see the wtf here. After all, if you are too incompetent to properly write a function, you should "try" to write the function and then "catch" the errors in writing the function. That's just common sense.

  • Sam (unregistered)

    This is an example of why "tech" interviews are almost completley worthless. I keep pushing to give people non-trivial but still small problems to solve and see what they come up with.

  • (cs)

    The real WTF is that they did not follow up the technical interviews with requests for code samples. BS-ing a technical interview is easy, but when put to the real test of coding, this guy would most likely have been exposed.

    Was this guy Paula's brother by any chance?

  • dave (unregistered)

    Care to offer a helping hand to a Java-impoverished reader?

    I guess that theWTFiness is the same as it would be in C++ -- there's a try/catch block insanely wrapped around some method declarations.  So he probably doesn't grasp the disctinction between 'declaration' and 'code that actually gets executed'.

    Right?

    By the way, the photo of a vaguely puzzled-looking grey-haired programmer is kind of ageist, don't you think?

  • (cs) in reply to Chris
    Anonymous:
    Well at least he got fired in the end. We tend to keep those folks around.

    We don't just keep them around, we hire more of them. A living testimony against artificial and desperate selection.
    I'm inclined to fire anyone verbally who doesnt understand source control even after a week.
    And if they're VSS fans, there is bound to be a brillant display of pyrotechnics.
  • (cs)
    Alex Papadimoulis:
    with his fifteen years of programming experience

    Is that 'fifteen years', or 6 months, thirty times?

  • Matt (unregistered)

    There are two WTFs:  1) He has wrapped two abstract method declarations with a try/catch block, 2) he's trying to compile and, presumably execute, an abstract class (which must be inherited from and never instantiated.)

    IOWs, he still doesn't know what abstract means.
  • (cs)

    15 years experience? Looks like this person has NEVER used ANY OO programming language. Or at least he never used any OO features of any OO language before... I really hate it when stuff like this happens. People who know that they are useless as programmers should find another profession. I bet Mark had a CS degree too. I get SOOOOOOO upset when I see stuff like this. It is completely INEXCUSABLE. If Mark stays in the field, then I hope he gets hit by a train, or a stray bullet. Retarded people who hurt companies and other people because of their stupidity should not be allowed to live. People like Mark are holding back all of mankind. I cannot describe how much this scenario enfuriates me.

    To people who think I am being too hard:

    Mark had FIFTEEN years of experience, and experience dealing with multiple frameworks. He was then given THREE WEEKS to learn a new framework. Mark is the definition of COMPLETE AND UTTER INCOMPETENCE. Anyone who even knows OF this forum is of a higher intellect than this ass. I'd be surprised if at any company he had ever worked for he held a job longer than six months. Complete and utter crap.

    What pisses me of the most is that he somehow doesn't know that he is completely incompetent when it comes to computers and programming. Sometimes people REALLY piss me off.

  • (cs)

    Those giant red squiggly lines under his code just won't go away.  Mark must have just thought that this was a glitch in the IDE he was using.

  • jacob (unregistered) in reply to dave
    dave:

    By the way, the photo of a vaguely puzzled-looking grey-haired programmer is kind of ageist, don't you think?



    I think it's a pretty apt representation of what's going on here.
  • (cs) in reply to jacob

    At least they ousted him, although it took them a month to do it. That code shows a total lack of understanding of even the basic structures of modern programming.

    Now the REAL WTF is that the guy holding the pliers is flipping us off.

  • Jefffurry (unregistered) in reply to dave
    Anonymous:
    By the way, the photo of a vaguely puzzled-looking grey-haired programmer is kind of ageist, don't you think?

    I saw it as the protagonist, contemplating the best way to use the channel-locks to deal with the "problem".....

    We had a consultant like Mark where I worked - he talked a good game, but produced no actual code. And when he promised he'd deliver code, he had a convenient "motorcycle accident" and didn't show up. That wasn't our Mark, though. Our Mark produced convoluted and barely functional code - his WTF was that he couldn't stay in spec. He kept trying to over-design and over-architect, when we had a design and architecture, and we just needed a bit of implementation.

    Captcha: null
  • Radman (unregistered)

    What I don't understand is how he "wizzed the technical interviews." What kind of questions were they asking him? How do you spell "Java"? What is a Web-Application? Come on here, maybe it shows a lack of competance on the technical interviewer's side. I've given a number of tech interviews and I've been able to pin those who know java and those who don't.

    Man that was sad. It's very sad that programmers like that exist in the world and are actually getting paid!

  • Dan (unregistered)

    So this is where our Project Managers come from....

  • xowl (unregistered)

    So the manager ignored a (presumably) senior and trusted developer's concerns about a new hire several times? That's the guy I'd be more worried about. The Marks of the world just take up valuable floorspace. You learn not to assign them anything you want finished and point Marketing at them for any questions.

    Shawn should get a meeting together to talk about technical interviews. If they're done sitting down with all-erbal q&a, they're a waste of time. Get to a whiteboard or sheet of paper, write out the question/start some code/draw a diagram, then point the marker/pen/stylus at the candidate and as, "what would be your first thought?" If they lean back, put their hands behind their head, and start theorizing instead of taking the instrument and getting something done, show them the door and save the next interviewer some time.

    Oh, "How do I access email" can be forgiven. "How do I access source control" can be forgiven twice(as opposed to "what is source control and can I avoid using it," which sounds like the real problem here): once because of unfamiliar configuration/server names and once because of assuming said configuration would be saved somewhere it wasn't. After that, there had better be a file/sticky note/tattoo with the answer.

    "What does 'abstract' mean" from a "senior" guy is a 15% pay cut right there.

  • Frank Davis (unregistered)

    About eight years ago I was working for a medium-sized business, as the only developer at the company that was an actual employee. We had other developers that came and went on an as-needed basis from a local company, one that was more of a temp-agency for techies than a "consulting" firm. The company took pride in its hiring screeners and as a rule, sent us sensible people that were easy to work with, and while they sometimes only had a year or two of experience usually managed to accomplish what we needed. We had gotten in the habit of accepting whoever they sent without any screening process on our end. And it worked fine, until they sent us Frederick.

    The statistical analysis software we used, while spreadsheet-like in appearance, used a proprietary binary format, and we needed to import about five years worth of these files into our database. The analysis software company sent us a dll library for reading the files, and a fairly easy-to-understand stack of documentation. Fredericks assignment was to use Borland Delphi to make calls to the dll, read the files, and insert rows into the database. Seemed pretty simple to me.

    At the end of day two I went to his desk to see what kind of progress he had made. I found him trying to "access" the dll by using "File - Open" from the Delphi IDE. Ouch!

    Rather than get rid of him then and there, I gave him a test-assignment the following morning, since I still had one day in the 3-day grace period the temp company gave us. I gave him a simple task that would have taken me about an hour to do, and gave him the whole day to do it. I found out later that two of the other guys from the same company took him to lunch, explained exactly how to do what he needed to do, and even wrote the code out for him on a napkin.

    At the end of the day, he still couldn't even get it to compile.

  • merreborn's nemesis (unregistered) in reply to Sam
    Sam:
    This is an example of why "tech" interviews are almost completley worthless. I keep pushing to give people non-trivial but still small problems to solve and see what they come up with.


    Yes!  Seconded!

    captcha=foxtrot?    The dance?
  • (cs) in reply to Frank Davis

    Well, if he stated that he had 15 yeas of Java experience, that could explain a few things...

  • (cs) in reply to dave
    Anonymous:

    Care to offer a helping hand to a Java-impoverished reader?



    Well, let's take a lot at he source. <font color="#ff0000">Red</font> = error, <font color="#ffa500">Orange</font> = questionable.

    public <font color="#ffa500">abstract</font> class HomePage extends BasePage
    {
    <font color="#ff0000"> try
    {
    <font color="#ffa500"><font color="#000000"> public abstract Integer getCount();
    </font> <font color="#000000">public abstract void setCount(Integer </font><font color="#000000"><font color="#ff0000">int</font>);</font></font>
    }
    <font color="#ffa500"> catch (Exception e)
    {
    // catch (Exception e)
    }</font>
    </font>}

    abstract... well, of course there are many reasons when and why to declare abstract classes, but the first hello-world program is usually not abstract.

    try... The try block should appear in a method. It doesn't. Thus, the program cannot compile. Should be removed.

    public abstract Integer getCount(); ... looks ok (without the try {} around it)

    public abstract void setCount(Integer int); ... int is of course a reserved word, cannot be used as a parameter name
     
    catch block.... well, it does nothing and I wonder what the // catch comment should mean
  • hyness (unregistered) in reply to dave
    Anonymous:

    Care to offer a helping hand to a Java-impoverished reader?



    The second line, HE OPENS A CURLY BRACE ON A NEWLINE!

    The details of declaring abstract functions can be worked around, but the blatant disregard for proper indentation cannot be overlooked.  :)
  • (cs)
    Alex Papadimoulis:

    Now, asking a lot of questions isn’t so bad in and of itself, but Mark kept asking the same questions, over and over and over again. And they were fairly basic questions, too




    This is a huge pet peeve of mine.  If you have to ask the same question more than once, try writing it down.  Especially if you're new somewhere, you're going to need to take a few notes.  I don't mind answering questions, but listen to my answer so that you don't have to ask again.
  • Unkown Coder (unregistered) in reply to Sam

    At my company, we prescreen with a simple coding question over the phone, the candidate must email their answer and then we bug check it together. They must be able to explain the reasons behind every part of the code and be able to find and debug the code. Also, we need to see test cases for the code.

    If they pass that they get to come in and get 4 rounds of interviews, each over an hour long. One is general expirience, philsophies of programing, one is general fit (a free lunch), the other 2 are in depth programming questions where the result has to be "Production ready" code. Everyone who's taken the interview has thought they failed it, because we never stop finding problems til we run out of time. We take though around 10% of the prescreens and 40% of the people we interview in person.

  • Junior (unregistered) in reply to Unkown Coder

    Dang UnknownCoder those are some pretty stringent standards, understandably so though.

    Capatcha = Initech

  • (cs) in reply to hyness

    I was just wondering why it is not proper to open a curly brace on a new line?

    I find it more readable to do so.

    Is it considered standard by most people to put it at the end of the function declaration on the same line?

  • (cs) in reply to Stupidumb
    Stupidumb:
    I was just wondering why it is not proper to open a curly brace on a new line?

    I find it more readable to do so.

    Is it considered standard by most people to put it at the end of the function declaration on the same line?


    Modern compilers create 15% faster code if the curly brace is on the end of the function declaration line.






    just kidding
  • (cs) in reply to Stupidumb
    Stupidumb:
    I was just wondering why it is not proper to open a curly brace on a new line?

    I find it more readable to do so.

    Is it considered standard by most people to put it at the end of the function declaration on the same line?


    He was kidding.
  • (cs) in reply to GoatCheez
    GoatCheez:
    What pisses me of the most is that he somehow doesn't know that he is completely incompetent when it comes to computers and programming. Sometimes people REALLY piss me off.

    Don't let it bother you. It's a human trait: http://www.apa.org/journals/features/psp7761121.pdf

  • (cs) in reply to Stupidumb
    Stupidumb:
    I was just wondering why it is not proper to open a curly brace on a new line?

    I find it more readable to do so.

    Is it considered standard by most people to put it at the end of the function declaration on the same line?


    Did you miss the :) at the end of the post you are referring to?

    Personally, I prefer the open brace on the SAME line. You get to read more code without scrolling, and the indentation already provides visual separation.

    Our written standards state that you should continue with whatever style was originally used for that file, a policy I agree with.
  • Muther-F*n Snake (unregistered)

    15 years programming experience isn't necessarily a good thing. I wonder how many retiree's are going to find savings gone and, as a result, try to reenter the job market with nothing but their Cobol experience.

  • Pornholio (unregistered)

    Whizzed right through huh?  The only thing stupid-er than this guy is the people and process that hired him.

  • exorcyze (unregistered)

    Oh my. I've worked at all too many of these companies. Typically they are unfortunately the ones that get in on the core-parts of the teams. They talk good game, but way overcomplicate and overarchitect everything, produce next to nothing but tons of lines of worthless, bug-ridden, obfuscated code that has almost no functionality. And somehow or another, they manage to talk their way out of being fired. I've never understood this phenomenon.

    One of my last prior jobs we had one of these. One of his "simple" applications spanned dozens of classes and roughly 4000 lines of code, and of course was complete spaghetti. I rewrote a proof of concept (to prove that what he was doing really was not complex) in under 200 lines - with improvements and without the 59% failure rate from dodgy code.

    Now the place I'm at we have better methods for screening. Not as rigorous as some I'm sure, but we at least require that the canidates know all the basics off the top of their head with a written test before we even waste a developers time with a more in-depth tech interview.

  • [Si]dragon (unregistered) in reply to Unkown Coder
    Anonymous:
    At my company, we prescreen with a simple coding question over the phone, the candidate must email their answer and then we bug check it together. They must be able to explain the reasons behind every part of the code and be able to find and debug the code. Also, we need to see test cases for the code.

    If they pass that they get to come in and get 4 rounds of interviews, each over an hour long. One is general expirience, philsophies of programing, one is general fit (a free lunch), the other 2 are in depth programming questions where the result has to be "Production ready" code. Everyone who's taken the interview has thought they failed it, because we never stop finding problems til we run out of time. We take though around 10% of the prescreens and 40% of the people we interview in person.


    Can I work for you?
  • FortyOne (unregistered)

    At least the manager had the good sense to let him go after a few weeks. My manager would keep him on for another six months (until his probation runs out) and then "make" him resign (so as not to foul up Mark's brilliant reputation). Until then, some unfortunate project teams would be forced to use Mark whether they like it or not.

    41

    Captcha: Jiggles

  • (cs)

    Well, shouldn't they have expected something like this when the candidate introduced himself as Mr. public abstract class Developer extends HumanBeing?

  • Anon (unregistered)

    We just got rid of a guy here after a month and a half. Not to be age-ist, but he was 59 and typed/poked with his index fingers only. That is when he wasn't copy and pasting (he once c/p'd a 0, yeah the number). He could talk the talk if he wasn't near a computer, and you'd think he had a clue. Afterwards, he'd ask one of the other developers for help doing what you just covered how to do. An update to an existing site was estimated at 40 hours. He spent July on it. And it wasn't done, at least, not correctly/bug free. After he left, I was assigned to finish his latest task. I give you this snippet of vb code that is creating a WHERE clause in some sql.

    sqlString &= "WHERE IsActive = " & 1

    I stopped on this line for 5 straight minutes. Then I walked away from my desk.

  • (cs) in reply to Stupidumb

    Stupidumb:
    I was just wondering why it is not proper to open a curly brace on a new line?

    I find it more readable to do so.

    Is it considered standard by most people to put it at the end of the function declaration on the same line?

    That's a religous war - sort of like saying "ColdFusion is a programming language" ...

  • (cs) in reply to kipthegreat

    kipthegreat wrote the following post at 08-24-2006 7:05 PM:
    If you have to ask the same question more than once, try writing it down.

    Why?

    I mean, if he kept asking the same question over and over, at least he had no trouble remembering the question, right?

  • (cs) in reply to snoofle

    Ahem - this guy BS's his way through an (allegedly technical)  interview, doesn't have a clue how to write a class, let alone code, and doesn't know the word: Google?

    I mean, not all the examples on the web are good ones, but they'll get you in the ballpark.Googling "sample java abstract class" gets you a link on the first page with a pretty good explanation and sample source. </rant>

  • wayneooooo (unregistered) in reply to ammoQ
    ammoQ:


    Modern compilers create 15% faster code if the curly brace is on the end of the function declaration line.




    You're wrong - it's 15.5435% faster, even faster if you compile after 3pm apparently.

    w://
  • Anonymous Coward (unregistered) in reply to Erick

    IMO, the real WTF here is how a person like this was ever hired.  Clearly the people interviewing him either didn't ask the right questions, didn't understand his responses to questions they posed, and really didn't delve into any technical nitty-gritty.

    When my current company conducts interviews, it's expected that people participating in the interview will have a few basic programming questions to ask the person, just to make sure they actually know what they're talking about.

    I fondly recall one interview I sat in on.  The applicant had specified that they were an "expert" at C++, so during the interview, I posed my standard C++ interview question:

    Explain the difference between the C++ public, private, and protected keywords, and where their use may be appropriate.

    Needless to say, this is hardly a stumper for any self-proclaimed C++ expert.  After delivering a questionable explaination of public and private (this was after we gave him several hints, I might add), the applicant was completely bewildered as to what protected was, and where it would be used.  From this, we can deduce the following:

    • Applicant is not an expert at C++.
    • Applicant probably doesn't know much C++, given the difficulty of the question.
    • Applicant doesn't know anything about inheritance (being stumped by the protected keyword means you've probably never used it), so it's probably also safe to say that polymorphism, interfaces, and other general OO principles are out.

    This single question was the major reason we ended up NOT hiring him.  We also told him that in the future, it is unwise to label yourself an "expert" at C++.

    So, in my opinion, the fact that they canned him after a month is pretty amazing, given that they ever hired someone like this in the first place.  The real WTF here is why this guy ever set foot in the door.

  • (cs) in reply to dave
    Anonymous:

    way, the photo of a vaguely puzzled-looking grey-haired programmer is kind of ageist, don't you think?



    Sure, it's "ageist" if you believe that the point of the photo is that all elderly are easily confused and, in fact, simple-minded. Of course, if that's the conclusion you draw from the photo then that says more about you than anything else.

    If it had been a woman in the photo, do you think it would be sexist? Or if it had been a black in the photo, do you think it would be racist?

    sincerely,
    Richard Nixon
  • Jud (unregistered) in reply to GoatCheez

    GoatCheez:
    Mark had FIFTEEN years of experience

    I consider myself to have three years of experience, five times.  I don't have fifteen years of experience with anything because the technology changes so frequently.

    I had a candidate come in recently that had "17.5 years" (I kid you not, right on his resume) of experience.  He even spoke about his extensive amount of time in the field during the interview.  Guess what happened when I handed him the keyboard?  Coding practices from 10+ years ago.  Thanks, I'll take a person with 3 years of experience that keeps current with technology.

    GoatCheez:
    I bet Mark had a CS degree too.

    In case you're wondering, I ignore this section of a resume because it has proven to be completely unuseful in determining qualification.  In my experience, the best candidates are about 50/50 degreed.  The worst come with a sheet of paper to back them up.  May work at some places, but not here.

  • (cs) in reply to Matt

    Matt wrote the following post at 08-24-2006 6:14 PM:
    There are two WTFs:  1) He has wrapped two abstract method declarations with a try/catch block, 2) he's trying to compile and, presumably execute, an abstract class (which must be inherited from and never instantiated.)

    IOWs, he still doesn't know what abstract means.

    Come on, judging by where he put the try/catch block, he may not even know what class means.

    And by the way, what the F's wrong with compiling an abstract class?  You need to compile it to get the HomePage.class file, which in turn you need to inherit from the HomePage class, don't you?

  • Captcha (unregistered) in reply to Anonymous Coward
    Anonymous:

    Explain the difference between the C++ public, private, and protected keywords, and where their use may be appropriate.

    Needless to say, this is hardly a stumper for any self-proclaimed C++ expert.  After delivering a questionable explaination of public and private (this was after we gave him several hints, I might add), the applicant was completely bewildered as to what protected was, and where it would be used.  From this, we can deduce the following:

    • Applicant is not an expert at C++.
    • Applicant probably doesn't know much C++, given the difficulty of the question.
    • Applicant doesn't know anything about inheritance (being stumped by the protected keyword means you've probably never used it), so it's probably also safe to say that polymorphism, interfaces, and other general OO principles are out.

    Or, how about the applicant went to a university where it was taught "protected doesn't mean much .. it's sort of like private .. nobody uses it in practice", and then all his experience was at a software shop where it really never was used in practice.

    Happens a lot.  The university I went to taught protected this way. (Thankfully, I didn't learn C++ from them .. I wasn't a CS student.).  And, at my place of employment, "protected" is explicitly prohibited in the coding standards because "most software engineers don't understand how to properly use this, so don't use it at all".

    So, my point is ... one can still be an "expert" and not know a great deal about "protected".  It just helps in many instances to know when to use it properly.
  • Taco Bell (unregistered)

    One of the real WTFs is that the guy had 3 weeks + few weeks + another week +  following week,
    and he didn't bother to crack open a SAMS java in 24 hours (or similar) book.
    At least he would have had some more demo code to cut and paste ;)

  • Brad (unregistered)

    The guy comes up with a code snippet that makes Paula's appear brillant (hers compiled) proving that the "15 years" was almost certainly a complete fabrication, yet the technical interview detected not a whiff of this.

    Conclusion: Paula must have conducted the interview!

    The interview is the wtf.  Imagine what a riot it would be to watch a video of it.  Many ridicule "technical" interviews, but the fact is that no 2 "technical" interviews are the same: some may be very good, others more like Paula's.

  • JavaIsAWTF (unregistered) in reply to GoatCheez

    I had pointed this out, but apparently it was too controversial and got deleted.  So I'll try again, but shorter and simpler and less controversial.

    I think Mark legitimately did know what he was doing, he just got confused with some WTF-worthy Java concepts, specifically inner classes and init blocks.  His code is just a couple of lines away from compiling.

    I expect the framework included examples of abstract classes being implemented using anonymous inner classes and he got confused.  Anonymous inner classes deserve a WTF of their own so it's not really all that amazing that someone got confused by them.

    It doesn't necessarily mean that he was completely incompetant at programming.  Given that he passed the technical interviews, he probably had some level of competance but got confused by the framework.  Anyone familiar with Java and the frameworks built around it shouldn't find it that surprising.

Leave a comment on “The Abstract Candidate”

Log In or post as a guest

Replying to comment #:

« Return to Article