• (cs) in reply to Dwayne
    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.


    Maybe he actually doesn't know? It takes some skill to be able to assess skill, after all. That's the findings of an excellent article: http://www.apa.org/journals/features/psp7761121.pdf#search=%22unskilled%20and%20unaware%22


    Regarding protected and private: you don't need to use them if you instead declare abstract classes in your headers, and factory functions, and then define the implementation class in your .cpp file. Because everyone talks to you through the abstract interface, no worry about anyone getting their grubby mitts on your data.

    "protected" is the worse, because it's ONLY useful when you do implementation inheritance, which is more often than not Dangerous and Wrong. (Yes, there are cases when it isn't -- but those are not the majority)
  • Franz Kafka (unregistered) in reply to GeekMessage
    GeekMessage:

    RogerC wrote the following post at 08-24-2006 8:26 PM:
    You assume he's a programmer. Others who have replied to this have jumped right onto that bandwagon. What makes you all think he's a programmer?

    He looks puzzled by that piece of hardware, so he must be a software guy.



    Nah, he's confused by a wrench - must be a college professor.  
  • noname (unregistered) in reply to Blah
    Anonymous:
    See to me, as a non-professional coder, friend just utterly screws with your code "uniforminess". If you make a member private, it's private for a reason. Don't make it private then friend it so some other class can get at it.

    Then again I'm a fan of private members and public accessors (C++), so perhaps I don't have a clue. It's a little more work but at least you're abstracting the class internals in case changes are needed. IM-not-professional-O.

    CAPTCHA: paula, so perhaps that's a comment on my code.

    Maybe it's because you don't have any friends willing to twiddle your private parts?
    :>)

    As someone already mentioned, it's needed if you're going to override the << or >> operators for iostream and need access to things that should stay private. There are other cases where you might have tightly coupled classes that need access to details that you don't want to make generally public. In that case you're using it to maintain the abstraction in the general case, but poking a tiny hole (documented in the classes declaration) for practical reasons.

  • Grovesy (unregistered) in reply to Captcha
    Anonymous:
    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.

    ummm, protected is kind of fundamental, without it the only way to expose behaviour or *structure intended soley for a derrived class would require you to make those members public, or friend which would violate encapsulation.

    *In our coding standards we are not even allowed to expose strucure to derrived classes, we have to create protected operators.

  • Grovesy (unregistered) in reply to noname
    Anonymous:
    Anonymous:
    See to me, as a non-professional coder, friend just utterly screws with your code "uniforminess". If you make a member private, it's private for a reason. Don't make it private then friend it so some other class can get at it.

    Then again I'm a fan of private members and public accessors (C++), so perhaps I don't have a clue. It's a little more work but at least you're abstracting the class internals in case changes are needed. IM-not-professional-O.

    CAPTCHA: paula, so perhaps that's a comment on my code.

    Maybe it's because you don't have any friends willing to twiddle your private parts?
    :>)

    As someone already mentioned, it's needed if you're going to override the << or >> operators for iostream and need access to things that should stay private. There are other cases where you might have tightly coupled classes that need access to details that you don't want to make generally public. In that case you're using it to maintain the abstraction in the general case, but poking a tiny hole (documented in the classes declaration) for practical reasons.

    I agree, though in general, I would be beaten with a big stick for ever exposing internal strucutre as friend or protected, on the other hand protected operators / methods / accessors are fine. Personally, I allways try and restric the scope of every member of ever class as much as possible, and keep the public interface to a component as simple and litter free as possible.

  • (cs) in reply to Anonymous Coward
    Anonymous:

    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.



    Totally agree! It was the stupid company that is the WTF. They obviously have no idea how to conduct a technical interview.

    Technical interview? Spell Java? You're hired!!


  • Franz Kafka (unregistered) in reply to zip
    Anonymous:

    geezer coder:


    Jesus, some of you are a bunch of conceited pricks. 

     

    geezer coder:


    Incidently, I came back from retirement (got bored), learned Java, perl, C# and played around a bit with Ruby and Python.  Pulling down six figures, and have clients demanding that I be assigned to their projects because of my technical reputation. 

    Hey... Pot!  Nice to meet you after all this time!  I'm Kettle!



    It's not conceit if you can back up your swagger, and having people demand you by name just feels soo nice.

    /not an old fart turned hot shit developer
    //give it time  
  • (cs) in reply to Jon W
    Jon W:

    Maybe he actually doesn't know? It takes some skill to be able to assess skill, after all. That's the findings of an excellent article: http://www.apa.org/journals/features/psp7761121.pdf#search=%22unskilled%20and%20unaware%22

    According to this article, slightly-above average people are best in judging their skills correctly, while excellent people are just as bad in judging their skills correctly as relatively bad people.
    As a final result, we observe that mediocrity is the best precondition to assess one's skill correctly.

    Now really, this article is totally overrated. (Nearly) all people consider themself in the 55%-75% range, nearly independend of their acual level. It's just that bad people's actual score is further away from that range than good peoples. Slightly-above-average people hit the mark, but IMO just by pure luck.
  • (cs)

    but how could he pass the tech interview if he doesn't know what abstract was? I'm thinking the tech interview consisted of "Point out which 3 of these devices is a computer" and "Of all the devices here, which would be best used as a pointing device"...

  • (cs)

    [image]

    Old Guy is just subtly flipping you all off for making fun of him.  >:-(    Bastards.

  • (cs) in reply to lomaxx
    lomaxx:
    but how could he pass the tech interview if he doesn't know what abstract was? I'm thinking the tech interview consisted of "Point out which 3 of these devices is a computer" and "Of all the devices here, which would be best used as a pointing device"...


    Well, sometimes the "tech interview" is rather smalltalk about projects, how well they worked and what we learned from them, which technology was used etc.; since we are all reasonable and responsible adults, we trust that someone who says he knows Java that this is true, don't we?
  • (cs) in reply to geezer coder
    Anonymous:
    Anonymous:
    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.


    Jesus, some of you are a bunch of conceited pricks.  Ignorant, too.  If I had a dollar for every time I have had to listen to tell me about how [C|C++|client-server|object|Internet|XML|WEb2.0|Ajax] was different than anything that has ever gone before, well, i'd have a few bucks.  If you were old enough to have been shaving for more than three years, you might realize that the more things change, the more they stay the same.  There are always the mouth breathers who shouldn't be trusted to tie their own shoes, and the folks who read manuals in the evenings for fun and will amaze you with the breadth of their understanding if you shut up long enough to listen. 

    I'd much rather hire someone with brains, good work habits, an understanding of systems thinking and a desire to learn than someone who passes the test question of the language dejour.  Particularly if the person has already learned and been effective in two or three platforms already.  Having been through project cycles is more important. I've both learned and taught new languages in six months many times over in my career, and seen it done by other smart people.  The issue isn't whether someone is a COBOL programmer, it's whether he/she is smart and a quick study.

    Incidently, I came back from retirement (got bored), learned Java, perl, C# and played around a bit with Ruby and Python.  Pulling down six figures, and have clients demanding that I be assigned to their projects because of my technical reputation.  A lot of that is because I don't have a know it all attitude, as I'm old enough to know that I don't, a posture I suspect most of you will eventually adopt yourselves once you learn that there is more to the world than your current little playpen.

    That rant ended, it's clear that the recruit described above was the result of an incompetent hiring process/manager.  One has to wonder about the quality of the team that let him in the door.  In my experience, good teams hire good people, and bad people are usually only hired by...
    GREAT post.
  • Mark (unregistered) in reply to geezer coder
    Anonymous:

    Jesus, some of you are a bunch of conceited pricks.  Ignorant, too.  If I had a dollar for every time I have had to listen to tell me about how [C|C++|client-server|object|Internet|XML|WEb2.0|Ajax] was different than anything that has ever gone before, well, i'd have a few bucks.  If you were old enough to have been shaving for more than three years, you might realize that the more things change, the more they stay the same.  There are always the mouth breathers who shouldn't be trusted to tie their own shoes, and the folks who read manuals in the evenings for fun and will amaze you with the breadth of their understanding if you shut up long enough to listen. 

    I'd much rather hire someone with brains, good work habits, an understanding of systems thinking and a desire to learn than someone who passes the test question of the language dejour.  Particularly if the person has already learned and been effective in two or three platforms already.  Having been through project cycles is more important. I've both learned and taught new languages in six months many times over in my career, and seen it done by other smart people.  The issue isn't whether someone is a COBOL programmer, it's whether he/she is smart and a quick study.

    Incidently, I came back from retirement (got bored), learned Java, perl, C# and played around a bit with Ruby and Python.  Pulling down six figures, and have clients demanding that I be assigned to their projects because of my technical reputation.  A lot of that is because I don't have a know it all attitude, as I'm old enough to know that I don't, a posture I suspect most of you will eventually adopt yourselves once you learn that there is more to the world than your current little playpen.

    That rant ended, it's clear that the recruit described above was the result of an incompetent hiring process/manager.  One has to wonder about the quality of the team that let him in the door.  In my experience, good teams hire good people, and bad people are usually only hired by...

    Paula will teach you good! Brillant!
  • (cs) in reply to FortyOne
    Anonymous:
    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


    Not all that surprising.  In the minds of those who are more concerned with covering their own backsides/feathering their own nests,  firing a guy you just hired is admitting that hiring him in the first place was a mistake.  Winners don't make mistakes, therefore you're no longer a winner - say goodbye to that nice annual bonus or stock options.

    Much safer for the individual manager to have him destroy the organisation from within and try to contain/mitigate the non-performer whilst encouraging him to leave or move departments.
  • (cs) in reply to Rodyland
    Rodyland:
    Anonymous:
    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
    Not all that surprising.  In the minds of those who are more concerned with covering their own backsides/feathering their own nests,  firing a guy you just hired is admitting that hiring him in the first place was a mistake.  Winners don't make mistakes, therefore you're no longer a winner - say goodbye to that nice annual bonus or stock options.

    This attitude is all-to prevalent.  Which is odd when you consider that most of the "greats" in history had some pretty spectacular failures.  And, of course, the type of manager that thinks that winners don't make mistakes (or at least acts that way) is the first to spout off that historys greats had numerous failures.

    There I go again, invoking that "logic" word...
  • Anonymous Coward (unregistered) in reply to GeekMessage

    You forgot:

    #define class struct

    That covers all of them :-)

  • (cs)
    Anonymous:

    You should add that this article earned the authors an IG Nobel in 2000...

    http://improbable.com/ig/

    PSYCHOLOGY
    David Dunning of Cornell University and Justin Kruger of the University of Illinois, for their modest report, "Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments." [Published in the Journal of Personality and Social Psychology, vol. 77, no. 6, December 1999, pp. 1121-34.]


    Love that paper.  Awesome read.

    Also worth noting (I've posted this before) - some people just don't have what it takes to be a programmer.

    <font color="#0000ff" face="Arial" size="2">http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

    It used to be that CS courses were designed to weed these people out before the end of first year (if not first semester).  However failure rates topping 50% don't look good to the beancounters above, and people quitting CS degrees 'costs' money, so over time CS courses have been progressively dumbed down to the point where people can enter the final year of a 3 year CS degree course and not actually KNOW how to program.  (They'll be awesome at bluff and cut-and-paste though, with group assignments taking them that final step into 'pass' territory).

    If you're unlucky you'll work with one of these people.  If you're REALLY unlucky you'll work for one.
    </font>
  • (cs) in reply to ammoQ
    ammoQ:

    According to this article, slightly-above average people are best in judging their skills correctly, while excellent people are just as bad in judging their skills correctly as relatively bad people.
    As a final result, we observe that mediocrity is the best precondition to assess one's skill correctly.

    Now really, this article is totally overrated. (Nearly) all people consider themself in the 55%-75% range, nearly independend of their acual level. It's just that bad people's actual score is further away from that range than good peoples. Slightly-above-average people hit the mark, but IMO just by pure luck.


    . <- Here's the point of the article, and here's you -> .

    Actually you saw the point of the article and stepped right over it (at least one of the points).  Let me quote you for you:

    ammoQ:

    bad people's actual score is further away


    There you have it.  Duds are worse at estimating their own performance.  Which, if I'm not mistaken, is one of the points and conclusions of the article.

    And while it also appears that those of above-average skill tend to under-estimate their own skill (but by nowhere near as much as the below-average over-estimate theirs), one could argue that this is because the more you know, the more you realise that you actually don't know everything.  So it's reasonable (IMO) to suppose that the above-average are considering their skills to be average amongst their peers, and are unable to grasp just how incompetent some people can be (this site is a testament to that).
  • max_wilson84 (unregistered)

    except a try/catch block is for catching runtime exceptions ... they don't fix the red squiggly

  • (cs) in reply to GeekMessage
    GeekMessage:
    Anonymous Coward wrote the following post at 08-24-2006 8:07 PM:
    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.

    <font face="Courier New" size="2">#define private public
    #define protected public</font>

    What do you mean there is a difference between private, protected, and public?

    [Caution:  Don't try the above "code" at work. ;-)]



    I actually used these once, along with:

    <font face="Courier New" size="2">#define class struct</font>



  • (cs) 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?
    <font size="5">T</font>hat's no grey-haired programmer, that's a grey-haired dentist with his trusty tooth extraction device.  Say Ahhh.

  • Dam Bugglin (unregistered) in reply to Anon
    Anonymous:
    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.


    Huh?  How's this a WTF?  That's valid VB.  Besides you don't know what he tried before this... he could have used a variable in place of the 1, and changed it for testing later.  VB will cast the 1 to a string so it's not invalid code...
  • Calvin Spealman (unregistered)

    <font color="#000000"><font face="Times New Roman">I can't imagine how you could waste 3+ weeks months of salary on this kind of person with so many early warnings.

    I had a moment of "Where is the WTF?" with the code, because in my language it would be perfectly valid to define the methods within a try/except block right inside the class block!
    </font></font>

  • (cs) in reply to Richard Nixon
    Richard Nixon:

    ...If it had been a woman in the photo, do you think it would be sexist?
    <font size="5">I</font>t would depend on whether or not she had a lot of cleavage showing whilst leaning over a Foosball table.
  • NZ'er (unregistered) in reply to Rich
    Anonymous:
    Jud:

    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.



    I happen to have a piece of paper, but I have to admit that it has coverd <5% of what I've done in the last 13 years since I got it.

    Usually it means I can sound smart when I talk about esoteric non-real-world aspects of a project, but it doesn't make me any better equiped to gather requirements, analyze, design, code or test.

    Captcha: stfu  ooh, that's just rude!


    Yep I have one of those bits of paper to, and have used very little of the actual knowlage I gained about a specific programme since being in the real world.  However our tutors stressed time and again that they were not teaching us about a specific language / programme / whatever they were teaching us the fundimentals of how to go out and learn a programme / language / ect.  This knowlage has been invaluable, once you know the basics, most computing can be worked out.

    hmmmm then again maybe I'm wrong:   Captcha:  error
  • Gorobei (unregistered) in reply to Radman

    Damn straight.  How did he pass the tech interviews?

    We keep them simple:  in depth discussions of linked lists, hashtables, or whatever.  It's a rare candidate that can nail these topics... the poseurs wash out by the second question, the good guys start sweating at around the fifth or so.  The guys we want to hire start saying "that's really interesting" at around question seven.



  • (cs) in reply to GoatCheez

    GoatCheez:
    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.

    I concur - you and I would get along just fine.

    However, I think part of the WTF is the hiring process (so called "tech interviews"). I've been pushing of late to get real programming questions into interviews. In fact, do this first to save wasted time on inadequate candidates. Why is that such an uncommon thing to do?

  • Swiss (unregistered) in reply to ammoQ

    This reminds me of an experience I had at university.  My partner in a project reformatted all my code, removing almost all white space making it very hard to read.

    <o:p> </o:p>Her reasoning was “Programs with less lines of code are better / faster”!!!

    <o:p> </o:p>Now this was not some introductory class, but an advance subject on compilers.  The project was in fact building a compiler, so you can imagine the ‘fun’ I had…..

    <o:p> </o:p>The moral of this story is alcohol and physical appearance should not be involved in the process of choosing a partner (for programming projects that is; for other partners these factor are much more relevant).

    <o:p> </o:p>Swiss

  • Sachin (unregistered)

    Hey guys be positive atleast he didn't wrap the abstract class in a try catch block

    <FONT color=#000080>  try
      {
          public abstract class HomePage extends BasePage
          {
           public abstract Integer getCount();
           public abstract void setCount(Integer int);
          } </FONT>
    <FONT color=#000080>  }
      catch (Exception e)
      {
        // catch (Exception e)
      }</FONT>
    

     

  • SpasticWeasel (unregistered) in reply to dave

    When you write code with a pair of channel lock pliers, then maybe the picture is of a "puzzled-looking grey-haired programmer". There is nothing about that picture that says programmer to me, no obvious evidence of carpal tunnel, no propeller beanie, no obvious cheeto dust, nothing.

  • (cs) in reply to dasgsdgsd
    Anonymous:
    But this isn't a problem with "old" programmers - you see it everywhere - all those damned ColdFusion clingers, those VB clingers, who can't even be bothered to learn something new.


    I can think of two common situations that lead to this.

    1) These people are just bad/lazy programmers. A 50 year old that fuddles around java and pines for COBOL probably took forever to learn COBOL and was probably never particularly good at it. If they were 25 now, they'd still be nearly as useless at Java.

    2) Second is the curse of the rut, usually exacerbated by Family (TM).  Most places aren't very interested in paying employess to tinker with and learn new languages, or even new paradigms. It's easy to get into a position where you are too busy to pick up a new language on the clock. If you decide to find a better job, all the sudden you find out your language is no longer the flavour of the week, and you find yourself being asked to check syntax or discuss the OO quirks of some new language. No worries, learning this kind of stuff is what the time between 5pm and 2am is for right? Enter Family, dun dun dun! Now 5pm to 2am is about spending time with your kids, and paying enough attention to your spouse to keep that ship running smoothly. Your ability to take risks, or pay cuts takes a giant nosedive and you start growing ulcers until before long your 45-60 and pining  java to a bunch of kids that program Quantum++ in 14 parallel dimensions until 4:00 AM every night.
  • (cs) in reply to Christophe
    Anonymous:

    twks:
    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.

    <sarcasm> What's an IDE? </sarcasm>


    <FONT face=Tahoma>My IDE is the noble NOTEPAD.EXE...

    See, no syntax errors! Wait, F5 doesn't seem to work... hmmm...



    </FONT>
  • (cs) in reply to WIldpeaks
    WIldpeaks:

    Reminds of a guy I have to babysit from time to time: in the early times
    we had a plugin (so an ActiveX) running in the browser showing some graphics.
    We asked him a standalone version in order to get rid of the browser
    dependency, which we assumed would be fairly easy as he proclaimed to be
    a "C++ expert" and that we told him that just embedding the activeX
    in a standalone executable would be fine as well.

    Some some weeks later, he returned a plugin that not only rendered in the browser,
    but was also opening a popup window rendering a second time. And got surprised
    that when closing browser window, the second window was closing as well.

    Somehow we didn't get surprised later on when he asked how to typecast a pointer :-)


    That's why I used to say I am an EXPERT <FONT color=#d3d3d3>in the basics</FONT><FONT color=#000000>...



    </FONT>
  • (cs) in reply to Dam Bugglin

    Anonymous:
    Anonymous:
    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.


    Huh?  How's this a WTF?  That's valid VB.  Besides you don't know what he tried before this... he could have used a variable in place of the 1, and changed it for testing later.  VB will cast the 1 to a string so it's not invalid code...

    It works as coded.  Certainly no wtf there.

  • (cs) in reply to max_wilson84
    Anonymous:
    except a try/catch block is for catching runtime exceptions ... they don't fix the red squiggly

    That's what Photoshop is for. Horses for courses.
  • (cs) in reply to Sachin
    Anonymous:

    Hey guys be positive atleast he didn't wrap the abstract class in a try catch block

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

     



    He should have just set up a pre-build action to wrap the call to the compiler in a try-catch block.
  • (cs) in reply to triso
    triso:
    Richard Nixon:

    ...If it had been a woman in the photo, do you think it would be sexist?
    <font size="5">I</font>t would depend on whether or not she had a lot of cleavage showing whilst leaning over a Foosball table.


    Boobist.
  • (cs) in reply to obediah
    obediah:
    Anonymous:
    But this isn't a problem with "old" programmers - you see it everywhere - all those damned ColdFusion clingers, those VB clingers, who can't even be bothered to learn something new.



    I can think of two common situations that lead to this.

    1) These people are just bad/lazy programmers. A 50 year old that fuddles around java and pines for COBOL probably took forever to learn COBOL and was probably never particularly good at it. If they were 25 now, they'd still be nearly as useless at Java.

    2) Second is the curse of the rut, usually exacerbated by Family (TM).  Most places aren't very interested in paying employess to tinker with and learn new languages, or even new paradigms. It's easy to get into a position where you are too busy to pick up a new language on the clock. If you decide to find a better job, all the sudden you find out your language is no longer the flavour of the week, and you find yourself being asked to check syntax or discuss the OO quirks of some new language. No worries, learning this kind of stuff is what the time between 5pm and 2am is for right? Enter Family, dun dun dun! Now 5pm to 2am is about spending time with your kids, and paying enough attention to your spouse to keep that ship running smoothly. Your ability to take risks, or pay cuts takes a giant nosedive and you start growing ulcers until before long your 45-60 and pining  java to a bunch of kids that program Quantum++ in 14 parallel dimensions until 4:00 AM every night.

    That's why  you should never have kids before you become a manager.  After that, you can afford to become incompetent.  The people under you will probably even expect it. 

  • A Nonny moose (unregistered) in reply to dasgsdgsd
    Anonymous:
    Anonymous:
    Anonymous:
    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.


    Jesus, some of you are a bunch of conceited pricks.  Ignorant, too.  If I had a dollar for every time I have had to listen to tell me about how [C|C++|client-server|object|Internet|XML|WEb2.0|Ajax] was different than anything that has ever gone before, well, i'd have a few bucks.  If you were old enough to have been shaving for more than three years, you might realize that the more things change, the more they stay the same.  There are always the mouth breathers who shouldn't be trusted to tie their own shoes, and the folks who read manuals in the evenings for fun and will amaze you with the breadth of their understanding if you shut up long enough to listen. 

    I'd much rather hire someone with brains, good work habits, an understanding of systems thinking and a desire to learn than someone who passes the test question of the language dejour.  Particularly if the person has already learned and been effective in two or three platforms already.  Having been through project cycles is more important. I've both learned and taught new languages in six months many times over in my career, and seen it done by other smart people.  The issue isn't whether someone is a COBOL programmer, it's whether he/she is smart and a quick study.

    Incidently, I came back from retirement (got bored), learned Java, perl, C# and played around a bit with Ruby and Python.  Pulling down six figures, and have clients demanding that I be assigned to their projects because of my technical reputation.  A lot of that is because I don't have a know it all attitude, as I'm old enough to know that I don't, a posture I suspect most of you will eventually adopt yourselves once you learn that there is more to the world than your current little playpen.

    That rant ended, it's clear that the recruit described above was the result of an incompetent hiring process/manager.  One has to wonder about the quality of the team that let him in the door.  In my experience, good teams hire good people, and bad people are usually only hired by...
    Well to be fair I've met quite a few "geezers" that still hang onto their COBOL skills like it's the last thing on Earth that'll save them.
     
    But this isn't a problem with "old" programmers - you see it everywhere - all those damned ColdFusion clingers, those VB clingers, who can't even be bothered to learn something new.

    There is enough COBOL out there still that will need worked on or updated, or even better, ported (platforms, at least, that is to say, instead of a big old mainframe, to some flavor of desktop COBOL).  I suspect that at some point, knowing COBOL will net you a job, once all the old-timey programmers are gone.

    Of course, the best idea is learning how to learn.  Not to brag, but I have an undying passion for learning, and programming languages generally tend to grok well.  I understood Lisp when it was shown to me, but it was harder because of the terrible syntax everyone tries to use when they write/teach it (and the whole functional paradigm was actually something of a system shock to someone from a strong procedural/OO background).

  • (cs) in reply to Rodyland

    Rodyland:
    Anonymous:

    You should add that this article earned the authors an IG Nobel in 2000...

    http://improbable.com/ig/

    PSYCHOLOGY
    David Dunning of Cornell University and Justin Kruger of the University of Illinois, for their modest report, "Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments." [Published in the Journal of Personality and Social Psychology, vol. 77, no. 6, December 1999, pp. 1121-34.]


    Love that paper.  Awesome read.

    Also worth noting (I've posted this before) - some people just don't have what it takes to be a programmer.

    <FONT face=Arial color=#0000ff size=2>http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

    It used to be that CS courses were designed to weed these people out before the end of first year (if not first semester).  However failure rates topping 50% don't look good to the beancounters above, and people quitting CS degrees 'costs' money, so over time CS courses have been progressively dumbed down to the point where people can enter the final year of a 3 year CS degree course and not actually KNOW how to program.  (They'll be awesome at bluff and cut-and-paste though, with group assignments taking them that final step into 'pass' territory).

    If you're unlucky you'll work with one of these people.  If you're REALLY unlucky you'll work for one.
    </FONT>

    I would venture a guess and say that you could say that about a lot of other fields, as well.  Or about colleges in general.  There is no money in flunking people out of your school.  As always, the bottom line is king.

  • (cs) in reply to Rodyland
    Rodyland:
    ammoQ:

    Now really, this article is totally overrated. (Nearly) all people consider themself in the 55%-75% range, nearly independend of their acual level. It's just that bad people's actual score is further away from that range than good peoples. Slightly-above-average people hit the mark, but IMO just by pure luck.


    . <- Here's the point of the article, and here's you -> .

    Actually you saw the point of the article and stepped right over it (at least one of the points).  Let me quote you for you:



    Rodyland saw the data in the paper, and came up with a different explanation than the authors. The author put forth a metacognitive deficit as an explanation, and Rodyland put forth a simpler explanation - that people naturally tend to evaulate themselves in the 55-75th percentile of something. Rodyland's explanation also explains the under-perception of experts, where the author has to rely on a second effect for that trend.

    All the paper has proven is range of perceived ability is much narrower than the range of actual ability, generally in the range of 55-75th percentile and the two are generally correlated. The paper doesn't prove a causal link to metacognitive deficit.

    Depending on the raw results, the decision to graph percentiles may cause the graphs to be misleading in the extent of over-estimation by the lower percentiles. If you ask people 1000 easy math problems the middle 80% may all fall within 98-99% correct. So someone that got 980 right is in the 10% percentile - too incompetent to realize how bad they are at math.  While someone that got 10 more correct, is in the 80% percentile and a genius unaware of their own maginfigance.

    Another interesting aspect of the article was that in several studies (Study 2 for example) that people did well estimating their raw ability (i.e. how many questions they got right). What they couldn't determine was how well everyone else did. I don't see how this supports the author's stance -they knew their own competence, they just didn't know everyone elses.
  • geezer coder (unregistered) in reply to Franz Kafka
    Anonymous:
    Anonymous:

    geezer coder:


    Jesus, some of you are a bunch of conceited pricks. 

     

    geezer coder:


    Incidently, I came back from retirement (got bored), learned Java, perl, C# and played around a bit with Ruby and Python.  Pulling down six figures, and have clients demanding that I be assigned to their projects because of my technical reputation. 

    Hey... Pot!  Nice to meet you after all this time!  I'm Kettle!



    It's not conceit if you can back up your swagger, and having people demand you by name just feels soo nice.

    /not an old fart turned hot shit developer
    //give it time  


    As Satchel Paige once said, "It ain't braggin', if you kin do it."
  • (cs) 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.

    thats some hardcore screening... The last 2 jobs i've applied for basically sat down, had an interview with the manager, they liked what they saw then called me that afternoon to let me know I had the job. The interviews went for an hour or so, and they did involve tech questions and stuff... but nothing that intense!!

  • dasgsdgsd (unregistered) in reply to obediah
    obediah:
    Anonymous:
    But this isn't a problem with "old" programmers - you see it everywhere - all those damned ColdFusion clingers, those VB clingers, who can't even be bothered to learn something new.


    I can think of two common situations that lead to this.

    1) These people are just bad/lazy programmers. A 50 year old that fuddles around java and pines for COBOL probably took forever to learn COBOL and was probably never particularly good at it. If they were 25 now, they'd still be nearly as useless at Java.

    2) Second is the curse of the rut, usually exacerbated by Family (TM).  Most places aren't very interested in paying employess to tinker with and learn new languages, or even new paradigms. It's easy to get into a position where you are too busy to pick up a new language on the clock. If you decide to find a better job, all the sudden you find out your language is no longer the flavour of the week, and you find yourself being asked to check syntax or discuss the OO quirks of some new language. No worries, learning this kind of stuff is what the time between 5pm and 2am is for right? Enter Family, dun dun dun! Now 5pm to 2am is about spending time with your kids, and paying enough attention to your spouse to keep that ship running smoothly. Your ability to take risks, or pay cuts takes a giant nosedive and you start growing ulcers until before long your 45-60 and pining  java to a bunch of kids that program Quantum++ in 14 parallel dimensions until 4:00 AM every night.
    I've never met any programmer that ever used family as an excuse to allow themselves to be an idiot.
     
    Some "programmers" just don't like to learn new things.  And they like to wedge any problem they face into their tiny little paradigm.  It's really sad.
  • dasgsdgsd (unregistered) in reply to A Nonny moose
    Anonymous:
    Anonymous:
    Anonymous:
    Anonymous:
    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.


    Jesus, some of you are a bunch of conceited pricks.  Ignorant, too.  If I had a dollar for every time I have had to listen to tell me about how [C|C++|client-server|object|Internet|XML|WEb2.0|Ajax] was different than anything that has ever gone before, well, i'd have a few bucks.  If you were old enough to have been shaving for more than three years, you might realize that the more things change, the more they stay the same.  There are always the mouth breathers who shouldn't be trusted to tie their own shoes, and the folks who read manuals in the evenings for fun and will amaze you with the breadth of their understanding if you shut up long enough to listen. 

    I'd much rather hire someone with brains, good work habits, an understanding of systems thinking and a desire to learn than someone who passes the test question of the language dejour.  Particularly if the person has already learned and been effective in two or three platforms already.  Having been through project cycles is more important. I've both learned and taught new languages in six months many times over in my career, and seen it done by other smart people.  The issue isn't whether someone is a COBOL programmer, it's whether he/she is smart and a quick study.

    Incidently, I came back from retirement (got bored), learned Java, perl, C# and played around a bit with Ruby and Python.  Pulling down six figures, and have clients demanding that I be assigned to their projects because of my technical reputation.  A lot of that is because I don't have a know it all attitude, as I'm old enough to know that I don't, a posture I suspect most of you will eventually adopt yourselves once you learn that there is more to the world than your current little playpen.

    That rant ended, it's clear that the recruit described above was the result of an incompetent hiring process/manager.  One has to wonder about the quality of the team that let him in the door.  In my experience, good teams hire good people, and bad people are usually only hired by...
    Well to be fair I've met quite a few "geezers" that still hang onto their COBOL skills like it's the last thing on Earth that'll save them.
     
    But this isn't a problem with "old" programmers - you see it everywhere - all those damned ColdFusion clingers, those VB clingers, who can't even be bothered to learn something new.

    There is enough COBOL out there still that will need worked on or updated, or even better, ported (platforms, at least, that is to say, instead of a big old mainframe, to some flavor of desktop COBOL).  I suspect that at some point, knowing COBOL will net you a job, once all the old-timey programmers are gone.

    Of course, the best idea is learning how to learn.  Not to brag, but I have an undying passion for learning, and programming languages generally tend to grok well.  I understood Lisp when it was shown to me, but it was harder because of the terrible syntax everyone tries to use when they write/teach it (and the whole functional paradigm was actually something of a system shock to someone from a strong procedural/OO background).

    Well sure there's COBOL work out there.  The point being there's too much supply and too little demand.
     
    And yes, learning is good.  Very good.
  • (cs) in reply to obediah
    obediah:

    2) Second is the curse of the rut, usually exacerbated by Family (TM).  Most places aren't very interested in paying employess to tinker with and learn new languages, or even new paradigms. It's easy to get into a position where you are too busy to pick up a new language on the clock. If you decide to find a better job, all the sudden you find out your language is no longer the flavour of the week, and you find yourself being asked to check syntax or discuss the OO quirks of some new language. No worries, learning this kind of stuff is what the time between 5pm and 2am is for right? Enter Family, dun dun dun! Now 5pm to 2am is about spending time with your kids, and paying enough attention to your spouse to keep that ship running smoothly. Your ability to take risks, or pay cuts takes a giant nosedive and you start growing ulcers until before long your 45-60 and pining  java to a bunch of kids that program Quantum++ in 14 parallel dimensions until 4:00 AM every night.


    Simply not true. At least in my experience (I have two kids, 4 and 7 years old). I always find the time to learn something if I want to. Whether or not someone is willing to take a risk is more a matter of personality. People who are unwilling to take a risk probably do not have kids anyway.
  • (cs) in reply to obediah
    obediah:
    Rodyland:
    ammoQ:

    Now really, this article is totally overrated. (Nearly) all people consider themself in the 55%-75% range, nearly independend of their acual level. It's just that bad people's actual score is further away from that range than good peoples. Slightly-above-average people hit the mark, but IMO just by pure luck.


    . <- Here's the point of the article, and here's you -> .

    Actually you saw the point of the article and stepped right over it (at least one of the points).  Let me quote you for you:



    Rodyland saw the data in the paper, and came up with a different explanation than the authors. The author put forth a metacognitive deficit as an explanation, and Rodyland put forth a simpler explanation - that people naturally tend to evaulate themselves in the 55-75th percentile of something. Rodyland's explanation also explains the under-perception of experts, where the author has to rely on a second effect for that trend.

    All the paper has proven is range of perceived ability is much narrower than the range of actual ability, generally in the range of 55-75th percentile and the two are generally correlated. The paper doesn't prove a causal link to metacognitive deficit.

    Depending on the raw results, the decision to graph percentiles may cause the graphs to be misleading in the extent of over-estimation by the lower percentiles. If you ask people 1000 easy math problems the middle 80% may all fall within 98-99% correct. So someone that got 980 right is in the 10% percentile - too incompetent to realize how bad they are at math.  While someone that got 10 more correct, is in the 80% percentile and a genius unaware of their own maginfigance.

    Another interesting aspect of the article was that in several studies (Study 2 for example) that people did well estimating their raw ability (i.e. how many questions they got right). What they couldn't determine was how well everyone else did. I don't see how this supports the author's stance -they knew their own competence, they just didn't know everyone elses.


    I'm happy that you agree with me, but you have mixed up the names. Rodyland defended the article and criticised by posting.
  • Gamer (unregistered) in reply to ammoQ

    ammoQ:
    People who are unwilling to take a risk probably do not have kids anyway.

    Actually, having kids just requires the applicants to pass a usually quite short practical exam.

     

  • (cs) in reply to ammoQ
    ammoQ:
    obediah:

    2) Second is the curse of the rut, usually exacerbated by Family (TM).  Most places aren't very interested in paying employess to tinker with and learn new languages, or even new paradigms. It's easy to get into a position where you are too busy to pick up a new language on the clock. If you decide to find a better job, all the sudden you find out your language is no longer the flavour of the week, and you find yourself being asked to check syntax or discuss the OO quirks of some new language. No worries, learning this kind of stuff is what the time between 5pm and 2am is for right? Enter Family, dun dun dun! Now 5pm to 2am is about spending time with your kids, and paying enough attention to your spouse to keep that ship running smoothly. Your ability to take risks, or pay cuts takes a giant nosedive and you start growing ulcers until before long your 45-60 and pining  java to a bunch of kids that program Quantum++ in 14 parallel dimensions until 4:00 AM every night.


    Simply not true. At least in my experience (I have two kids, 4 and 7 years old). I always find the time to learn something if I want to.


    I envy your lack of hunger for knowledge. I couldn't learn everything I want to even with a bottomless trust fund and no personal relationships. Right now, I spend less time with hobbies than I plan on spending with my children, so spending less time developing professionally/academicly is unavoidable.

    Whether or not someone is willing to take a risk is more a matter of personality. People who are unwilling to take a risk probably do not have kids anyway.


    Part of being a good parent is providing for the well being and future of your children.  As someone without children, I could take the risk of giving my two weeks notice, knowing I'd have a few months to find a new job before I felt a crunch.  The likelihood of running out of money before I find a job is low, and the consequences are mainly financial. If you add a child to the equation, the risk skyrockets. The chances of a child needing health care while I'm without insurance are much higher, also the consequences of losing my house etc, are much worse when I have a child's welfare to worry about.
  • AndrewVos (unregistered) in reply to Erick

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

    HA! That made me laugh :) Thanks

Leave a comment on “The Abstract Candidate”

Log In or post as a guest

Replying to comment #:

« Return to Article