Slashdot Mirror


How to Recognize a Good Programmer

KDan writes to share an article he has written about what some of the key factors in recognizing a good programmer. "It's not as easy as it sounds. CV experience is only of limited use here, because great programmers don't always have the 'official' experience to demonstrate that they're great. In fact, a lot of that CV experience can be misleading. Yet there are a number of subtle cues that you can get, even from the CV, to figure out whether someone's a great programmer."

529 comments

  1. Hope this makes it. by Anonymous Coward · · Score: 3, Funny

    #include <stdio.h>
    int main(void)
    {
    /* duh, have to get the vars before... */
    if (firstName == "Theo" && LastName == "de Raadt")
    {
    printf("Excellent programmer\n");
    }
    else
    {
    printf("Hmmm... better look further.\n");
    }
    printf ("f1r57 pr0st!\n");
    return 0;
    }
    1. Re:Hope this makes it. by Reverend528 · · Score: 5, Funny

      Sorry, it doesn't compile. I'm going to have to mod you down for that.

    2. Re:Hope this makes it. by Dwedit · · Score: 3, Insightful

      Yay! Comparing a const char*const to an arbirary pointer! That will work great in C!

    3. Re:Hope this makes it. by BlueParrot · · Score: 1

      a) That check will fail horribly unless you're using C++ and overloading the "==" operator.
      b) If you are using C++ then why are you using printf rather than cout?
      c) printf can fail, you're not catching that.

    4. Re:Hope this makes it. by ShadyG · · Score: 1

      Do you really mean to compare char pointers to test for string equivalence?

    5. Re:Hope this makes it. by Anonymous Coward · · Score: 5, Funny

      By reverse engineering this article, I've found out "How to be recognized as a good programmer."

    6. Re:Hope this makes it. by BeanThere · · Score: 1

      They aren't declared, how do you they're char pointers? Looking at the context, I'd guess std::string was intended.

    7. Re:Hope this makes it. by Glonoinha · · Score: 4, Funny

      Real programmers don't write catch blocks.

      In the words of my master,
      Do or do not.
      There is no try.

      --
      Glonoinha the MebiByte Slayer
    8. Re:Hope this makes it. by Sigma+7 · · Score: 3, Insightful

      c) printf can fail, you're not catching that. And what do you expect to do with a failure? printf() something to the console?

      I remember using "ON ERROR RESUME NEXT" in some of the later BASIC variants because the default error handling does a full stop on an application on any form of error, whether it's unrecoverable or safely ignorable. At a certain point, you don't care about failure - just fire and forget.
    9. Re:Hope this makes it. by smurgy · · Score: 1

      So long as you go open source I'm good with that.

    10. Re:Hope this makes it. by markov_chain · · Score: 1

      Are you being sarcastic? Of course it will work!

      *rimshot*

      --
      Tsunami -- You can't bring a good wave down!
    11. Re:Hope this makes it. by Z00L00K · · Score: 1
      That depends on the previous assignment and the compiler's ability to avoid duplicate constant strings.

      Assuming it really is C - it may be a different language where the condition is valid!

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    12. Re:Hope this makes it. by Anonymous Coward · · Score: 0

      There is Try (Catch) & it's a good measure for err handling vs. abends. "Get with the program", man & your "master" too...

    13. Re:Hope this makes it. by renoX · · Score: 3, Insightful

      >>c) printf can fail, you're not catching that.
      >And what do you expect to do with a failure? printf() something to the console?

      Just to be annoying: you can exit with a value different from 0, indicating that there was an error.

      But in the real world, this is rarely done, should it be?
      I don't know..

  2. Sweet! by happyemoticon · · Score: 5, Insightful

    Now I know exactly how to manipulate my resume to look like a good programmer.

    1. Re:Sweet! by MikeDirnt69 · · Score: 2, Funny

      Hope your next boss doesn't know it, so he can't manipulate your paycheck!

      --
      Am I eval()? - http://www.monst3r.com.br
    2. Re:Sweet! by drseuk · · Score: 1

      Saying I'd invented BASIC and ported it to the MITS got me sorted for life.

    3. Re:Sweet! by Anonymous Coward · · Score: 1, Insightful

      As someone that has programmed for nearly 15 years (hobby and professionally) with a background in psychological research I find this "essay" to not be very well thought out. This is all based on anecdotal evidence, stereotypes, and the conclusions were reached without a solid methodology.

      Can I find people that fit these bullet items that are good programmers? Sure, but I can also point to some really bad programmers that fit this model in nearly every way also.

      Human behavior is not this cut and dry. Of course this is to be expected when you see so many MBAs jumping from fad to fad. After all, while he may not have an MBA, the author is basically a suit now :-)

    4. Re:Sweet! by Unoti · · Score: 1

      I thought his ideas were very good. I have a suspicion that AC here doesn't fit enough of the profile of a very good programmer, according to that article. The article is of course overgeneralizing, but the article can't help it. The topic is to give business guys an idea of how to spot good programmers, so the pointers given can't be perfect. They are pretty good though, I think. Of course, if I didn't fit the bill in a bunch of the categories I'd be saying this article is crap.

    5. Re:Sweet! by canuck57 · · Score: 1

      Now I know exactly how to manipulate my resume to look like a good programmer.

      Cooked CVs are easy. In fact, I use this in the interviewing process. Overstatement of expertise is almost always a bad indicator of ego issues. And pretty easy to weed out. In fact, you would be unlikely to make it past the first phone call interview.

      But if you made it to the next interview, there would be subject mater experts listening to your technical talk and "tech communication skills". You will actually even be given some specific problems to solve based on your resume. They will not be tough, nor trivial.

      I wash out over 90% this way. BTW I liked Daniel's article. Far too many people are in the programming business and the quality is low, part of the success of any programming shop is to obtain the talent, lose the low end "in it for the money" types and retain a good environment.

    6. Re:Sweet! by palegray.net · · Score: 1

      Real programmers publish their resumes in LaTeX format. Unfortunately, only other real programmers can read them.

    7. Re:Sweet! by Gideon+Fubar · · Score: 1

      I disagree. I've got ALL of those things and i'm still not a very good programmer ;)

      --
      http://www.xkcd.com/354/
    8. Re:Sweet! by SL+Baur · · Score: 1

      Nope. You would have missed #4 (why the lack of confidence?). Either you're young and are inexperienced at these sorts of things, or you're correct, but I don't think you can be both.

      I've interviewed young programmers and had to work with terrible programmers with degrees and certifications. I think the essay is pretty much spot on. YMMV, but mine doesn't.

    9. Re:Sweet! by Gideon+Fubar · · Score: 1

      I guess it just depends how high you set the bar. :)

      --
      http://www.xkcd.com/354/
    10. Re:Sweet! by jamie(really) · · Score: 1

      I gotta say that just the fact that you think you're not a very good programmer gets you bonus points. Its the ones who think they are great that tend to suck (me included!)

    11. Re:Sweet! by Gideon+Fubar · · Score: 1

      Thanks :) while confidence is important i think it's also important to know your limit.. even if that limit is on the move. maybe one day i will consider myself a good programmer.. but not yet. :)

      --
      http://www.xkcd.com/354/
  3. it's easier than you think: by yagu · · Score: 5, Funny

    It's easier than you think:

    1. Find a good programmer and learn his (or her) name.
    2. Get to know him (or her).
    3. Take him (or her) out to coffee a few times.
    4. Engage in as many social activities with this good programmer as possible.

    After sufficient interactions like these with a good programmer you really should be able to recognize him (or her).

    (Appropriate apologies to Steve Martin for shameless borrowing of his "How to get a million dollars, and not pay taxes" routine.

    1. Re:it's easier than you think: by TopShelf · · Score: 1

      Or easier yet... name tags.

      --
      Stop by my site where I write about ERP systems & more
    2. Re:it's easier than you think: by Anonymous Coward · · Score: 3, Funny

      PROTIP: Unpronounceable last names and comically bad hair are also good signs - but not positive proof.

      So you'd advise outsourcing to India or Eastern Europe?
    3. Re:it's easier than you think: by Roger+W+Moore · · Score: 2, Insightful

      ...and if you can achieve point 4 then they aren't really a good programmer.

    4. Re:it's easier than you think: by bckrispi · · Score: 5, Insightful

      But you forgot the most important details about the "recognizing" part. If they seem puzzled by the idea of interacting with people - especially people who don't program or otherwise spend most of their day with computers - then you're on right track. If they interact easily and are comfortable conversing on a wide variety of topics look elsewhere.
      I have to call 'bullshit' on that one. I've found the exact opposite to be true. I've worked with a couple of the antisocial "all I do is code" types before, and given the opportunity, I'd *never* work with them (or hire them)again. They are generally prima donnas who insist on reinventing the wheel and breaking best-practices because they keep rationalizing "*my* way is better" - even if "my" way is in direct contradiction with the business requirements.

      The best programmers I've worked with are the ones with a diversity of interests, are very capable of interacting with others. Our field demands that we can translate back and forth between business-speak and code. If all I wanted was a code monkey, I'd pick one up from Bangalore.

      --
      Xenon, where's my money? -Borno
    5. Re:it's easier than you think: by cheater512 · · Score: 0, Troll

      It all depends on the type of work.

      I'm a "all I do is code" type and I've written some truely amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites.
      I have yet to find someone who can understand what it does and how it does it. Its voodoo to everyone.

      Its a 20 line snippet which never needs to be touched. Thats why its perfectly acceptable.
      If someone else needed to change it then they would more than likely throw it away and do it the conventional (slow and bloated) way.

      If your working in a team which doesnt understand each other's styles fluently then you'll be wanting someone with many interests.
      However get a couple of really great guys who understand each other then you will get superior code in a fraction of the time.

    6. Re:it's easier than you think: by radish · · Score: 5, Insightful

      And this voodoo code made it past review how? Anyone can understand it if you explain it well enough. If you can't explain it, you don't understand it either. If you simply can't be bothered to explain it, then I don't want you working for me.

      However get a couple of really great guys who understand each other then you will get superior code in a fraction of the time.
      Code that's worthless because it will have to be thrown away when the requirements change and no-one knows how to patch it.

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    7. Re:it's easier than you think: by pembo13 · · Score: 1

      Thanks for that post dude, the poster you replied to had me worrying since I didn't fit his anti-social criteria of a good programmer. Not that I like people, but I can converse on a wide range of topics.

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    8. Re:it's easier than you think: by Arkus · · Score: 1

      You are dead on with your view on this topic. It irks me to no end when I end up having to explain, "that's a really interesting piece of software, unfortunately that's not what the specs/statement of work you have sitting right next to you says we are delivering to the customer."

      --
      -- Just my $0.02 worth...
    9. Re:it's easier than you think: by computational+super · · Score: 4, Funny

      What really sets you apart from others, though, is your humility.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    10. Re:it's easier than you think: by Anonymous Coward · · Score: 1, Interesting

      Funny... from the point of view Central/Eastern European country citizen... your last names are often unpronounceable. Think about as dollar weakens.

    11. Re:it's easier than you think: by allauthors · · Score: 1
      Ah, but what if their way is better and you're just too much of a prima donna to see it?

      Seriously though, I agree. Unless you're really wanting to hire a computer scientist for some type of semi-pure research project (in which case you'll have much better fitness indicators than antisocial behavior), you're best off avoiding the nerd and finding a good geek.

    12. Re:it's easier than you think: by DreamCoder · · Score: 5, Interesting
      I've written some truly amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites. I have yet to find someone who can understand what it does and how it does it. Its voodoo to everyone. Its a 20 line snippet which never needs to be touched.

      LOL - I double-dog dare you to post these magical 20 lines here. If you do, I guarantee you will find that:

      (A) Most of us will understand it.
      (B) Many of us could make it better.
      (C) It's definitely not voodoo.

    13. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      If it's spyware, he probably doesn't WANT anyone else to be able to understand it.

    14. Re:it's easier than you think: by jimbojw · · Score: 1

      The best programmers I've worked with are the ones with a diversity of interests, are very capable of interacting with others.
      Your assertion is backed up by TFA:

      Don't ever hire a dumb person thinking they're a good developer. They're not. If you can't have a great conversation with them in a relaxed social context, they're very likely not a good programmer. On the other hand, anyone who's clearly very smart at the very least has a strong potential to be a good or great programmer.
    15. Re:it's easier than you think: by abigor · · Score: 4, Informative

      You sound like you're in high school, kid. How come your site "nickstallman.net" redirects to a site dedicated to cheating at some game called Runescape? Your code might be "truely" amazing to your fellow 15 year old gamers, but let's get real here.

    16. Re:it's easier than you think: by cheater512 · · Score: 0, Redundant

      Heh. No I'm not a high school kid and that stuff is really ancient.
      Its redirecting for the moment because of motherboard issues with my home server.
      Free ad money. Couldnt resist putting that Runescape crap up. :)

    17. Re:it's easier than you think: by Hamilton+Lovecraft · · Score: 4, Insightful
      I'm a "all I do is code" type and I've written some truely amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites. I have yet to find someone who can understand what it does and how it does it. Its voodoo to everyone.

      You're fired.

      If you aren't writing clear and understandable code, I don't want you on my project.

      --
      step 3: god dammit, it doesn't work
    18. Re:it's easier than you think: by Anonymous Coward · · Score: 1, Funny

      I'm a "all I do is code" type and I've written some truely amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites.
      I have yet to find someone who can understand what it does and how it does it. Its voodoo to everyone.
      I also have x-ray vision, can fly, can leap tall buildings in a single bound, speak 17 languages with different dialects of each, and can kill you 30 different ways with my pinky.

      I'm a level 12 paladin with +4 hitting power.
      I also have the magic spells of healing and fireball.

      And I have the force.
    19. Re:it's easier than you think: by Anonymous Coward · · Score: 5, Insightful

      Anyone can understand it if you explain it well enough. If you can't explain it, you don't understand it either. How can I explain it to you in terms you understand, when I myself can't understand it using only terms you understand?
    20. Re:it's easier than you think: by cheater512 · · Score: 1

      I did the inital work for freelance so no review. :)

      Hundreds of happy users though.
      These people just want it to work with minimal fuss.
      They dont want to know how it works and the code is very specific so requirements cant really change.

      Yes I could probably explain it to other programmers but the thinking it uses to get its speed is not what you'd expect.

    21. Re:it's easier than you think: by COMON$ · · Score: 1

      best quote ever.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    22. Re:it's easier than you think: by drseuk · · Score: 1

      The best programmers I've worked with are the ones with a diversity of interests, are very capable of interacting with others. Seen on beggar's board in subway nr. Redmond: "Can also read porn for lunch".
    23. Re:it's easier than you think: by COMON$ · · Score: 1
      wow! a whole couple hundred happy users....you are surely ready for the big time.

      It is my experience that the employer's happiness doesn't define the good coder, the longevity, and readability of their work does. Oh and attitude. Yes I am an employer.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    24. Re:it's easier than you think: by COMON$ · · Score: 1
      LOL,

      (D)Someone will search for the and code exploit it just to stamp out your hubris.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    25. Re:it's easier than you think: by iwein · · Score: 3, Insightful

      I'd have to bullshit that one too. You're right that being an asshole doesn't make you a great programmer, but usually the best programmers tend to be a bit shy in my experience.

      What truly makes a great team is if you can get a few naturally shy, great programmers to find out that they actually share interests with some and can accomplish great things then. And you're right, intelligent, like minded people working on a common goal are very capable of interacting with each other. Throw in the beautiful office assistant though and you'll see what we're truly made of.

      --
      Show a man some news, distract him for an hour. Show a man some mod points, distract him for the rest of his life.
    26. Re:it's easier than you think: by baboo_jackal · · Score: 5, Insightful
      How to prevent hiring bad coders when interviewing potential new hires:

      He/She says:

      I've written some truely amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites. I have yet to find someone who can understand what it does and how it does it So you ask:
      Unfortunately, the code you write *must* be understandable by other coders otherwise you're worthless to a development team. Assuming you're really so "good" that you can write inexplicable code that's also so awesome that it's used in the real world with no problems, then why are you applying for a job?


      He/She says:

      [I wrote] a 20 line snippet which never needs to be touched. Thats why its perfectly acceptable. So you ask:
      Can I see this 20 line snippet and your proof of its correctness?


      He/She says:

      If your working in a team which doesnt understand each other's styles fluently then you'll be wanting someone with many interests. So you ask:
      Why don't you know the difference between "You're," and "Your?"


      He/She says:

      However get a couple of really great guys who understand each other then you will get superior code in a fraction of the time. So you ask:
      So... Given that you "have yet to find someone who can understand" your "truely amazing code," how would you propose we find these other "really great guys who understand each other," (but, apparently, not necessarily each other's code) in order to obtain "superior code in a fraction of the time"?


      Ow. Your awesomeness hurts my brain. I submit.
    27. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      I like programmers who know how to spell.

      Just some corrections to your post:
      Truely - Truly
      "If your working" - "If you're working"

    28. Re:it's easier than you think: by bckrispi · · Score: 1

      I have yet to find someone who can understand what it does and how it does it. Its voodoo to everyone.
      If you told me this in an interview, I'd have security escort you out of the building. I'd probably slip them a twenty to hear about how you "tripped" on the stairs on your way out, too.
      --
      Xenon, where's my money? -Borno
    29. Re:it's easier than you think: by ricklow · · Score: 1

      And if you think you're humble, that's the first sign that you're not.

      --
      "Oh God help us. We're in the hands of engineers."
    30. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      Anyone can understand it if you explain it well enough.
      Please demonstrate this. I will provide a classroom of four-year-olds with learning difficulties; you can explain the FFT algorithm to them. Let me know when they all understand it.
    31. Re:it's easier than you think: by inq97 · · Score: 2, Insightful

      Our field demands that we can translate back and forth between business-speak and code. If all I wanted was a code monkey, I'd pick one up from Bangalore. Is that remark business-speak or code?
    32. Re:it's easier than you think: by Zombie · · Score: 1

      What really sets you apart from others, though, is your humility. Humility is the only virtue of he who has no other virtues to extol.
    33. Re:it's easier than you think: by John+Courtland · · Score: 1

      Show us, please. I want to see this 20-line algorithmic masterpiece.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    34. Re:it's easier than you think: by HiredMan · · Score: 1

      Not at all, I have both! Hire me!

      =tkk

    35. Re:it's easier than you think: by Anonymous Coward · · Score: 1, Funny

      I agree, "as dollar weakens" is a pretty comical last name. Those crazy North Americans!

    36. Re:it's easier than you think: by Chysn · · Score: 4, Funny

      > I double-dog dare you to post these magical 20 lines here

              I'm gonna slightly break protocol here and go right to the dreaded triple-dog dare.

      --
      --I'm so big, my sig has its own sig.
      -- See?
    37. Re:it's easier than you think: by pikine · · Score: 1

      The only difference with 20-lines gibberish and 20-lines elegant code is the fact that you can prove that the elegant code does what it's supposed to do, i.e. show the reasoning of it. If you can show the reasoning, might as well write it as comments to benefit people who have to "touch" your code later. Chances are there will be the need to touch your code at some point. Design and specs are always changing.

      You don't need to start working at a real job to realize that code isn't like a piece of art, that the artist is the only person who has the artistic sense and privilege to alter his/her own work. GPL'd software is built on the principle that anybody will touch your code at will and let the world know how they did it. That's what made GPL'd software so great.

      --
      I once had a signature.
    38. Re:it's easier than you think: by naoursla · · Score: 1

      Once I thought I was better than everyone else.

      Then I realized I wasn't and became much more humble. In fact, I would have said that I was the most humble person on Earth.

      But that wasn't very humble of me so I became a bit less humble. I adjusted my humility to just the right amount that makes me better than everyone else without actually losing the humility that makes me so special.

    39. Re:it's easier than you think: by Anonymous Coward · · Score: 1, Insightful

      I'm a "all I do is code" type and I've written some truely amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites.
      I have yet to find someone who can understand what it does and how it does it. Its voodoo to everyone.


      True brilliance is when everyone else looks at your code and goes, "Damn, why didn't I think of that!" Because it's clear, concise, and after-the-fact obvious.

      If you can't do it clearly so everyone can understand what you're doing, you're not as smart as you think. And that truly wouldn't surprise me.

    40. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      Nice troll there - from the way you write I bet you are from Bangalore.

    41. Re:it's easier than you think: by Silver+Gryphon · · Score: 1

      ... never needs to be touched... ... voodoo to everyone ...

      Advice: Don't ever put these phrases on a resume.

      An employer wants longevity and maintainability in addition to everything else.

      Here's a phrase to remember:
      If you can't be replaced, you can't be promoted.

      I see every day people who have a lock on a particular project; if they get hit by a bus, the project suffers greatly or even dies. If your code is voodoo to a 3-year "veteran" that replaces you after your funeral, they'll reverse engineer what they can and throw it out, to start over. That costs time and money, and the employer translates that to risk. Funeral too extreme an example? OK, consider this: my current employer has had a dozen highly qualified programmers not document a darn thing, and leave. These highly qualified guys have gone on to bigger and better things, but they have a reputation for writing bad code because they didn't document. That reputation follows them everywhere they go.

      While a team that understands each other's styles fluently is a good thing, even better is for everyone to have a common base of documenting everything from intent to risk and test results. Even a simple, "Function A needs to accomplish B and C. I tried X and it didn't work. Trying Y and Z next week." is better than nothing.

      For the record, all I do is code. I've suffered the lock-in effect I described. For years I spent my whole day explaining what I'd written in those 5 years or tweaking it slightly for someone else's preferences. After being held back from the new toys, I learned to document and train. It makes a huge difference.

    42. Re:it's easier than you think: by fusion9290991 · · Score: 1

      Sounds exactly like a guy I work with. He's a prima donna too. Persistently reinvents the wheel (he's one of those "my wheel is rounder than yours" types) and implements these convoluted solutions to problems that he can't really explain it, or find time to explain it. My philosophy is that if you can't explain it to me, in layman's terms in under 3 minutes (you're allowed a whiteboard), then you can't explain it to a computer. Unfortunately the directors don't see it that way (he's an arse-licker of note) so he gets to implement these horrific solutions which are so much more complicated than they need to be (he prefers to code "impressive looking" over "functional") and which will be completely impossible to maintain. One thing he has taught us all though tho, is how to be a complete self-aggrandizing tosser. He's so toxic that the coders around him are starting to resign, he's impossible to work with.

      I take comfort from the fact that I did warn them that this was the kind of guy that he was when he first started, and they didn't listen. The company has turned from being a happy "family" to one where everyone is covering their asses, stealing credit and stabbing each other in the back, just to maintain their positions. I'm leaving too.

      --
      remember to loot and pillage before you burn!
    43. Re:it's easier than you think: by cheater512 · · Score: 1

      I would post it but I'm under a NDA.

      I wouldnt be surprised if people here understood it.
      Slashdot isnt a good representation of programmers however. :P
      Its not complicated. Its just not how you'd expect it to be done.

    44. Re:it's easier than you think: by cheater512 · · Score: 1

      My code is usually very understandable although I dont comment unless its requested.

      There is just occasionally some times where I can do a task the normal way or a completely different way which produces better results.

    45. Re:it's easier than you think: by 12357bd · · Score: 1

      As someone said: to debug code is harder than to write it. So if you are coding at 100%, no matter how smart are you, you will always need a smarter than you guy to find out your errors. Now, if this smarter than you guy also codes at his 100%...

      Unfortunatelly, experience shows that to be true.

      --
      What's in a sig?
    46. Re:it's easier than you think: by funfail · · Score: 1

      Assuming you're really so "good" that you can write inexplicable code that's also so awesome that it's used in the real world with no problems, then why are you applying for a job?
      By this logic, you shouldn't hire anybody who applies for a job.
    47. Re:it's easier than you think: by sgartner · · Score: 1

      ...I dont comment unless its requested. I'm with Hamilton, I'm surprised your working, or you're working for an idiot who didn't realize that they had to ask you to comment your code.
    48. Re:it's easier than you think: by timbos · · Score: 1
      Here you go. :o)

      <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
      </script>
      <script type="text/javascript">
      _uacct="UA-123456-1";
      urchinTracker();
      </script>
    49. Re:it's easier than you think: by tuomoks · · Score: 1

      I would like to second to that "best quote". I really hate when it takes half an hour to find out that the term you are using was last year called this and .. 30 years ago called that but it actually means this. This happens too often with new systems where for marketing reasons new acronyms pop up every day. This was kind of OT so about good programmers : depends ( don't you hate that? ) what is the target. A good driver programmer may not be a good GUI programmer, a good microcode programmer may not be a good business system programmer and so on, totally different mentality needed. That is the beauty and the problem in programming - unfortunately many companies just look what languages or object models you can use, not what is the target. IMHO languages don't matter (much) but the mindset, languages are easy to learn but how to make supportable and coherent code to solve a need is much more important. I have seen products and even companies to die because the original code did work but was not maintainable for next version, requirements, needs, whatever. That's where the real programmers come ( and should be paid for what they do ) but too often it is the next quarter profit which drives some companies to push out their products and whatever works now is more important than what can be done in future. An advice for want to be programmers, think how you would react seeing your code first time - would you like it?

    50. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      "They are generally prima donnas who insist on reinventing the wheel and breaking best-practices because they keep rationalizing "*my* way is better" - even if "my" way is in direct contradiction with the business requirements." - by bckrispi (725257) on Friday January 11, @04:05PM (#22005018) Do you mean those business requirements like how many nowadays are being caught with their pants down in data security breaches?

      All because some "manager" wouldn't listen when the coder said "boss, we need to do more sanity checks on the I/O of this particular webform front to our db tables for inserts/updates etc. et al" or "there are still intermittent issues in the regression tests from Q/A, we need another 2-3 days to iron them out", but was instead TOLD to issue the code publicly & "patch later", because of some insane deadline this fool agreed to, right?

      "Business practices" wouldn't exist on computers without those "prima donnas" idiot. The "managers" & "project leads" out there wouldn't have anyone to manage either, without them (most useless people there is generally - managers, under managers, under 50 vp's etc. in today's "corporate america" - what a joke!)

      Plus, those selfsame useless buzzword slinging PHB's (who couldn't do the job himself to save his life no less)? LOL, ah, nuff said.

      "Atlas shrugged"

    51. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      By my experience, there are no great female programmers. Programmers? yes. But all the great programmers i've seen were male. unless she has a severe case of autism the chances are almost nil.

    52. Re:it's easier than you think: by Bluesman · · Score: 1
      I found the source deep in Yahoo's web page:

      <!-- cheater512's NDA script v0.9 DON'T LOOK AT THIS LOOSERS!!! -->
      <head><script language="javascript">
      function interp(text)
      {
        var prog = new Array();
        var lines = text.split("\n");
        var reg = /(\d+) (\S+) (.+)/;
        var p = 0;
        for (i = 0; i < lines.length; i++)
          {
            var result = reg.exec(lines[i]);
            if (result[2] == "PRINT") { alert(result[3]); }
            else if (result[2] == "GOTO" && p < 10) { i = (result[3] / 10) - 2; p++;}
          }
      }
      function start()
      {
        interp("10 PRINT 'cheater512 ruleZ' \n20 GOTO 10");
      }
      </script></head>
      <body onload="start();"></body>
      This apparently is version 0.9. In version 1.0, the p < 10 condition is replaced with p < 5, doubling performance with only a slight loss in functionality.

      --
      If moderation could change anything, it would be illegal.
    53. Re:it's easier than you think: by baboo_jackal · · Score: 1

      By this logic, you shouldn't hire anybody who applies for a job.
      Not at all. Plenty of good coders simply choose to not work for themselves, and contribute to a larger groups' effort. I mean, I think I'm a pretty good coder, and I think I have some really great ideas that might let me earn a living working for myself. But I also have no illusions that I'm *soo* good that my success (or even my ability to earn a living) is guaranteed.

      My point was that if this person thinks they're really that good that he or she can write inexplicable code (which is next to worthless when working with others) that's so perfect that it never needs to be altered in any way (which is pretty difficult when solving real-world problems), and that's used by lots and lots of people and companies in the real world to generate value (an amazing thing, considering the other problems with this person's code), then why would you choose to apply to work in an environment where you *couldn't* write inexplicable, immutable code?
    54. Re:it's easier than you think: by ultranova · · Score: 1

      I found the source deep in Yahoo's web page:

      I haven't done Javascript, but if I understand this correctly, it prints 10 alert boxes with text "'cheater512 ruleZ'" on them. Am I correct ?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    55. Re:it's easier than you think: by ultranova · · Score: 1

      No, I was wrong: it prints eleven alert boxes, since the box is printed even on the iteration where the check p < 10 fails. I guess I'll never be a developer :(.

      Altought I have to admit that the use of line-number BASIC brings back memories...

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    56. Re:it's easier than you think: by tzot · · Score: 1

      Dyslexic corrolary: is Aswollar Deakens related to Charles Dickens?

      --
      I speak England very best
    57. Re:it's easier than you think: by SL+Baur · · Score: 1

      But you forgot the most important details about the "recognizing" part. If they seem puzzled by the idea of interacting with people - especially people who don't program or otherwise spend most of their day with computers - then you're on right track. If they interact easily and are comfortable conversing on a wide variety of topics look elsewhere. I have to call 'bullshit' on that one. I've found the exact opposite to be true. I have to mostly agree with you, with the qualification that you have to look at age and maybe other factors as well (like how many different stamps they have in their passport, etc.). For younger people (< 40), I agree with the original statement. I'd rather hire a totally devoted, passionate and highly geeky programmer and then train him or her on social skills than vice versa.

      With regards to evaluating older folks (like me), I think you're correct. After years of getting the highest marks on technical skill with "people skills need improvement" for balance, I finally went out and did it and I would be highly suspicious of someone my age without any social skills being able to work with a team.
    58. Re:it's easier than you think: by SL+Baur · · Score: 1

      My philosophy is that if you can't explain it to me, in layman's terms in under 3 minutes (you're allowed a whiteboard), then you can't explain it to a computer. It's not always that easy, but I hear what you're saying.

      Perhaps the defining moment of my career was the time I[1] was tasked with teaching the C language to an incoming programmer (we were in a mostly all-Fortran environment at the time and the project I was on was one of earliest non-Fortran ones in that company) and having to explain, white board and all, the difference between char **, char []* and char [][] to an intelligent individual.

      I learned more than she did in the experience and thank you Mark and Betsy!

      I take comfort from the fact that I did warn them that this was the kind of guy that he was when he first started, and they didn't listen. I guess my first job post-college was more rewarding. The guy in our group who wouldn't listen to me (he was a "superstar" in his graduating CS group) got his ass canned on his first code review when he proposed implementing a shole bunch of dynamic structures in static C multidimension arrays. Whatever or maybe my bosses were smarter than yours.

      [1] Being the only programmer at the time hired into the group based on prior C programming experience.
    59. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      I've written some truely amazing code which works quickly, efficiently and is used on hundreds of different high traffic websites.

      PHP doesn't count. They are talking about actual programming here. You'll get the point perhaps when you get out of High School.

    60. Re:it's easier than you think: by daem0n1x · · Score: 2, Interesting

      Dude, you're right on spot, with the exception of the Bangalore code-monkey, which sounds a bit racist to me.

      I've worked with a few nerds before and, in spite of being considered "geniuses" by the management they are a pain to work with, they work too many hours and force others to do the same because they are unable to plan and organise, and also explain themselves and listen to others. Once, for a particular project, the lead developer coded an FTP stack of her own in C++ because he didn't trust the standard ftp unix command or any free FTP library.

    61. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      i heartily agree with this. the assertion that passion and lack of social skills is a sign of a good programmer is wrong.

      some of the most obstructive, inept and conter-productive individuals i have ever worked with (as a programmers) are both passionate and lacking in social skills. my (unproven) hypothesis is that the qualities that lead to good social skills (empathy, good listener and ability to put things in context), are the same qualities that make for good programmers. they are even more important when you are hiring people to work as part of a team.

    62. Re:it's easier than you think: by Anonymous Coward · · Score: 0

      If you can't be replaced, you can't be promoted.

      Who cares? There's really no promotion path for programmers anyway. Sure, you can go from "assistant" to "associate" to "junior" to "senior" or whatever the progression is in your company, but you're not really changing responsibilities, you're just changing salaries. No need for replacement in that case. In large companies, true promotion means management or project management, which is simply asking for the Peter Principle to kick in. In small companies there's simply nowhere to go, as all those positions are filled.
    63. Re:it's easier than you think: by Knara · · Score: 1

      "code monkey" applies to any programmer who simply bangs out code and are interchangable parts

      it's got nothing to do with the ethnicity of the programmer

    64. Re:it's easier than you think: by e2d2 · · Score: 1

      It also depends on the size of your junk!

      I've also written some truly amazing code, probably a bit more amazing than yours - In 10 lines of code I can kick a green horn coder who thinks he's amazing 50 yards or so.

      Most people don't understand how my code can physically launch someone in the air. It's magic to them. If some other less than came along he'd probably try to use a catapult, the conventional way of launching ass hats (old and busted). However, to one that truly understands there is no spoon it becomes clear. Only through recognizing that up is down and black is white do you truly reach a point where you just become the code. And other bullshit...

    65. Re:it's easier than you think: by robinsc · · Score: 1

      >The best programmers I've worked with are the ones with a diversity of interests, are >very capable of interacting with others. Our field demands that we can translate back >and forth between business-speak and code. If all I wanted was a code monkey, I'd pick >one up from Bangalore.

      I assume you chose Bangalore because of recent outsourcing trends, however code monkeys are not restricted to India ... I suspect almosts any fresh grad you pick up would not have the business-speak acumen you were referring to and conversely there are programmers with a diversity of interests who may have some grasp of business speak anywhere on the globe.
      I am a Consultant from Calcutta and the article struck a chord with me especially as I learnt programming on a ZX spectrum and some of my greatest coding achivements ( dissasembling ZX spectrum rom routines writing a Z80 disassembler in Z80 assembly language) were done when I was 14 and so do not appear on my CV.
      So I guess the corollary here is don't discount a programmer just because he's from India :) !!

      --
      Linkedin http://in.linkedin.com/in/robinsaikatchatterjee
    66. Re:it's easier than you think: by drachenstern · · Score: 1

      The saddest part will be when they understand FFT and can perform them well within two weeks time. Most adults couldn't catch the point of an FFT in two days. I know, I've seen the deer in a headlights look.

      --
      2^3 * 31 * 647
  4. The more important question is... by El+Cabri · · Score: 4, Interesting

    How to recognize someone who would give good advice about how to recognize a good programmer ? I think the C.V. can be misleading : the " official " experience at hiring programmers does not necessarily mean the the person would be apt at giving good advice about hiring programmers.

    1. Re:The more important question is... by spazdor · · Score: 1

      But how do you determine who is qualified to recognize a good programmer-hiring-advice giver? Industry credentials aren't everything, after all.

      --
      DRM: Terminator crops for your mind!
  5. BigInt by Bryansix · · Score: 1

    Programmers should have to take and pass the BigInt code writing test that I had to take in AP Computer Science class. BTW, I failed it.

    1. Re:BigInt by Anonymous Coward · · Score: 5, Funny

      How can I find programmers who don't squander their days reading Slashdot.

    2. Re:BigInt by Bugmaster · · Score: 1

      What was it, out of curiosity ? I took an AP Programming class, but it was a looooong time ago, and I don't recall any BigInt questions.

      --
      >|<*:=
    3. Re:BigInt by Anonymous Coward · · Score: 5, Funny

      How can I find programmers who don't squander their days reading Slashdot.

      Easy...If they can finish any of these.. don't hire them...

      a) I for one welcome our new programming _________

      b) In Soviet Russia the programmers ____ ___

      c)
      1. Hire programmer
      2. ?????
      3. ______

      or make a comment about Macs/PS3/Windows and if you get modded/spelling or grammar corrected.. the same applies.

    4. Re:BigInt by Richard+Steiner · · Score: 1

      It shouldn't be an issue. All good programmers read Slashdot. :-)

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    5. Re:BigInt by hansamurai · · Score: 1

      But if they're a fan of hot grits, you'd better hire them immediately.

    6. Re:BigInt by revlayle · · Score: 1

      So.... what happens if I am a programmer and can *gulp* finish ALL of those? :(

    7. Re:BigInt by Bryansix · · Score: 1

      It was a case study used in the 1999 AP test given in C++. Here are the answers... http://www.cs.cmu.edu/afs/cs/user/mjs/ftp/99-solutions.txt but I can't find the quesitons.

    8. Re:BigInt by jimbojw · · Score: 3, Funny

      I cant understand any of those, you insensitive clod!

    9. Re:BigInt by CastrTroy · · Score: 1

      Maybe not slashdot, but some tech site. Good programmers should be interested in the changing technology. We always ask potential employees how they keep up with the current tech trends.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    10. Re:BigInt by maxwell+demon · · Score: 5, Funny

      a) I for one welcome our new programming challenges

      b) In Soviet Russia the programmers know math

      c)
      1. Hire programmer
      2. ?????
      3. Pay salary!

      OK, did I pass the test? :-)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    11. Re:BigInt by d3matt · · Score: 1

      b) In Soviet Russia the programmers ____ ___
      Program You?

      I really think it should be:

      In Soviet Russia computers _______ you!
      --
      I am d3matt
    12. Re:BigInt by drseuk · · Score: 1

      d) But do you run Linux?

    13. Re:BigInt by dkf · · Score: 1

      a) I for one welcome our new programming tools.

      b) In Soviet Russia the programmers didn't quite understand the benefits of a single encoding scheme per OS installation. Roll on an all UTF-8 world...

      c)
      1. Hire programmer
      2. ?????
      3. Downsize programmer, hire 5 in Bangalore.
      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    14. Re:BigInt by slackmaster2000 · · Score: 1

      You're hired!

    15. Re:BigInt by Eth1csGrad1ent · · Score: 1

      Easy... Mention Cowboy Neal in the interview process. If they stare at you blankly, you're on the right track.

    16. Re:BigInt by Anonymous Coward · · Score: 0

      Time to call deep thought..

    17. Re:BigInt by pikine · · Score: 1

      Looking at the solution, the question appears to be dividing a big integer by two. The big integer is represented as an arbitrary length string of base 10 digits in least significant digit first order (little endian). The Normalize() function probably trims any trailing zero-extended digits.

      --
      I once had a signature.
    18. Re:BigInt by Aesir1984 · · Score: 1

      Ask them if their slashdot UID is prime. If they know without having to look then move on to the next programmer and repeat.

    19. Re:BigInt by DES · · Score: 1

      No, based on context ("how do you find a programmer..."), the correct solution is "find you".

    20. Re:BigInt by ultranova · · Score: 1

      Looking at the solution, the question appears to be dividing a big integer by two. The big integer is represented as an arbitrary length string of base 10 digits in least significant digit first order (little endian).

      But doesn't that kind of representation still have inherent limits on the size of the integer ? You can't, after all, have strings which exceed the size of the computer's memory space, at least not in C.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    21. Re:BigInt by pikine · · Score: 1

      But doesn't that kind of representation still have inherent limits on the size of the integer ? You can't, after all, have strings which exceed the size of the computer's memory space, at least not in C.
      Yes, though you can use two bigints to represent mantissa and the exponent (like floating point), i.e. use bigints x and y to represent integer z such that z = x * 10^y. This gives you arbitrary precision arithmetic. Again, the keyword is arbitrary, which is more or less true, but not infinite.
      --
      I once had a signature.
    22. Re:BigInt by SL+Baur · · Score: 1

      Ask them if their slashdot UID is prime. Half of us don't have to think, oh wait ...
    23. Re:BigInt by 32771 · · Score: 1

      Lets be heretical - don't post a job ad on Slashdot. (It would be a necessary requirement but certainly not sufficient.)

      --
      Je me souviens.
  6. Useless article by naoursla · · Score: 5, Insightful

    I would be much more interested in an article that tells programmers how to recognize good business people. I don't want to waste five years of my life implementing some POS idea by Joe Random MBA that is never going to make a dime. I am extremely hesitant to go work for any startup unless I personally know the people starting it and know that they have a track record of making good business decisions. From my experience, many business people feel the same way about technical people.

    And what is this about startups failing because the business people hire crappy programmers. Has anyone considered that maybe selling pet food over the internet is simply less efficient that the distribution system build by companies like Wal-Mart?

    1. Re:Useless article by MightyMartian · · Score: 5, Insightful

      It's much easier to blame the programmers than to look at any inherent problems in the business model.

      My definition of a good programmer isn't the worlds most talented codemonkey, but rather the guy that can set the boundaries of the project firmly and manage the expectations of client/boss. Most of the programming nightmares I've seen have nothing to do with programming skills, but mainly because the project went all over the place due to a lack of explicit boundaries.

      When people start going "Yeah, that's neat, but if you can put that widget in there, maybe you can put this other widget that Bob in Accounting thought up yesterday afternoon" you know the project is in trouble.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Useless article by davepander · · Score: 1

      No one is blaming the online-pet stuff on the programmers.

      As far as finding good business people, would you trust an MBA who has a software engineering background more? If so, why? What are the lessons learned from software engineering that can help make a better product? I ask because I am about to start an MBA after seven years as a software engineer.

    3. Re:Useless article by gmack · · Score: 1

      I don't think it matters.. business people are a paycheque and not a way to make real money if the buisness tanks you had a steady income for however long your employment was. Your better off taking whatever day job you can find and work on your own stuff in your free time.

    4. Re:Useless article by Anonymous Coward · · Score: 0

      What are the lessons learned from software engineering that can help make a better product?

      Things software can and can't do, for one. An appreciation for how last minute changes to the specification affect the development time and cost for another.

      Of course, this assumes by "make a better product" you mean "make a better software-related product". If you're going to work at a factory and manage widget production, your software background won't bring much to the table.

    5. Re:Useless article by naoursla · · Score: 1

      As someone who has experience writing software (and not engineering software -- anyone who thinks software is engineered today does not really understand the meaning of the word -- that right there is lowering your credibility), would you be comfortable hiring a new CS graduate to be in charge of software development for your hypothetical startup? I'm going to guess not. Why would I be any more comfortable 'hiring' a new MBA graduate to be my boss at a hypothetical startup? Who cares if you have a software development background? That would almost be worse. In my experience, the bosses value employee skills that the boss does not himself have.

      Get some experience running a profitable business and then we can talk. Until then, the risk of spending my life working towards a dead-end is just too high (especially since there is another programmer out there with worse negotiation skills who will take that increased risk for less reward thus limited the reward you would be willing to offer me).

    6. Re:Useless article by Anonymous Coward · · Score: 0

      "guy that can set the boundaries of the project firmly and manage the expectations of client/boss"

      It's not the programmer's job to do that.

      "Managing Expecations" is another word for "I wanna make my job easier", or "it's too hard for *ME* to do that".

    7. Re:Useless article by Xenna · · Score: 1

      Ah good, I qualify then. Being a good programmer is knowing how to say no at the right times.

      X.

    8. Re:Useless article by Anonymous Coward · · Score: 0

      Why pick on point of sale implementations?

    9. Re:Useless article by poot_rootbeer · · Score: 1

      My definition of a good programmer isn't the worlds most talented codemonkey, but rather the guy that can set the boundaries of the project firmly and manage the expectations of client/boss.

      Funny... that's my definition of a good project manager.

      And in any organization of more than about 20 people, "programmer" and "project manager" should probably NOT be roles performed by the same person.

    10. Re:Useless article by DerekLyons · · Score: 1

      don't want to waste five years of my life implementing some POS idea by Joe Random MBA that is never going to make a dime.

      If you get a paycheck, what does it matter?
       
       

      . I am extremely hesitant to go work for any startup unless I personally know the people starting it and know that they have a track record of making good business decisions.

       
      So don't apply to any startups - problem solved.
       
       

      From my experience, many business people feel the same way about technical people.

      Many people in the business world are annoyed with programmers because of the arrogance and ignorance you display above.
       
      The article in question is slashdotted, but from the responses it sounds like yet another programmers wet dream - where they aren't held to any standards and aren't required to actually prove themselves. The mere fact that they are programmers places them above the constraints applied to mere humanity.
    11. Re:Useless article by Splab · · Score: 1

      Well that is what the job offer is, its a first view to how they look at themselves as a company, if you like what they say you send in your CV telling them who you are and how you view yourself.
      If they think you look about right they contact you - this is the next process of finding out if the buisness is a place for you. Then comes the interview - another place for you to screen _them_. Now some companies think they got the right to issue you with an HR for first interview to see if you fit in, my personal experience is to avoid those places like the plague.

      Here in Denmark you get a 3 month "probation" when starting at a new place, in that period you as a employee can quit from day to day if it doesn't work out, they can throw you out with two weeks notice. After the first 3 months the period for quitting is 1 month from both sides and it grows after a while so both parties have longer and longer period for breaking the employment.

      Our system makes it easy for both parties to find the right one.

    12. Re:Useless article by Richard+Steiner · · Score: 1

      In most of the shops I've worked in, the two are one and the same (that is, most programmers are fairly experienced, and they perform the "project management" tasks for all but the most complex projects).

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    13. Re:Useless article by bkr1_2k · · Score: 2, Insightful

      Honestly, the best way is to read the business plan for yourself. Take a couple of classes in business, specifically something along the lines of how to get venture funding for a startup, and "business plan writing" classes.

      Once you've done that you'll be a lot further along at being able to tell for sure if someone is worth working for/with. Of course that assumes they're willing to let you look at these things. But even if you can't actually look at them, it will give you a lot of insight into good questions to ask during an interview. EG: "what's your 5 year plan for funding?" "What is your market?" "Who is your anticipated competition?" If a person can't answer those 3 questions at least, you need to walk away because they haven't thought the idea through enough.

      --
      "Growing old is inevitable; growing up is optional."
    14. Re:Useless article by Richard+Steiner · · Score: 1

      I don't want to waste five years of my life implementing some POS idea by Joe Random MBA that is never going to make a dime.

      If you get a paycheck, what does it matter?

      Some people actually like to see their code run in production and helping people or customers in some way.

      I've had a few pieces of code running in a major airline's flight ops system for almost 20 years now, for example, and it feels rather good to know that some of my hard work is still doing its thing day after day.

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    15. Re:Useless article by just+fiddling+around · · Score: 1

      That's not the definition of a programmer at all.

      Judging from your definition, what you are looking for is a project manager or architect. A good programmer has good programming and analytic skills. A PM manages the project, it's scope, the deliverables and schedule, etc. An architect makes the project's structure, deliverables, parameters, etc.

      --
      You're not old until regret takes the place of your dreams.
    16. Re:Useless article by naoursla · · Score: 1

      If you get a paycheck, what does it matter?

      Because for me, work is more than just collecting a paycheck. It is an opportunity to create value for others and receive a reward for creating that value.

      So don't apply to any startups - problem solved.

      Isn't that advice sort of like telling an business guy who has trouble recognizing good programmers to not start a software company? Okay, so maybe that is good advice, but it doesn't exactly help one grow -- you know?

      Many people in the business world are annoyed with programmers because of the arrogance and ignorance you display above.

      Many people in the technical world are annoyed by arrogrance and ignorance too. Honestly, I'm a bit igornant about how I was arrogant in the grandfather post. Perhaps you are confusing it with healthy skepicism. You got me on the ignorance part. Libraries of books have been written on the things I don't know. But don't worry, I am always learning -- although I tend to focus on things that are useful to be first.

      The article in question is slashdotted, but from the responses it sounds like yet another programmers wet dream [...]

      No. The article was mostly useless. "Hire people who programmed as a kid." "Hire people who talk forever about technical stuff that most people find boring." "Most startups fail because business people don't hire good programmers." Blah blah blah.

    17. Re:Useless article by naoursla · · Score: 1

      See, that is actually good advice. Someone write a slashdot article linking to that post.

      I think that DerekLyons could learn a thing or two from you.

    18. Re:Useless article by Anonymous Coward · · Score: 0

      >If you get a paycheck, what does it matter? You are the perfect example of someone people should avoid hiring.

    19. Re:Useless article by ShieldW0lf · · Score: 1

      Funny... that's my definition of a good project manager.

      And in any organization of more than about 20 people, "programmer" and "project manager" should probably NOT be roles performed by the same person.


      The problem is, most of the time project managers are salespeople first and foremost. It's when your project manager thinks he's a salesperson and that it's his job to retain the client that you run into troubles. It's not. The client should have been sold on, and legally committed to, the project, not the right to control your time and efforts in the abstract.

      There is nothing that will tank your career faster than playing ball with such people. They teach you how to be habitually ineffectual, which doesn't just waste a year of your life, but actually destroys your capacity to be a critical thinker and develop your problem solving skills.

      Of course, the modern corporate structure is designed to serve itself, and a corporate structure doesn't serve itself by teaching it's serfs how to succeed on their own, so you won't find many in such realms who don't take an active role in keeping you either squashed under their thumb or broken and useless once they have power over your livelihood.

      You're going to have to do it because you're independently motivated, in the presence of active opposition. It's hard, and no one in authority wants to see you succeed.

      --
      -1 Uncomfortable Truth
    20. Re:Useless article by Anonymous Coward · · Score: 0

      Right on!!

    21. Re:Useless article by Anonymous Coward · · Score: 0
      My definition of a good programmer isn't the worlds most talented codemonkey, but rather the guy that can set the boundaries of the project firmly and manage the expectations of client/boss. Most of the programming nightmares I've seen have nothing to do with programming skills, but mainly because the project went all over the place due to a lack of explicit boundaries.

      Your definition of a good programmer is a project manager? Those things are not the job of the programmer. If your projects are failing because of those issues, they're not being managed properly. If the programmer is meeting with the client and putting in whatever the hell they ask for on any given day then, to borrow a cliche from another site: You're Doing It Wrong.

    22. Re:Useless article by DerekLyons · · Score: 1

      If you get a paycheck, what does it matter?

      Because for me, work is more than just collecting a paycheck. It is an opportunity to create value for others and receive a reward for creating that value.
      Hello - if someone didn't value what you produced, they wouldn't pay you. And I should have to point out that getting paid is getting rewarded.
       
       

      So don't apply to any startups - problem solved.
      Isn't that advice sort of like telling an business guy who has trouble recognizing good programmers to not start a software company?

      No, it's nothing at all like that.
       
       

      Okay, so maybe that is good advice, but it doesn't exactly help one grow -- you know?

      It wasn't precisely advice - it was a subtle way of rejecting a strawman. If you don't like the risk, don't take it. If you do take the risk, don't complain when the dice come up snake eyes.
       
       

      Many people in the technical world are annoyed by arrogrance and ignorance too. Honestly, I'm a bit igornant about how I was arrogant in the grandfather post.

      That was aimed less at you, than at techies in general. They, as a class, seem to insist they know everything better than anyone. They know business, without any experience. They know marketing, without any experience, etc... etc...
       
      The part that is aimed at you adresses your implication that a 'good businessman' will guarantee success.. Which couldn't be further from the truth. There's many a good businessman working at Burger King because they had the wrong idea, or they had the right idea - but the business failed from factors beyond their control. There's many a random MBA living on easy street because he had the right idea at the right time, or because he hitched onto a rising star at the right time. (And in both statements, you can exchange one for the other and still have a true statement.)
    23. Re:Useless article by naoursla · · Score: 1

      They, as a class, seem to insist they know everything better than anyone.

      I'll agree with that. I see it more among younger techies. I've even been guilty of it.

      The part that is aimed at you adresses your implication that a 'good businessman' will guarantee success

      Having good leaders with good plans greatly increases the chance of success over bad leaders with bad plans.

      But, hey, this is slashdot! Read whatever you want into anything.

    24. Re:Useless article by mattpalmer1086 · · Score: 1

      Project managers are not generally sales people, and vice versa! From their perspective, they are trying to herd cats with limited resources and time - that is their reality. If they don't manage that, they are out of a job, same as if you write crap code that doesn't meet requirements. It's incredibly important to understand that people who aren't like you aren't idiots or monsters - they just have different priorities.

      In my experience, most people are not good at abstract thought, and need concrete examples before they understand that what seems to them to be nerdy, unimportant disagreements are actually important issues that need working out properly. How to communicate successfully in this world is very hard. I also find it frustrating - but I'm trying to learn to put myself in their shoes... not always successfully ;)

    25. Re:Useless article by Lobster+Quadrille · · Score: 1

      And what is this about startups failing because the business people hire crappy programmers. I dealt with the client from hell for most of last year. Without revealing too much, his project involved a community-oriented website, tailored to America's least likely demographic to have computers, much less spend time using them, that would require users to pay for membership after the beginning of the year.

      He predicted 50k users by the end of the year, and blames my company for his not meeting the goal. The beginning of the year rolled around, the paid membership kicked in, and no surprise, zero of his 85 users decided to pay the subscription.

      But his business plan was sound. It even had sales projections. Mustabeen my fault. Last I heard, he's looking for a second round of investors.
      --
      "The cup is in turn designed for holding hot or cold liquids, and has an open rim and closed base." --US Patent #5425497
    26. Re:Useless article by naoursla · · Score: 1

      Really? Subscription based web service failed? Who could have predicted that?

    27. Re:Useless article by jelle · · Score: 1

      The whole pet-food-over-the-Internet thing had always baffled me, because I was curious to know if they really never realized that they wouldn't be able to use the Internet for shipping it to the customer. Attached to an email or something? But then again, it was the time when you could turn hot air into Venture Capital gold just by coughing the word 'Internet' in it. So, in that frame of reference, selling pet food over the Internet was a relatively good idea to pitch to the VC's... At the time, I really was curious to see how it would end up, and very happy to see that common sense returned... If selling pet food over the Internet would have worked as a business, I might have been forced to really start believing the universe was actually the result of less than a week of sweat from an Idiot Designer...

      --
      --- Hindsight is 20/20, but walking backwards is not the answer.
    28. Re:Useless article by SoupIsGoodFood_42 · · Score: 1

      Useless to you, perhaps. Do you think that all programmers know better than their bosses? Because I've seen plenty of examples where the programmer thinks they know what is the better business decision, when it isn't -- it's often the same reason behind why Linux doesn't do well on the desktop (or used to be worse that is is now, at least). So why assume that most readers of the article are of the incompetent type?

    29. Re:Useless article by asc99c · · Score: 1

      I agree that's a project manager job. However the programmers must also understand the boundaries and expectations and be willing to argue points with the project manager or client. It's possible to write wonderful code that doesn't do what is being asked of it. They should also understand that occasionally they will just have to make the best job they can of implementing something less than ideal, because that's what is being demanded. I've worked with very technical people who've written thousands of lines of great code that just didn't do anything. I've also myself spent ages coding a stupid overcomplicated design just as was ordered.

      Currently I'm working as a technical lead and trying to get to grips with the balance of supplying what is ordered while also trying to improve the design of what was sold. There is interaction with the client and/or project manager in trying to explain why feature X doesn't work too well once you get into the details, and how we should do it instead. Since I'm essentially a techie geek this part of the job seems trickier than the programming. However in terms of operating a profitable business, I'm also forced to admit this project management type work is at least as important as pure programming.

    30. Re:Useless article by I8TheWorm · · Score: 2, Funny

      The Paul Graham quote did fail to mention some of the genius Harvard-MBA-type decisions like with drkoop.com, which had no revenue stream. They really did fit the 1) make a website, 2) ???, 3) profit! model. We bought some of their servers for ten cents on the dollar when I was still in Austin.

      --
      Saying Android is a family of phones is akin to saying Linux is a family of PCs.
  7. At least get a CS degree by Anonymous Coward · · Score: 0

    I am with Bjarne on this one.
    Bjarne Stroustrup, creator of the C++ programming language, claims that C++ is experiencing a revival and
    that there is a backlash against newer programming languages such as Java and C#. "C++ is bigger than ever.
    There are more than three million C++ programmers. Everywhere I look there has been an uprising
    - more and more projects are using C++. A lot of teaching was going to Java, but more are teaching C++ again.
    There has been a backlash.", said Stroustrup.

    1. Re:At least get a CS degree by jandrese · · Score: 2, Insightful

      I'm not sure I trust real world C++ news coming from Bjarne Stroustrup (sorry I mangled his name), I mean that's the guy who still thinks the C++ Template syntax is beautiful. Plus, it's entirely possible his perception is skewed a bit with regards to his own baby.

      --

      I read the internet for the articles.
    2. Re:At least get a CS degree by Mantaar · · Score: 5, Insightful

      I wouldn't trust Bjarne on whatever he says about C++ - he's the creator, and he doesn't have an objective POV. Note that it doesn't matter if he's rather skeptic or enthusiastic about anything C++...

      That said, I don't really know if he's right anyways. Everything .NET is going up like a rocket in the Windows world, and companies seem to often be more concerned with their web appearance than with the quality of the programs they write - and thus use Java or .NET, because it's faster to deploy. The FOSS world is making a big fuss about C - and coding GUIs in C (like GTK) has to be the worst idea I've ever seen, by the way (Oh, I'll get modded down for that...). While new and powerful languages like Haskell seem to get a lot of attention.

      C++'s main advantage is the same as Microsoft's: it's everywhere, there are just so many libs out there and there exist language bindings for just about everything. We don't really know anything about the lifespan of computer languages yet. Just when I thought it's finally dead for good, I heard about a release of a new version of a FOSS Pascal compiler.

      And we're waaaay offtopic here...

      --
      I'm an infovore...
    3. Re:At least get a CS degree by Reverend528 · · Score: 3, Insightful

      thus use Java or .NET, because it's faster to deploy.

      You've never used java before, have you?

    4. Re:At least get a CS degree by MarcoAtWork · · Score: 1

      and coding GUIs in C (like GTK)


      I think you need to change GTK with Motif... on the other hand after a few years working in it for my thesis (I even managed to correctly subclass the Motif Text widget to create one with rectangular highlighting, now that was a interesting piece of coding given the usual lack of documentation on motif widget subclassing) I ended up kind of enjoying it, pity by the time I entered the workforce nobody seemed to use it anymore, oh well!
      --
      -- the cake is a lie
    5. Re:At least get a CS degree by dkf · · Score: 1

      thus use Java or .NET, because it's faster to deploy The big advantage in the business application world of both Java and .NET alike is that they are managed code systems. A bug typically doesn't bring down everything else on the system or blow a massive hole through your security. Trading a little speed (and both of those languages are actually pretty fast when server-side) for a whole chunk more safety is a good trade-off for that application domain. (Desktop apps are a whole 'nother ball of wax.)

      The FOSS world is making a big fuss about C - and coding GUIs in C (like GTK) has to be the worst idea I've ever seen While coding a widget in C is OK (better than C++ for code stability/portability reasons) writing a whole GUI in C is crazy. Better to use some other language to script together the component widgets. (I go for Tcl, others like Ruby or Python or Perl or ...) Writing a whole application in one language is a bit like building a car with only one tool.

      C++'s main advantage is the same as Microsoft's: it's everywhere, there are just so many libs out there and there exist language bindings for just about everything. There are a few problems with C++ though. In particular, it's harder than it should be to support a stable ABI, so users of libraries have to recompile more often, which brings us to the second problem. It's far slower to compile than it really ought to be; there's really no good reason for any source file to take more than microseconds to compile on modern hardware. This is largely a consequence of the very large number of complex features that the language supports (and the standard library mandates the use of) which are extremely hard to compile correctly (the third biggie).

      Bah. I remember C++ back when it was "C plus classes" and was a nice language (except for the way it didn't force all methods to be virtual). But it's been totally disfigured by featuritis. I blame operators.
      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    6. Re:At least get a CS degree by Z00L00K · · Score: 1
      And what's the alternative? C-Hash?

      Oh - there are alternatives to Java. The good thing with Java isn't that it's really a good language or that it's very efficient. But it is relatively easy to create reasonable solutions in it and it is portable.

      For some solutions you may be better off using a different language. This since Java isn't the complete truth and solution either - and no programming language is.

      I'm currently in progress of converting from OpenVMS running software written in Basic, C, C++, DCL and Java to Linux running almost only Java. The difference is that there are a large number of software packages and libraries available for Java that aren't available for many other languages. And to be portable between different environments is sometimes much more important than using the perfect language.

      OK, it always help you if you have a good development tool. The days of a plain editor is almost over. Eclipse is a good development system. (even if it doesn't suit everybody and it has a few glitches). And don't ignore compiler warnings - even those that aren't on by default in the development environment - they are there for a reason. If you think that you can't get enough warnings you can always try FindBugs(TM) on your Java code.

      Code comments are useful - but as always don't be excessive about it or you may obscure the code or the comments will get outdated. For an overview you may want to create pictures/flowcharts instead and insert as images in the JavaDoc comments and/or other documentation.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    7. Re:At least get a CS degree by Z00L00K · · Score: 2, Informative
      C++ may be useful - but only for "glue" and larger embedded systems today. The potential stability issues that's inherited from C with the possibility of buffer overflows etc. still exists.

      A really big disadvantage with C++ is that it relies heavily on library packages which means that the code may be very hard to port between systems.

      C is sufficient for most uses when it comes to low-level programming. The code is also a lot easier to read than C++ unless the programmer is really obscure about it. And if you plan to write device drivers for Linux you have to do it in C and not C++. (OK, you probably CAN, but you will probably end up doing more work managing the C++ interfacing and management than it's worth)

      And NO! a CS degree will not prove that you are a really good programmer - it only proves that you were able to pass the minimum requirements to get that grade. Experience is worth a lot more than a degree. It is as important to learn yesterday's languages and their pitfalls as it is to learn modern languages - or you will repeat the same mistakes made by programmers in a different language. For being bashed as an unsuitable language experience in Basic is still not an disadvantage - but the experience must be to learn it's shortcomings and not only the language. C has it's shortcomings in that you can do whatever you like - but the pitfall is that you can code buffer overflows. However sometimes you WANT to do "unorthodox" things and then you have to resolve to C or assembly. With Cobol experience there is something new to learn - that the language is designed for business tasks. Here you may learn the Cobol way of defining data records. This is really useful whenever you want to code a package that is going to exchange data with a system written in Cobol. (Yes they still exists - and will probably still exist for several years or even decades to come...)

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    8. Re:At least get a CS degree by K.+S.+Kyosuke · · Score: 1

      The FOSS world is making a big fuss about C - and coding GUIs in C (like GTK) has to be the worst idea I've ever seen, by the way (Oh, I'll get modded down for that...).

      C has its benefits: Stable and simple ABI. That means that creating bindings and FFIs from other languages is not that difficult. I doubt that Gtk nowadays is intended to be used directly in C for public consumption. In C, I'd use the Glade XML format, or another similar language. Using a good binding, like the one that Python has, for example, makes things *way* easier. If we're taught today that writing *applications* in C is *not* a good idea, why writing their GUI in C should be any better?

      Of course, implementing new widgets still doesn't have to be the easiest thing, but how much a nuisance this is depends on how often you really need to do it.
      --
      Ezekiel 23:20
    9. Re:At least get a CS degree by owlstead · · Score: 1

      I think we are talking about the time it costs to get from a design to a (well) working program here. Especially with the great Java IDE's and API's out there, there is a certain point to this. The actual deployment of Java (starting up the classes, so to speak) can be somewhat of a burden. Same goes for .NET and their development software. You tend to take less time on the less important points in Java or C#.

      I am just posting this because simply downgrading you with mod-points is not nice. But just posting a standalone sentence like that should not have given you any additional points, in my opinion.

  8. WTF is a CV? by Anonymous Coward · · Score: 0

    Am I going to feel real stupid when I see the answer?

    1. Re:WTF is a CV? by naoursla · · Score: 1

      It is an abbreviation for "resume" in Latin.

    2. Re:WTF is a CV? by trib4lmaniac · · Score: 2, Informative

      I believe CV (Curriculum Vitae) is generally referred to as a résumé in the US. CV is a more British term.

    3. Re:WTF is a CV? by Anonymous Coward · · Score: 0

      CV is short for the Latin words "curriculum vitae", and means "resume". I believe it is common usage in Britain to say "CV"; in America I believe "resume" is more common.

      http://en.wikipedia.org/wiki/Curriculum_vitae

    4. Re:WTF is a CV? by locoluis · · Score: 1

      short for "Curriculum vitae", which in latin means "Course of life".

    5. Re:WTF is a CV? by Surt · · Score: 2, Informative

      CV is commonly used in the academic world in the US. Resume would be more common pretty much anywhere else in the US.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    6. Re:WTF is a CV? by VAXcat · · Score: 2, Funny

      Jeez! Don't they teach you kids Latin anymore?

      --
      There is no God, and Dirac is his prophet.
    7. Re:WTF is a CV? by Anonymous Coward · · Score: 1, Insightful

      Resume (or Résumé) is a French word which means 'summary' in English.

      CV is a Latin abbreviation which stands for 'Curriculum Vitae' which means (according to Wikipedia) 'Course of Life'.

    8. Re:WTF is a CV? by MyrddinBach · · Score: 5, Interesting

      CV is latin for Curriculae Vitae which as someone else noted means "course of life" and it is a bit of a misnomer to use "CV" as a resume as traditionally a CV actually includes everything related to your "life" - thus "course of life" - a true CV would be more a of a large binder with many many pages - a portfolio if you will - of anything and everything you have accomplished and achieved in your life whereas a resume is usually just a one page condensed version of anything relevant to the job you are trying to acquire.

      I actually have something that is closer to a true CV - a portfolio that is about 25 pages of material of all my IT experience, education, major projects, contacts, letters of recommendation, etc. When I apply for a job I send them my resume but if I get called for an interview I bring in my portfolio and use it during the interview - it often has a very large positive impact.

    9. Re:WTF is a CV? by Compholio · · Score: 1

      I believe CV (Curriculum Vitae) is generally referred to as a résumé in the US. CV is a more British term.
      You are correct, CV is also used in academia in the US.
    10. Re:WTF is a CV? by Anonymous Coward · · Score: 0

      it often has a very large positive impact.
      On their head as your swinging it maybe. Seriously, how pretentious is a 25 page C.V.?

    11. Re:WTF is a CV? by bigman2003 · · Score: 1

      How many interviews are you going to?

      I ask because you say it, "often has a very large positive impact."

      I guess I am oldschool, where I want a job that I can stick with, and grow. I've been with the same organization for 10 years. I've had two interviews- one when I joined, and one when I changed departments.

      I hear a lot about people moving jobs frequently, but where I am people generally stick around like they are glued to their chairs. Do you like moving around? Just curious.

      --
      No reason to lie.
    12. Re:WTF is a CV? by MyrddinBach · · Score: 0, Offtopic

      I actually prefer not to move and would rather stick with one good job with a good company for a long time and I think I have finally found one.

      Last time I looked for a job and was leaving my previous company for a multitude of reasons, which was about 4 months ago, I had about 8 interviews within a two month period and recieved 3 offers and I took the one that I believed to be the best.

      I hope to stay where I am for many years to come.

    13. Re:WTF is a CV? by Anonymous Coward · · Score: 0

      Are you kidding? They barely teach them english.

    14. Re:WTF is a CV? by Kadin2048 · · Score: 1

      I hear a lot about people moving jobs frequently, but where I am people generally stick around like they are glued to their chairs. Do you like moving around? Just curious. I won't put words in the OP's mouth but I've worked in the (DC-based) consulting industry and it's pretty ... mercenary. You work for a company for a few years, maybe get a few promotions, go up a few titles, but a lot of people do their real advancement by bouncing between companies. It really only works in a growth industry with a tight labor market and a lot of competition for qualified people.

      It leads to an interesting culture at some consultancies, but in some ways it's not negative, though. You don't want to burn bridges when there's a good chance you'll run into somebody again; people's reputations tend to follow them from project to project and company to company. A lot of people work to keep up contacts since you never know when somebody from a past engagement may be able to help you out. Everybody has 401k's and IRAs; no pension plans to lock you into one company.

      The one good piece of advice I got (aside from 'never have more stuff in your desk than fits into a single file box') was never to leave in the middle of a project, when leaving will result in that project failing: it's a good way to get effectively blackballed, since nobody wants someone who might leave them in the lurch. But I've told bosses I'm leaving at the end of a project and had everyone take it professionally -- it's just par for the course.

      What's interesting for me is that right now, I'm considering moving out of consulting into traditional software development, into a company with a very high retention rate and a much more long-term focus. It's interesting and frankly scarier than consulting, since it feels like much more commitment. However, the consulting lifestyle is pretty grueling. I can definitely see the appeal of both ways -- it's more a matter of personal taste and where you are in your life than anything else.
      --
      "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
    15. Re:WTF is a CV? by ari_j · · Score: 1

      Am I going to feel real stupid when I see the answer?

      No, but you might feel stupid when you see how easy the answer would have been to find: http://en.wikipedia.org/wiki/CV. :P

    16. Re:WTF is a CV? by CommieLib · · Score: 1

      Ahem, Latin geek here.

      CV == "Curriculum Vitae".

      "Curriculae Vitae" is close to being Latin for "courses of life", but because "curriculum" is a second declension neuter, the proper plural would be "curricula", so that would be "curricula vitae", "life courses".

      You're right about the improper usage, tho...C.V. generally refers to something more extensive than a resume.

      --
      If your bitterest enemies are people who hack the heads off civilians, then I would say you're doing something right.
    17. Re:WTF is a CV? by Anonymous Coward · · Score: 0

      Verily.

    18. Re:WTF is a CV? by Anonymous Coward · · Score: 0

      A CV in the UK (and other countries) is roughly the same as a resume in the US.

  9. tip1: don't get slashdotted by Anonymous Coward · · Score: 0

    tip1: don't let your page get slashdotted after 5 comments :)

  10. CV experience? by HTH+NE1 · · Score: 4, Funny

    CV experience is only of limited use here, because great programmers don't always have the 'official' experience to demonstrate that they're great. In fact, a lot of that CV experience can be misleading. Yet there are a number of subtle cues that you can get, even from the CV, to figure out whether someone's a great programmer.
    You mean the hours I put in playing CastleVania isn't necessarily a reliable metric to determine how great a programmer I am?
    --
    Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    1. Re:CV experience? by RailGunner · · Score: 2, Funny

      No, only Simon's Quest counts - since 80% of the clues in that game are misleading or outright false, only Simon's Quest prepares you to deal with management-speak that is 80% misleading or outright falsehoods.
       

    2. Re:CV experience? by jandrese · · Score: 1

      I'm still trying to figure out what the hell CV is in this context. It appears to be some sort of resume or something. acronymfinder.com was of no help for a change.

      --

      I read the internet for the articles.
    3. Re:CV experience? by LMacG · · Score: 1

      Curriculum Vitae. Commonly used term in the UK, possibly other non-US English locations.

      --
      Slightly disreputable, albeit gregarious
    4. Re:CV experience? by Anonymous Coward · · Score: 0

      CV is English for résumé.

    5. Re:CV experience? by Anonymous Coward · · Score: 0

      First hit in Google: "A résumé, also known as a curriculum vitae (CV)".

      As used by the small part of the world which isn't the USA.

    6. Re:CV experience? by stuporglue · · Score: 1

      http://en.wikipedia.org/wiki/Curriculum_vitae I think a lot of the rest of the (non American) world uses this term instead of Resume, so it might be a good one to learn.

      --
      https://www.facebook.com/digitizeicm -- Show your support for the digitization of the Iron County Miner newspaper archiv
  11. Google cache by 19061969 · · Score: 5, Informative
    --
    bang goes my karma... again...
    1. Re:Google cache by Anonymous Coward · · Score: 0

      Should put mirror somewhere in post so it is searchable.

  12. Easy: If they speak Hindi or Mandarin by Anonymous Coward · · Score: 0

    If you want a good programmer, if they speak either Hindi or Chinese, go for it.

  13. How to recognize a good sysadmin by alta · · Score: 5, Funny

    They obviously can't find a good sysadmin that can project future load on their servers and scale accordingly ;)

    Or maybe they can, and the sysadmin can just blame the evil bean counters.

    --
    Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
    1. Re:How to recognize a good sysadmin by Some_Llama · · Score: 1

      "They obviously can't find a good sysadmin that can project future load on their servers and scale accordingly ;)"

      or recogniZe a literate webmaster.

    2. Re:How to recognize a good sysadmin by Minwee · · Score: 1

      Of course. The correct spelling throughout the English-speaking world is 'recognise'.

    3. Re:How to recognize a good sysadmin by ivanmarsh · · Score: 1

      You're assuming that the engineering and/or programming department bothered to tell the I.T. department anything about the project they're working on that might cause a future load.

      Sysadmin == Always the last to know (often after something's been in production for a month or two and is starting to fail), when he/she should have been the first.

      We can't fix what we don't know about.

    4. Re:How to recognize a good sysadmin by ultranova · · Score: 1

      Sysadmin == Always the last to know (often after something's been in production for a month or two and is starting to fail), when he/she should have been the first.

      That's why a good sysadmin runs his own intelligence network. Passively cooled gigaherts CPUs make surprisingly good replacements for red-hot irons, and if all else fails, you can always use earphones playing Macarena in an endless loop.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  14. CV? by bigdavex · · Score: 1

    If being a good programmer includes knowing what a CV is, then I'm screwed.

    Ah, it's the same as a résumé. I'm good now. Thank you, wikipedia.

    --
    -Dave
    1. Re:CV? by Chabil+Ha' · · Score: 1

      There, now you're a good programmer.

      Oh, wait.

      --
      We're all hypocrites. We all have hidden parts, it's the contrast between them that make us more a hypocrite than others
    2. Re:CV? by Freeside1 · · Score: 1

      A good programmer defines his/her variables (or abbreviations) before using them. Author of the article must not be one.

    3. Re:CV? by Two9A · · Score: 1

      Or perhaps the author lives outside the only country in the world which calls it a "resumé". Some basic awareness of the world comes in useful when you're a programmer.

      --
      xkcdsw: the unofficial archive of Making xkcd Slightly Worse
  15. Great Article! by Spinlock_1977 · · Score: 1

    I think this guy's take on things is totally right on. (Disclaimer: I suppose that's because I get top marks on his scoring system)

    --
    - The Kessel run is for nerf herders. I can circumnavigate the entire Central Finite Curve in a lot less than 12 parse
    1. Re:Great Article! by filterban · · Score: 1

      The fact that you're reading (and posting) on Slashdot actually makes you a very good candidate for his scoring system.

      Slashdot is a great place to learn about the world of technology. Only people with passion about technology really bother reading Slashdot - much less take the time to post and moderate.

      Now, I'm not saying all Slashdot users are good programmers - but they'd pass most of TFA's test without even being able to actually program their way out of a paper bag.

      --
      rm -rf /
    2. Re:Great Article! by computational+super · · Score: 1

      Yeah, that's the thing about that... I scored pretty high, too - but read the article again. Every "point" he makes is "I'm a great programmer because XXX - and XXX is how you recognize a great programmer!" I'd be curious to see a similar article written by somebody who wasn't biased towards pointing out why he, himself, is such a great programmer.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    3. Re:Great Article! by DuckDodgers · · Score: 1

      I think he's mostly right. I work as a Java programmer, I have worked as a C programmer.

      I don't learn a lot of new technologies or have a lot of exciting projects to describe that I built in my spare time. Not because I don't want to do them. I do want to do them. But I'm just too damn busy. I have a job, a long commute, a marriage to maintain, and kids. I even have a fitness program, although I'm lucky if I work out twice a week. By the time I can relax in the evening, I just can't concentrate on new material.

  16. They're out there, but scarce.... by get+quad · · Score: 5, Insightful

    After 15 years in IT, I've noticed that programmers as a lot typically cannot spell even the most basic 3-syllable words, so when you find a coder who actually spells properly get out your checkbook. Like it or not, being able to spell is a significant indication of character, especially the propensity for paying attention to detail (a trait you certainly want in a professional coder).

    --
    "To err is human, to mod Funny divine."
    1. Re:They're out there, but scarce.... by Anonymous Coward · · Score: 0

      what about grammer? Do not throw stones... you run on sentence dude...

    2. Re:They're out there, but scarce.... by SirGarlon · · Score: 5, Interesting

      As one of the elite few programmers who does know how to spell, thank you for noticing. I would say "take it as a good sign" rather than "get out your checkbook" but I'm just the cautious type I suppose.

      However - I can spell, and my brother can't. I believe this has more to do with the teaching methods in our respective elementary schools than with our inherent attention to detail. His school used an experimental method that I think failed him utterly - at a time before national standards were yet fashionable.

      --
      [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    3. Re:They're out there, but scarce.... by Nebu · · Score: 1

      After 15 years in IT, I've noticed that programmers as a lot typically cannot spell even the most basic 3-syllable words, so when you find a coder who actually spells properly get out your checkbook. Like it or not, being able to spell is a significant indication of character, especially the propensity for paying attention to detail (a trait you certainly want in a professional coder).

      If you're gonna use spelling as a criteria, be sure to keep in mind that there are a several variants of English (as well as just about every other natural language in existence), and while you might not consider "favour" to be a (the?) correct spelling of "favor", the programmer you're evaluating might, and this would not detract from the "attention to detail" argument.

    4. Re:They're out there, but scarce.... by codepunk · · Score: 3, Funny

      Perhaps because we spend our entire life typing shit like this...

      SomeStupidAssLongClassName clsSomeStupidAssLongClassName = new SomeStupidAssLongClassName();

      --


      Got Code?
    5. Re:They're out there, but scarce.... by Richard+Steiner · · Score: 2, Funny

      If you're gonna use spelling as a criteria, be sure to keep in mind that there are a several variants of English (as well as just about every other natural language in existence), and while you might not consider "favour" to be a (the?) correct spelling of "favor", the programmer you're evaluating might, and this would not detract from the "attention to detail" argument.

      Speaking as someone who works in an international company and regularly collaborates with technical folks in the UK and Australia, I strongly agree. Just because they have different spelling standards doesn't make them incorrect. Just wrong. :-)

      Sorry, I mean different. :-) :-)

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    6. Re:They're out there, but scarce.... by Crayon+Kid · · Score: 1

      I usually put this another way: if they can't do well in their native language, how can they be expected to do well in programming languages?

      --
      i ate crayons when i was a kid and now i have two braincells and the blue ones taste nicer
    7. Re:They're out there, but scarce.... by mdielmann · · Score: 1

      But there is the key consideration that, while there may be multiple correct ways to spell a word, there are innumerable incorrect ways to spell a word. I can happily accept favor or favour, but faver or fayver isn't going to cut it. Equally bad is the inappropriate use of words: there/they're/their, accept/except, to/too/two, etc.

      --
      Sure I'm paranoid, but am I paranoid enough?
    8. Re:They're out there, but scarce.... by fireboy1919 · · Score: 2, Insightful

      To go further, I've never met a talented programmer who didn't write well. I have a theory.

      Programming languages are languages. If you understand them, and you're not just shoving out snippets, then a programmer is a linguist.
      So a programmer is a person that spends a very considerable portion of their day thinking of how to say things to a very, very stupid entity that doesn't understand his native language (a computer). So he has to have fantastic clarity of thought in the language translation department - especially if he's regularly using more than one programming language.

      The only notable exception to this is low-level programming - assembly and pure C. That contains so little actual structure in and of itself that it more closely resembles a math construct than a language. So I think you can get pretty good at the low level stuff without affecting your writing capabilities.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    9. Re:They're out there, but scarce.... by skrolle2 · · Score: 0

      Oh, I type a few letters of that and then ctrl-space to let my IDE fill in the rest for me, including giving good suggestions for variable names. :-)

    10. Re:They're out there, but scarce.... by xero314 · · Score: 1

      What the fuck does spelling or even grammar have to do with the ability to program?

      Sorry, but this statement that spelling is a sign of character is just way off base.

    11. Re:They're out there, but scarce.... by Doctor+Faustus · · Score: 1

      Like it or not, being able to spell is a significant indication of character, especially the propensity for paying attention to detail
      I have pretty good instincts for grammar and spelling, but that's just an indication that I grew up reading a lot. That may be indicative of a person you want, or it may just be indicative of someone whose father always took over the TV to watch something boring (football, TV news, etc.).

    12. Re:They're out there, but scarce.... by ZorbaTHut · · Score: 1

      "Grammar".

      --
      Breaking Into the Industry - A development log about starting a game studio.
    13. Re:They're out there, but scarce.... by intangible · · Score: 1

      Mmm, capitalization and punctuation.

    14. Re:They're out there, but scarce.... by Hotawa+Hawk-eye · · Score: 1

      It's even worse when there are typos on the resume of a candidate for a QA position. If you're applying for a position where one of the main job responsibilities is detecting errors, at the very least you should make sure there are none on your resume.

    15. Re:They're out there, but scarce.... by Falesh · · Score: 1

      I agree. My spelling is pretty good but it will never be perfect because I have Dailysex (ed: Dyslexia). Chronic fatigue stopped my education, in science, back in 1996 but in 2006 I gained the energy to study again and I started to teach myself programming. Since then I have learned PHP, C#, Java and general web stuff like CSS & (X)HTML. I've made a game, blood bowl, from scratch in C# then ported it to Java.

      I consider myself to be a good programmer, or at least a programmer with potential to become good. At no point have I felt that my Dyslexia has held me back, in fact I think it has probably helped. Everyone has strengths and weaknesses, focusing in on just one aspect is a poor way to judge a person.

    16. Re:They're out there, but scarce.... by rtaylor · · Score: 1

      I'm nearly thirty and had very poor spelling until a couple of years ago. Every time I made a mistake I would type out the word 100 times correctly. Each mistake in those 100 times would require 100 additional typings.

      It has helped significantly. Grammar, however, I still find to be a confusing topic.

      --
      Rod Taylor
    17. Re:They're out there, but scarce.... by Abcd1234 · · Score: 1

      Question: are you a heavy reader? I've always suspected that, for the most part, those with proper spelling and grammar developed the skills, in part at least, by reading frequently. Personally, I believe I have at least passable grammar, yet I've spent little time overtly developing it. On the other hand, I've been reading all my life... I don't think that's a coincidence.

      So, that said, if you don't read that much, I'd suggest spending time doing just that. You never know, it might just help.

    18. Re:They're out there, but scarce.... by glitch23 · · Score: 0

      After 15 years in IT, I've noticed that programmers as a lot typically cannot spell even the most basic 3-syllable words, so when you find a coder who actually spells properly get out your checkbook. Like it or not, being able to spell is a significant indication of character, especially the propensity for paying attention to detail (a trait you certainly want in a professional coder).

      I've noticed a large percentage of programmers who can't or don't type properly. They type fast but they don't use standard typing form (home keys, proper fingers pressing keys, etc.) and basically do a fast hunt/peck which mainly consists of pecking. That percentage goes up when I expand my statement to include more than just programmers. I think the cause of this is just an issue of the more senior people where I work probably never had a typing class and maybe taught themselves how to type. All they did was memorize where the keys are but not how to use them.

      --
      this nation, under God, shall have a new birth of freedom. -- Lincoln, Gettysburg Address
    19. Re:They're out there, but scarce.... by Tablizer · · Score: 1

      Like it or not, being able to spell is a significant indication of character

      I'm sorry, but that's utter bullshit. One trait CANNOT be a strong indicator of lots of other traits. Humans are more complex and varied than that. It is one factor to consider among many.

    20. Re:They're out there, but scarce.... by tgv · · Score: 2, Insightful

      I'm not particularly fond of the spelling/grammar wars, but ... Although your spelling is fine, punctuation and grammar are lacking. Here is a rewrite:

      - As one of the elite few programmers who does ...
      "Elite few programmers" is ungrammatical and superfluous (an elite is a small group by definition); "Who does" refers to a single person, but the phrase and context make clear that you are speaking about programmers in general, so "As one of the few programmers who do know how to spell" is better.
      - Add "I" before "thank you", or write "A thank you ... from one of the few".
      - Add a comma before "I suppose".
      - The hyphen after "However" should also be a comma.
      - you should put hyphens or commas around "I think".
      - Remove the comma before "and" or add one before "but".
      - "- at a time ..." is written in a way that is normally used to add a contrast ("At a time when foreign tourism to the U.S. is heavily down, the State Department has just raised the incoming visa fee to $131"). However, it just supports the context here, so "but this was at a time" would have been better.

    21. Re:They're out there, but scarce.... by Anonymous Coward · · Score: 0

      Surely you mean "chequebook"?

    22. Re:They're out there, but scarce.... by 12357bd · · Score: 1

      After 15 years in IT

      IT's already finished? or do you need 15 years more? :)

      --
      What's in a sig?
    23. Re:They're out there, but scarce.... by Anonymous Coward · · Score: 0

      More like....

      LongClassNameWhichMakesSense obj = new LongClassNameWhichMakesSense();

    24. Re:They're out there, but scarce.... by Anonymous Coward · · Score: 0

      Sorry but that's rubbish. Two of the best programmers I've worked with can't spell to save their lives. Doesn't mean they can't pay attention to the details that matter for the code to work.

    25. Re:They're out there, but scarce.... by legirons · · Score: 1

      It doesn't help when the programming language or library forces you to use incorrect spellings

      e.g. "glSetColor"

    26. Re:They're out there, but scarce.... by Anonymous Coward · · Score: 0

      Not really. Compare that to

      obj = sensible_name()

    27. Re:They're out there, but scarce.... by owlstead · · Score: 1

      Yeah, Eclipse is nice isn't it :)

    28. Re:They're out there, but scarce.... by meringuoid · · Score: 1
      I'm nearly thirty and had very poor spelling until a couple of years ago. Every time I made a mistake I would type out the word 100 times correctly. Each mistake in those 100 times would require 100 additional typings.

      Rokku Rii, is that you?

      --
      Real Daleks don't climb stairs - they level the building.
    29. Re:They're out there, but scarce.... by morkk · · Score: 1

      first rule of leet programmers - they never acknowledge they're leet.

      bzzzzzt thanks for playing

      BTW your UID is waaaaaaaay to high for you to be anywhere close to elite ;->

    30. Re:They're out there, but scarce.... by The+One+and+Only · · Score: 1

      No, I don't think Kelsey Grammer is a very good programmer at all.

      --
      In Repressive Burma, it's not just your connection that dies. slashdot.org/comments.pl?sid=314547&cid=20819199
    31. Re:They're out there, but scarce.... by The+One+and+Only · · Score: 1

      What the fuck does spelling or even grammar have to do with the ability to program?

      Attention to detail and the ability to apply proper syntax have everything to do with the ability to program. I'm not sure how people are able to program without those two traits.

      --
      In Repressive Burma, it's not just your connection that dies. slashdot.org/comments.pl?sid=314547&cid=20819199
    32. Re:They're out there, but scarce.... by Max+Littlemore · · Score: 1

      pubic void foo()

      // heh heh ... pubic

      --
      I don't therefore I'm not.
    33. Re:They're out there, but scarce.... by xero314 · · Score: 1

      What the fuck does spelling or even grammar have to do with the ability to program?

      Attention to detail and the ability to apply proper syntax have everything to do with the ability to program Attention to detail and proper syntax have what all to do with spelling and grammar?
    34. Re:They're out there, but scarce.... by The+One+and+Only · · Score: 1

      Attention to detail and proper syntax have what all to do with spelling and grammar?

      Everything. English has syntax rules just as any other language, and being unable to remember and properly apply them (part of what we call "poor grammar") suggests an inability to properly apply syntax rules in general. Likewise, spelling correctly shows that one has the ability and the desire to pay attention to detail, in this case, the detail of standardizing the way a sequence of symbols is organized to denote specific words. If you can't be arsed to write English correctly why should you be trusted to pay proper attention to write code correctly?

      --
      In Repressive Burma, it's not just your connection that dies. slashdot.org/comments.pl?sid=314547&cid=20819199
  17. The Title is Way Off the Mark by FreeKill · · Score: 5, Insightful

    I think the author of this article is way off the mark. The title should have been "How to recognize a programmer who's likely to work 18 hours for very little pay." Almost all of his points boil down to the fact that he thinks all good programmers are the ones that can pad out their resume with 900 technologies and eat, sleep, and breathe programming. I can't even begin to tell you how many absolutely amazing C++/Java/Python programmers I've met who I can almost guarantee have never even touched Ruby before. Just because a programmer doesn't go out of their way to try out every single new technology that hits the market doesn't diminish their abilities at those they do use. The author of this article is clearly looking for a programming work horse that he can throw unreasonable expectations on and toss new technology buzz words at until their head explodes. Guess that's probably what you need when you plan a startup and only want to hire one guy to do the work of 10...

    1. Re:The Title is Way Off the Mark by Anonymous Coward · · Score: 0

      What you're saying is sort of true however those programmers that write in every langauge aren't much different than that amazing C++ programmer that's never touched Ruby. The difference is the C++ programmer hasn't tried yet. If you told him to write something in Ruby could he do it? If he can adapt and learn other languages quickly that means he's good, if he can't and has to go to school for 4 years to learn Ruby then he's just a trained monkey who can write code that he's learned but if he has do do something unique he'll get stuck.

    2. Re:The Title is Way Off the Mark by Anonymous Coward · · Score: 2, Insightful

      "Fear not the man who practices 10,000 techniques one time but respect the man who practices one technique 10,000 times" -- Old Chinese Saying

      Updated:
      "Fear not the programmer with lots of languages used only at the basic level, but respect the programmer who uses few languages but knows them well."

    3. Re:The Title is Way Off the Mark by bkr1_2k · · Score: 4, Insightful

      Thank you. My first thought was, the article was written by a coder who needed to justify how good he is. I've known plenty of damn good, dare I say great, coders who never spent time at home coding after they got out of school. They know/knew a couple of languages well, and left the other languages to people more qualified to handle them. I'd say that's a higher mark of someone's skill is asking them how they'd handle something that they don't list on their resume, or list as having some experience with, but not mastered.

      Excessive use of computers may imply passion, but it also implies early burn-out for most coders I've met. The ones who last and are also good, by contrast, are just the opposite. They work hard at work, and they leave it alone when they're at home. Of course there are exceptions to all rules, and certainly to anecdotal evidence, but that's been my experience thus far.

      --
      "Growing old is inevitable; growing up is optional."
    4. Re:The Title is Way Off the Mark by inKubus · · Score: 1

      Ruby sucks anyway. I'd rather see cross-platform experience: Windows, Linux, MSSQL, MySql, PCs, Mainframes, Accounting, Security, and other knowledge. This is for a business programmer. For an academic/science programmer, I'd want to see some serious math and CS background. 99% of programming on the business side is going to be accounting, database or some combination thereof. The other 1% is graphics for the CEO's fancy dashboard. Unless you're a games programmer. But nowadays the presentation code is so easy a graphic designer can easily do it himself, with a real programmer in the back to do the accounting and database stuff.

      --
      Cool! Amazing Toys.
    5. Re:The Title is Way Off the Mark by magical_mystery_meat · · Score: 1


      This is my philosophy. However, you'd be surprised how many people in this business still think that a programmer doesn't give a shit because they don't code at home.

      Nobody works harder than me when I'm at work. But, at home I do other things (my hobbies tend towards the arts). I only code at home when there's something that I really want to learn and my job isn't giving me the opportunity to learn it. I don't go to user groups or do any of that stuff. About 60% of the programmers that I encounter think that because I do this that I don't have enough passion for software and have told me that they'd never hire me themselves. Their loss. I know what I'm capable of.

    6. Re:The Title is Way Off the Mark by Anonymous Coward · · Score: 0

      All of the programming languages he suggests programmers should know are ruby/rails frameworks.

    7. Re:The Title is Way Off the Mark by merreborn · · Score: 1

      he thinks all good programmers are the ones that can pad out their resume with 900 technologies and eat, sleep, and breathe programming. I can't even begin to tell you how many absolutely amazing C++/Java/Python programmers I've met who I can almost guarantee have never even touched Ruby before. Just because a programmer doesn't go out of their way to try out every single new technology that hits the market doesn't diminish their abilities at those they do use
      I got a totally different impression from that section. As I understood it, the point was good programmers should have a demonstrated ability (and desire) to learn new things. Not that they should have learned everything.

      Also, it was in no way limited to languages. A good C++ programmer may not have branched out beyond C++ in decades, but in the last decade, they've probably picked up new libraries, had to deal with XML output from *something*, and maybe started working with a different database. These are all new technologies, in the sense intended in the article.

      Programming is all about learning. If your code interacts with anyone else's code, be it a new library, a webservice, a database, or a file format... Then you have to learn how that "technology" works.
    8. Re:The Title is Way Off the Mark by ConfessWitch · · Score: 1

      I thought the point he made was more along the lines of a good programmer is more likely to experiment with other technologies apart from the ones they need directly related to their job or education. More than likely because they are simply interested in the technology. Which reinforces his main point; good programmers are programmers because they enjoy it and it interests them.

  18. Geez ... by B3ryllium · · Score: 1, Redundant

    According to my own self-analysis, I fall into the "Good Programmer" category. Go me!

    However, I still need to improve in a few areas; namely, my "variety". PHP, C++, Java, C#, BASH, VDS ... there's room for a few more languages in there. And maybe a few technologies along the way. :)

    1. Re:Geez ... by wed128 · · Score: 1

      I find that a good programmer does not hang on any language. Programming, as a skill, is not language-Dependant.

      A good programmer should be able to pick up new languages quickly enough that 'not knowing them' is a non-issue.

    2. Re:Geez ... by Xentor · · Score: 1

      I partially agree...

      Most languages are similar enough conceptually that any decent programmer can learn a new one fairly quickly. You won't be a wizard in a week, and you'll probably still need to keep a reference close at hand, but you'll be able to do what you need/want to do.

      Of course, you do need a base, or weird syntax will throw you off... You've got the procedural/OOP languages, some of which use COBOL-style syntax (Like VB), some of which are bracket-land (Pascal/C/Java)... You've got functional languages like LISP or ML... You've got the weakly-typed scripting languages like Perl or LUA... You get the idea.

      Once you've messed around with one or two of each general type, picking up a new language is like getting a new toy to play with. Or a new tool in your arsenal, if you're not into the whole "having fun" thing.

      --
      "The amount of intelligence on this planet is a constant. The population is growing." -Cole's Axiom
    3. Re:Geez ... by jammo · · Score: 1

      Agreed, plus the ability to quickly adapt to sometimes quite notably differing programming styles such as naming conventions, etc.

    4. Re:Geez ... by Anonymous Coward · · Score: 0
      A good programmer should be able to pick up new languages quickly enough that 'not knowing them' is a non-issue.

      Yeah, but have you tried reading what passes as documentation from most companies?
      e.g. learning about Visual Basic is mostly about learning what the documentation doesn't say.
      (For example UBound(x) throws an error if you pass it an empty array - what is the approved method of working out if the array is empty? - VB has the concept of null, empty, nothing, nil, zero dimension arrays, zero size arrays, etc. etc.) It can take a long time to become productive in a language that has 15 years of kludges layered on top of each other.

      And if you buy a reference book for some language/library/runtime like that, it can be 2000 pages or more. Just reading that would take significant time, and this is time not spent on analysing the problem domain and learning more about the customers' requirements.

      On the other hand you can learn Brainf**k in 5 minutes but you are unlikely to be very productive with it either...

  19. Works in IT, too by stinerman · · Score: 1

    No MSCE, you say? No thanks! We'll take this trained monkey over someone who actually groks computing systems and associated software.

  20. One step to knowing if they are great by Anonymous Coward · · Score: 1, Funny

    Ask them if they are a Slashdotter. If they say yes... move on and ask the next guy.

    1. Re:One step to knowing if they are great by Anonymous Coward · · Score: 0

      Fair enough, I guess.

    2. Re:One step to knowing if they are great by tzot · · Score: 1

      Actually, there is a very simple and most scientific way to know whether the interviewee is a good programmer (also applicable to whether your girlfriend just had an orgasm): ask them to answer under oath.

      --
      I speak England very best
    3. Re:One step to knowing if they are great by darthflo · · Score: 1

      Programmers tend to be technical people tend to be well-educated people tend to be people who approach problems in a scientific way tend to be people who don't really give a fuck about religious oxpoop.
      Asking an agnostic to swear with some deity as their witness is about as clever as asking a fish to swear, under penalty of death thru drowning. I'm not saying there's no religious programmers, but I sure think they're a rather minor group.

  21. Useless article-Petsmart. by Anonymous Coward · · Score: 0

    "Has anyone considered that maybe selling pet food over the internet is simply less efficient that the distribution system build by companies like Wal-Mart?"

    By that metric everyone who doesn't have a duplicate of Walmart's setup is a failure. Now you know why everything's headed for China.

    "I would be much more interested in an article that tells programmers how to recognize good business people."

    When was the last time anyone here interviewed the company they ended up working for? Good resume, right?

    1. Re:Useless article-Petsmart. by bkr1_2k · · Score: 3, Interesting

      Every time you have an interview, it should be their interview as much as yours. That's the point of an interview, to see if you fit together, not just to see if they think you fit them, but to see if you think they fit you too.

      Every interview I've ever had, I interviewed my interviewer as much as they interviewed me. Maybe I'm strange, but it's worked so far.

      --
      "Growing old is inevitable; growing up is optional."
    2. Re:Useless article-Petsmart. by Arkus · · Score: 1

      Absolutely you should be willing to ask questions along the lines of "why should I come to work for your company". They should sell their company to you as much as you are selling your skillset to them.

      --
      -- Just my $0.02 worth...
    3. Re:Useless article-Petsmart. by wizzat · · Score: 1

      About 18 months ago. I was tired of working for a big telco, so I set out on a hunt for a new job - and met with overwhelming success. At my first couple of interviews, I was the one being interviewed. I took days off for the phone interviews, let them ask the questions, and lead the conversation, etc. They were all suitably impressed and I got some on-site interviews, but it was going to take a little bit of time to make up their mind for me or the next Joe candidate. In the end, some of those companies didn't call back with an offer (though some did).

      However, I'd done a really bang-up job of writing my resume, and requests for phone interviews/on-site interviews were literally pouring in. For every ten jobs I applied to, I was getting a phone call back (And no, I didn't do any spamming or lying on my resume!). The response was so overwhelming that my wife began to act as my secretary and schedule phone interviews for people to even talk to me. I ended up taking 2-3 days off per week and had phone interviews scheduled for 10-12 hours per day.

      I think there was a certain freedom in already having a job, and even more from having such an overwhelming response rate. So I started interviewing THEM, and it worked remarkably well. The conversations became much more two sided, and I'd ask the things that I was most interested in about their company (and a little bit of research prior to the interview makes all the difference in the world!). I think I was treated with more respect this way, and it brought more interesting things into the interviews.

      For a bit about me: although I've had a rather substantial impact (usually almost completely revolutionary tbh) on every project I've ever worked on, I wouldn't call myself an "excellent" programmer - merely fairly decent to pretty good. I simply don't have the experience to be "excellent" (3-4 years of experience now). I think my biggest failing is being too ambitious in my goals and designs. Sometimes I improve throughput or efficiency by 500-1000%, and sometimes all the work seems to have no effect at all. =/

      Anyway, all of that was to say that interviews are a two way street. Always interview your interviewer, because you'll just waste your time and theirs if you accept a job you'll be unhappy with. Besides, sometimes the company that interviews best in your book is the one that pays the most too. ^_^

      -Mark

    4. Re:Useless article-Petsmart. by ray-auch · · Score: 1

      > When was the last time anyone here interviewed the company they ended up working for

      Every ****ing time.

      And the ones I didn't end up working for.

      And I've had to "sell" the company many times when interviewing (in fact, if I don't have to... it's probably not an interview that will end with an offer).

    5. Re:Useless article-Petsmart. by sgartner · · Score: 1

      I really have to ask: What the heck is "spamming" on a resume?

    6. Re:Useless article-Petsmart. by Anonymous+Brave+Guy · · Score: 1

      I think your modesty is your most endearing quality.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    7. Re:Useless article-Petsmart. by wizzat · · Score: 1

      Well, it wasn't really meant to sound like I'm any sort of really great programmer - because I'm not. I really meant it when I said "all that time spent for no apparent result". I've spent a week trying to mess with performance for no gains at all (and sometimes, performance degrades as a result). Other times, I get truly spectacular results. I'm hoping that experience makes me consistently better than I am now.

      Really, though, the entire point of the story was to relate that even the average programmer can make themselves attractive to recruiting staff. If it didn't do that... it should have. =/

  22. That they aren't primarily a programmer? by SCHecklerX · · Score: 5, Interesting

    The best I've met have degrees in English, Physics, Engineering, or Math. They then focused on the programming aspect as needed to create tools that helped them and their peers to streamline their work. As that focus became more of a primary job function, they honed their skills and methodology around maintainable code, version control, security, documentation, reusable modules, etc.

    I'm guilty of being one of these types myself, but have since moved up to project management around security type stuff after having taught those who replaced me the things that I learned through experience.

    1. Re:That they aren't primarily a programmer? by 3waygeek · · Score: 1

      I'd have to agree with you -- I have degrees in Physics, Engineering, and Math, with an unofficial minor in English.

    2. Re:That they aren't primarily a programmer? by jimbolauski · · Score: 1

      I can't even count how many times I've spent the week fixing and optimizing crappy code written by you math types, just because you used FORTRAN back when it was new and now use Matlab in no way makes you a competent programmer.

      --
      Knowledge = Power
      P= W/t
      t=Money
      Money = Work/Knowledge so the less you know the more you make
    3. Re:That they aren't primarily a programmer? by Anonymous Coward · · Score: 0

      I haven't worked with people from all those fields but I can tell you that engineers suck as programmers. It really is a shame too because so many engineers seem to do at least a little programming. Out of the probably hundreds of engineers gone programmer I have only met two or three worth their salt as software developers. Seriously, I don't know what it is but engineers tend to produce poorly written bug riddled code for some reason.

    4. Re:That they aren't primarily a programmer? by Anonymous Coward · · Score: 0

      "These are the best, and I'm one of them or was one until I started training them"

      Gag

      The best I've met point out (cleverly disguised) self congratulatory posts as offensive, and, paradoxically, I'm one of them.

    5. Re:That they aren't primarily a programmer? by Anonymous Coward · · Score: 0

      The best I've met have degrees in English, Physics, Engineering, or Math. They then focused on the programming aspect as needed to create tools that helped them and their peers to streamline their work. As that focus became more of a primary job function, they honed their skills and methodology around maintainable code, version control, security, documentation, reusable modules, etc.

      I think most people have the opposite experience: people who have degrees in other areas don't care about what good software development is about and simply bang out crap code via whatever means necessary (copy/paste, dirty hacks, etc). They don't care about the best way to do things because they just want to get it done and move on.

    6. Re:That they aren't primarily a programmer? by Anonymous Coward · · Score: 0

      Maybe if you worked a little harder on Math, you could count the number of times.

    7. Re:That they aren't primarily a programmer? by SCHecklerX · · Score: 1

      As a security professional who has written firewall code for a Fortune 500, I'd have no problems seeing how my 'crappy code' stacks up against anything you have written. I've also written assembler for control systems that control wind tunnels, measurement tools, and satellite and aircraft realtime stability simulation when I was earning my undergraduate Aerospace Engineering degree. Unlike you, however, we had to teach ourselves those tools. Compared to the EE (we also had to create our own circuit boards), though, the programming was pretty simple. Simple to do right, as you are blathering on about.

      Really. You expect me to believe that you have to be *taught* how to properly write code? That was what the basics of english and math in GRADE SCHOOL were for. For the specifics, buy a book and learn from others who are solving the same problems.

      Sorry for the lengthy flame, but attitudes from people^H^H^H^H^H^H l33t h4xx0rz like yourself whose head would probably explode if they had to derive a simple fluid dynamics or staged rocket equation have been really annoying the hell out of me lately.

    8. Re:That they aren't primarily a programmer? by Khelder · · Score: 1

      I completely agree that there's value in having someone around who knows about what the software will actually be used for and isn't all about writing code just for its own sake. (That's fun, but not why businesses pay developers.) And some people with non-computer science backgrounds are awesome software developers.

      However. I would definitely want at least a few people on my team with some training in CS, and some or most with training in software engineering. (This training could be from a degree program or not.) Why? CS because it's good to have someone around who knows some theory about stuff like algorithms, programming languages, etc. Software engineering because there's a *lot* more to writing software than just typing lines of code. There's requirements gathering, designing/architecting, testing, and build management, just to name a few activities.

      I am mainly talking about building software by a team of programmers, for people who are not the team. In other circumstances, this may not apply (as much).

    9. Re:That they aren't primarily a programmer? by Anonymous Coward · · Score: 0

      I disagree. At a MINIMUM you want someone who got an associate's degree focusing on computer programming. It's much better to select someone with a bachelor's degree in computer science (a full four year degree).

      Although it is true you can hand anybody a book on Java and teach them the language itself, they won't be GOOD at programming without the academic background. Things computer science students learn that literature students (for example) do NOT include:

      * data structures (important if you want efficient memory use)

      * file structures (important if you want good file I/O)

      * algorithms (important if you want efficient code)

      * operating systems design (important if you want code that doesn't hit your O/S limits by surprise)

      * compiler design (applies to parsing, mostly, but good practice in software development)

      * assembly language (teaches you how the computer actually "thinks" so you don't do stupid things that eat up all your resources)

      * database design (so you actually understand WHY normalization is important, and use 3NF instead of the newbie's "flat files on Oracle" approach)

      Show me someone who didn't start off in computer science and I'll show you a guy whose code is hard to read, hard to modify, inefficient and buggy. The database tables they design are flat file systems, their backend code is entangled with the GUI, you don't get much code reuse...

      It all ends in tears.

      NOTE: Yes, I am aware that it IS possible to learn all these things by purchasing and reading the related textbooks, but I've never -- EVER -- met anyone who did that. Not once. Although I HAVE met some old-timers who got it through OJT in mainframe shops...

      Let the flames commence!

  23. Ask him... by Anonymous Coward · · Score: 5, Funny

    Ask him if he's a good programmer in klingon

    1. Re:Ask him... by Namlak · · Score: 1

      Ask him if he's a good programmer in klingon Or Klingon++
    2. Re:Ask him... by Anonymous Coward · · Score: 0

      Does toying with var'aq count?

    3. Re:Ask him... by Anonymous+Brave+Guy · · Score: 1

      Ask a Klingon if he's a good programmer, and he's likely to remove your head with a bat'leth for insulting his honour...

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  24. Easy. I see a damn good programmer when ... by 140Mandak262Jamuna · · Score: 4, Funny

    ... I am brushing my teeth in the morning in the mirror, grinning back at me, saying what a great programmer I am. :-)

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:Easy. I see a damn good programmer when ... by Jeremi · · Score: 3, Funny
      I am brushing my teeth in the morning in the mirror, grinning back at me, saying what a great programmer I am. :-)


      If nothing else, being able to grin, talk, and brush your teeth all at the same time is indeed a rare talent :^)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  25. Two things by Shados · · Score: 5, Insightful

    That list is very, VERY good in my opinion, if obvious (but not so obvious to HR people).

    However, two things came to mind. The variety part. Yes, its good. I personally am fluent in just about all programming environments known to man, more data storage techs than I can count, too many business types, and things vastly different, like business intelligence and biology (I started as a programmer for R&D biotech softwares).

    The catch is, that tends to show that you're too much everywhere. You can take one "enterprise" stack, let say J2EE or .NET, and even if you worked with them constantly for the next 10 years, learning something new every day, you'd still have more to find (and by more, I mean significant things). Thats why once, in .NET, I coded some tool, it took let say 50000 lines of code, then learned about some obscure feature that could have reduced it to 500. Yes, 500.

    Those are things that makes the difference between a project taking a year, and one taking a month. Once I realised that (and people hiring know this just too well), I specialised in a 2-3 technologies (specialising in just one isn't enough to keep track of the evolution of the field), and I've been a much better developer since then.

    You need to have a broad VIEW of the field, but still be specialised, to be efficient at what you do. Knowing 10 technologies equaly well means that you don't know either of them at their peek.

    Secondly, the certification thing. We all know certification means crap, I agree, but like the article does state, it helps hiring people to spend less time interviewing you about the obvious. If you say you're Java certified, they can only ask 2-3 questions to make sure you truly are, and forget about testing you on a Java hello world. That way, they can spend more time testing you on the important stuff, like actual development expertise, as opposed to syntax knowledge. Also, having a lot of certifications, if you can prove you didn't brain dump them, can go in the "broad knowledge" and "passionate" part. If you have 12 certifications with 12 technologies, well, it shows you like knowing your stuff (those tests can sometime ask for pretty pointy things...)

    1. Re:Two things by phasm42 · · Score: 4, Funny

      Thats why once, in .NET, I coded some tool, it took let say 50000 lines of code, then learned about some obscure feature that could have reduced it to 500. Yes, 500.
      Arrays?

      I kid, I kid!
      --
      "No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
    2. Re:Two things by nine-times · · Score: 1

      That list is very, VERY good in my opinion, if obvious (but not so obvious to HR people).

      I don't know... the whole "seems smart" thing seems obvious enough. There aren't many jobs where "seems rather unintelligent" is counted as a positive.

    3. Re:Two things by Shados · · Score: 1

      Actually, it was that weird thing called a "compiler". I was coding my solution in straight bytecode. (just kidding, obviously).

      As a sidenote, I don't remember when's the last time i used an array in .NET unless some API required it or returned it. IEnumerable interface and collections for the win :)

    4. Re:Two things by Red+Flayer · · Score: 3, Funny

      Knowing 10 technologies equaly well means that you don't know either of them at their peek.
      At first I was going to make some snide comment about grammar, since 'either of them' should refer to ten technologies.

      Then I re-read it... you wrote 10, not ten.

      Nice.
      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    5. Re:Two things by Shados · · Score: 1

      Since english is about as far from being my first language as it can come...this is totally going "woosh" over my head. Think you could explain it in more details, because it sure sounds funny.

      PS: I'm serious.

    6. Re:Two things by Rakishi · · Score: 1

      You used "either" which does not grammatically work with "ten." It does grammatically work with "two" and 10 in binary is "two."

      It's a common joke, see for example:
      http://www.thinkgeek.com/tshirts/frustrations/5aa9/

    7. Re:Two things by Anonymous Coward · · Score: 0

      Either is between 2 things, with more things you can use "any" rather than "either".

      10 (in binary) is of course 2 so "either" would then be correct.

      (No joke is funny once it has needed explaining.)

    8. Re:Two things by Shados · · Score: 1

      Oh...yeah...of course! I...err...yeah, definately always use base two when typing numbers!

      I fail at geek for not picking that up.

    9. Re:Two things by Kaenneth · · Score: 1

      "You need to have a broad VIEW of the field, but still be specialised, to be efficient at what you do. Knowing 10 technologies equaly well means that you don't know either of them at their peek."

      10? either?

      You sir, have been thinking in Binary way too much.

    10. Re:Two things by Anonymous Coward · · Score: 0

      Nah, I think he meant loops.

    11. Re:Two things by Anonymous Coward · · Score: 0

      No... the obscure thing he discovered is the iteration.

    12. Re:Two things by Larry_The_Canary · · Score: 1
      Ok, so there are others I could have replied to but this just happened to be the ump-teenth post praising the article and modded +5 insightful that moved me to action. (I apologize if the post after the quote below actually was insightful but I stopped reading after the first sentence.)

      That list is very, VERY good in my opinion, if obvious (but not so obvious to HR people).

      This article sounds very good and says some things that are right but _really_ misses addressing the most important fundamental knowledge a good programmer needs to have: development process. Sure, someone can be familiar with 100+ different bleeding edge technologies but unless they know how to build maintainable, correct code they are absolutely useless as a programmer in a professional setting.

      Here's why: Programmers change jobs. If someone one else can't come in a make sense of what the last guy was doing (even if the new guy knows jack shit), the old guy was not a good programmer and now your vision is going to be set back and could possible fail simple because of a staffing change. Here's the kicker, the original programmer could have perfectly satisfied the criteria set out by the article.

      This article is most useful, once you have narrowed the field, to separate the great from the good. But before that point is reached you need to find out if the person sitting across the table from you knows what version control is, has worked on a sizeable open source project before, knows what the Composite pattern is, knows what the spiral model is, knows how to comment code correctly, etc. Basically, the fundamentals of _professional_ coding.

      Being able to write an ad-hoc instant messenger using a thousand different technologies means diddly-squat unless you know the fundamentals of writing quality code. That's where this article falls short.

    13. Re:Two things by Shados · · Score: 1

      I agree with you, though one thing: One has to make the difference between a programmer and a developer. Those are 2 distinct jobs, with a fairly clear cut difference between the two.

      A programmer is a "technology specialist", one that knows how to use his hammer to do what he's told. A developer is one that knows what the hell to do with a hammer... When I said the article was good, it was to find a good programmer. Because of the nature of the education system, a typical software development team is made of a lot of people who know how to code algorithms, state machines, and debug a Linux kernel, and 1, maybe 2 people who actually understand the relationship between business processes, requirements, and that code...

      It really should be the other way around (Teams would work a lot better if everyone knew how to develop good software and understood the business, and 1-2 people handled the more obscure, scientific or technology intensive part of things, but thats now how universities decided it would be....much easier to train professors to teach things that never change I guess).

      The article shows how to detect someone who can take orders and get it done from people who say "I know how to code in Java!" and then are puzzled in front of the javadoc as soon as they see an annotation or a generic. Finding a good -developer- is a whole other beast, as in the current age of software development, its almost impossible. The good ones are already taken.

  26. Lots of ways by hey! · · Score: 4, Funny

    First, there is razor sharp intellect and subtle, erudite wit. There's the way he has of getting right to the heart of matters, his effortlessly quick and authoritative opinions on an astonishing array of subjects. Of course it is conceivable that some might miss his unconventional but undeniable good looks, although that might stretch the bounds of credibility.

    But in a pinch you can go with the way that he often goes about wearing your pants or the fact that he stares back at you from the mirror every morning. That's a dead giveaway.

    Of course if that fellow's unavailable, most people end up settling for somebody who, while utterly lacking his extraordinary qualities, nonetheless agree with as many of his opinions has he has cared to express.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  27. Passion != "Spare Time" by Anonymous Coward · · Score: 5, Insightful

    The first category is crap; "passion" is often mis-identified (as in the case of the article) and linked to what people do in their spare time.

    The idea that not programming in your spare time makes you a poor programmer is abjectly false and amazingly stupid considering the amount of complaints within the industry about working hours, laundry-list job listings, industry only for the young and unmarried, etc.

    I've known too many counter examples to debunk this; people who would talk on end on how "great" and wonderful a technology was only to mis-use it to the detriment of the business and the customer. People who had no lives; bragging about what they did at home, what OSS projects they were working on only to get fired for not being able to understand or structure requirements, not having enough domain knowledge of the industry they were working in, or not being able to meet the customer's needs.

    Frankly, I work 50+ hours a week and the last thing I want or feel a need to do is look at a f*cking computer when I go home. And this comes from someone who got a Master's in CS while working full time; led implementation of new technologies and languages within the group.

    It sure as _hell_ doesn't mean I don't have passion for what I do.

    1. Re:Passion != "Spare Time" by MightyMartian · · Score: 2, Interesting

      Frankly, I work 50+ hours a week and the last thing I want or feel a need to do is look at a f*cking computer when I go home. And this comes from someone who got a Master's in CS while working full time; led implementation of new technologies and languages within the group.


      One of the best programmers I ever knew wrote and maintained a large Cobol-based Point-of-Sale program for MS-DOS. It was an incredibly good product, with all sorts of hooks for all sorts of POS-based equipment, right down to pump controllers for gas stations. He had an office, worked there, but when he went home, he went home. It's tough in this day and age to do that sometimes, but I really envied the way he actively divided his world between work (development, marketing, support) and home (family and recreation).
      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Passion != "Spare Time" by Traf-O-Data-Hater · · Score: 1

      I wish I had mod points for your comment.
      I ran his commentary through the W3C validator and found an error. Since he started at 9 years old (which in his opinion makes him obviously so good) I think he should have used his leisure time to fix it and make it perfect before he put it up rather than waste time with his family or hobbies. He's obviously just not "passionate" enough.

    3. Re:Passion != "Spare Time" by keeboo · · Score: 1

      Frankly, I work 50+ hours a week and the last thing I want or feel a need to do is look at a f*cking computer when I go home. And this comes from someone who got a Master's in CS while working full time; led implementation of new technologies and languages within the group.

      It sure as _hell_ doesn't mean I don't have passion for what I do.

      That's not passion, you merely like what you do. You may even like it a lot, but certainly no passion here.

      Now if you wanted to state that dealing with IT even during your freetime is not positive/healthy/whatever, that's a different matter.

    4. Re:Passion != "Spare Time" by DoofusOfDeath · · Score: 1

      Frankly, I work 50+ hours a week and the last thing I want or feel a need to do is look at a f*cking computer when I go home. And this comes from someone who got a Master's in CS while working full time; led implementation of new technologies and languages within the group.

      It sure as _hell_ doesn't mean I don't have passion for what I do.

      Oh, I'm sorry. This is "seething rage". "Passion" is third door on the left. Cheerio!

    5. Re:Passion != "Spare Time" by Anonymous Coward · · Score: 0

      In a way I agree. Why can't passionate programmers also have lives?

      One thing that has puzzled is the fact that in many other industries the experts work through their careers as a "day job". Yet they still are top notch and get paid well. A paper engineer doesn't get home and start designing paper machinery, does he? Why is that IT-experts should also waste their freetime, and will it always be that way?

  28. fear by psbrogna · · Score: 2, Funny

    I was going to read the article but I didn't because I'm too afraid that there's going to be pictures of what good programmers look like. Let's face it, we're not the chic-est demographic on the planet.

    1. Re:fear by linguizic · · Score: 1

      Oh, come off it, I'm a very attractive man, with good hygiene. But I've just been too busy to get married. So if there are any ladies reading this, here's my craigslist personal.

      --
      Does this sig remind you of Agatha Christie?
  29. Why do good programmers need strong opinions? by Chernboyl · · Score: 3, Insightful

    This is a serious question. I totally agree on every point except that a "great programmer is uncomfortable using a technology he doesn't feel is right". Two developers can be great but be completely at odds. Wouldn't the 'better' programmer say, "Perhaps I don't feel right because I don't know enough about it?" Strong opinions about certain technologies, in my experience, signifies a degree of ignorance and imbalance; and they didn't learn it correctly, extensively, or in the right context. In my opinion, a great programmer is more open-minded, allowing a non-biased filter to consider technologies he doesn't "feel is right." Am I right?

    1. Re:Why do good programmers need strong opinions? by psbrogna · · Score: 1

      Amen. I strongly believe you're right. I would add though that sometimes there's a legitimate subconscious aversion based on experience. That's no excuse though- it should be raised to the surface and discussed openly in lieu of foot stomping.

    2. Re:Why do good programmers need strong opinions? by BotnetZombie · · Score: 1

      I agree that a good programmer should be able to work with technologies that he/she is uncomfortable with. However, voicing concerns is often recognizing that the tool is not so good for the job. For example, a few years ago there was blatant overuse of J2EE+XSLT - many complained but grudgingly used what was their companies norm. You're right that in some cases negativeness to technologies unknown can be an indicator of ignorance and imbalance, and I might add also of stubborness and and unwillingness to learn something, out of pure prejudice. Guess what I'm trying to say is that things in this matter aren't necessarily very clear cut.

    3. Re:Why do good programmers need strong opinions? by Anonymous Coward · · Score: 0

      Maybe I am just seeing it differently than written, but when I read it I felt TFA was using

      * Opinionated about which technologies are better for various usages
      * Very uncomfortable about the idea of working with a technology he doesn't believe to be "right"


      as characteristics of a good programmer to be in contrast to Happy to work with whatever technology you've picked, "all technologies are good" characteristic of a bad programmer. Thus I took out a "right tool for the right job" kind of thing.

      For example I would feel uncomfortable writing a program that involves reading serial I/O and performing mathematical computations on the data in VB or java rather than something like C++ or MATLAB (depending on the problem). Whereas the career programmer would use whatever he is told to use or whatever he learned in school.

  30. They forgot the most important one by mrhifibanjostrings · · Score: 2, Funny

    The list seems to be lacking one of the more important ways of identifying a good programmer -- the uncanny ability to quote from the entire works of Monty Python.

    1. Re:They forgot the most important one by Javaman59 · · Score: 1

      uncanny ability to quote from the entire works of Monty Python.
      Yep, that's much more valuable than being able to "program" (yuk) in something called "Python" (yuk, again, whatever that is).
      --
      I'm a software visionary. I don't code.
  31. Straight Out of "Big Whoop Magazine" by CheeseburgerBrown · · Score: 1

    What is this, Digg? The content of that blogspam is obvious. Good programmers, the revelation goes, are interested and excited by their fields, and intelligent self-starters.

    Garsh!

    Is there a field where these qualities wouldn't indicate a superior performer? Obviously you want to hire someone engaged by the subject matter on a personal level, obviously it would help if they had some brains to back up their passion, and obviously a demonstrated knack for going above-and-beyond is a good sign.

    I'm fairly sure still would apply to engineers, pilots, designers, editors, choreographers equally as well.

  32. The problem with recognizing people. by Anonymous Coward · · Score: 1, Insightful
    This was rather sudden, Alice thought: but, after such a very strong hint that she ought to be going, she felt that it would hardly be civil to stay. So she got up, and held out her hand. `Good-bye, till we meet again!' she said as cheerfully as she could.

    `I shouldn't know you again if we did meet,' Humpty Dumpty replied in a discontented tone, giving her one of his fingers to shake: `you're so exactly like other people.'

    `The face is what one goes by, generally,' Alice remarked in a thoughtful tone.

    `That's just what I complain of,' said Humpty Dumpty. `Your face is the same as everybody has -- the two eyes, so --' (marking their places in the air with his thumb) `nose in the middle, mouth under. It's always the same. Now if you had the two eyes on the same side of the nose, for instance -- or the mouth at the top -- that would be some help.'

    `It wouldn't look nice,' Alice objected. But Humpty Dumpty only shut his eyes, and said `Wait till you've tried.'

  33. self eval by kisrael · · Score: 1

    You know, the one I worry most about is in terms of self-evaluation is "Self-teaching and love of learning", at least when in terms of technology for its own sake. Its sort of an unfortunate side-effect of "Hidden experience"; few flavor of the month technology on the server side seems to bring much new to the table, and so the learning curves just annoy me without a good promise of effort/reward ratios.

    Sort of like my disinterest in OSes, and PC hardware; I want that stuff to just get out of the way of the interesting interaction work to be done.

    ---

    Also, yeah, I tend to be a lot less worried about finding hidded gems of programmerhood than avoid the good-resume bozos.

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    1. Re:self eval by shredswithpiks · · Score: 1

      Shouldn't good programmers have an interest in or knowledge of OSes and PChardware? It's important to know the consequences of your algorithms.

    2. Re:self eval by kisrael · · Score: 1

      Not necessarily any more than, say, a good runner should be concerned about the factory process behind their sneakers.

      It's all about layers of abstraction.

      I think it's appropriate for a programmer to only be interested when there's either a direct effect on what they're doing, or as an academic interest.

      (And for that, check out Petzold's book "CODE", great stuff about designing the equivalent of an early-80s PC from telegraph-wire level logic on up)

      I've had my share of low level stuff, programming an original Atari game in 6502 assembly a few years back. But I treat my desktop PC as a blackbox for opening up IDEs and browsers and Shells (to ssh to the server where the real stuff happens ;-) and I prefer Windows as a desktop OS (usually Linux as a server, but in practice I'm not doing the admining for those) because I think they have put more attention into an easy to use UI that, thanks in part to mu familiarity with it, stays out of my way (my Linux desktop at work, I can't right click and copy an image to the clipboard. Why not? I dunno. Maybe I could learn to do it, but it's easier to just work around and save all this crap to temporary files on the desktop)

      I just don't want to end up like that one "technical VP" of my first company. No matter WHAT level of analysis was appropriate, he'd always ask, what's going on at the socket layer?

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  34. And they missed the most important... by Zate · · Score: 0

    someone who knows what software security is and how to code securely.

    --
    IT is Dead. The industry is Shot Join Others Who Feel Your Pain http://www.internalstrife.com/
  35. How many hours are there in the day? by hbean · · Score: 1

    Before I started working, ie, while I was in college and was looking for a job post college, I had quite a few little projects going. I had a small application that joined together multiple P2P protocols (BT and DirectConnect, iirc). I had a little game in the style of Escape Velocity (the mac classic). I had my own chat channel bot that could work with any chat protocol you built plugins for.

    Then I got a job, and found out my interest in these little projects dwindled off to zero. After 8 hours of programming, and in total a 10 hour day, between lunch and a commute, trying to get some sleep, enjoying other hobbies, and attempting to keep a somewhat active social life there just wasn't time or interest in working on them.

    Now I'm living in my own house and theres even more tasks that need to be completed.

    How many hours does this guy think there are in a day if he is defining a bad programmer as someone who only programs as a day job? Does he live off cheeto's in his parents basement?

    --
    "Give someone a program, frustrate them for a day... Teach someone to program, frustrate them for a lifetime."
    1. Re:How many hours are there in the day? by jeff4747 · · Score: 1

      I believe you're misinterpeting his point. It's not that good programmers are always working on side projects throughout their lives. The side-projects point is that programming isn't just a 9-5 job for this person.

      The existence of side projects, at any point in the programmer's career is a good thing. That shows they like (or liked) programming enough to do some just for the fun of it.

  36. Programming demo reels by Cathoderoytube · · Score: 1

    In the animation industry animators put together demo reels which show all their best work. I imagine programmers could do sort of the same. They could cut together all their best pieces of code and set it to some techno music.

    --
    I have nothing compelling to say
    1. Re:Programming demo reels by slackmaster2000 · · Score: 1

      What's a good song for a workflow engine?

    2. Re:Programming demo reels by Cathoderoytube · · Score: 1

      Come on Eileen

      --
      I have nothing compelling to say
  37. You Lose Points by Baby+Duck · · Score: 1

    Thank you for using CV all over the summary and failing to define CV in the summary.

    --

    "Love heals scars love left." -- Henry Rollins

    1. Re:You Lose Points by iggymanz · · Score: 1

      only priests should speak dead languages

    2. Re:You Lose Points by BeanThere · · Score: 1

      There's a great new site called google.com that makes it easy to look up words you don't know.

    3. Re:You Lose Points by ray-auch · · Score: 1

      Sometimes you write to your target audience. In this case the submitter was writing about recruitment, for people involved in recruitment, and therefore assumed the reader would know what CV meant (in that context). As would I.

      Oh, and note that I _am_ aware that "résumé" is used interchangeably for CV in some places. That is the point - I would expect anyone involved in technical or professional recruitment to know both terms.

      [Aside: did "résumé" get substituted at all in the USA around the time of "freedom fries" or did the great leaders not know that the word is French ?]

  38. Re:Easy: If they speak Hindi or Mandarin by Anonymous Coward · · Score: 0

    My experience suggests exactly the opposite. Those programmers seem to be insanely smug and completely infallible in their own minds. At least, if an American programmer makes a mistake, the American programmer will own up to it. Indian/Chinese will just argue incessantly about how the bug couldn't possibly have been theirs - even when it's just faster to fix the bug than it is to argue about it.

  39. Baloney by MarcoAtWork · · Score: 5, Insightful

    from the article, what's the #1 'negative'?

    Negative indicators:

    * Programming is a day job


    excuse me, I am a really good programmer, did the whole 9 yards growing up as a stereotypical geek (not into sports, into programming way before it was fashionable to do so, from basic, to turbo pascal, to z80 assembly etc.), I lived and breathed programming and computers for many years of my life, however now I am in my late 30s and I try to have a much healthier work-life balance, I don't see why this should be a negative at all.

    If I wasn't working at a computer dev job I would probably be coding a bit for fun, but there is no way that nowadays you could get me to talk shop for hours just for the fun of it.

    Also

    In fact, the great programmer will be the one talking your ear off about a new technology that you haven't even heard of, explaining to you why you must use it in your business, even if none of your staff knows how to use it. Even if it's a technology he doesn't know how to use yet.

    gimme a break, for me this would be a huge no-no, it would be the hallmark of somebody going after every possible latest fad, instead of focusing on proven tools for the job. Yes, there ARE cases where the bleeding edge is needed, but they are the exception rather than the rule: if I have a business I want code that is mantainable, and that, if the 'wiz developer' gets hit by a bus, is understandable by others (read, it's not such a niche skill that if I lose that person my business will fold because it's impossible to find a replacement).

    Good programmers will have a tendency to talk your ear off about some technical detail of what they're working on (but while clearly believing, sincerely, that what they're talking about is really worth talking about). Some people might see that as maladapted social skills (which it is), but if you want to recognise a good developer, this passion for what they're doing at the expense of social smoothness is a very strong indicator.

    this is another totally bogus criteria: in nowaday's workplace soft skills (being able to work as a team expecially) are just as important; gone are the days of the single programmer in his ivory tower producing code that only himself can understand. You need to have a team, and if I have to choose between person A who is, say, a programmer worth 100/100 but has 0 social skills, and person B who is, say, worth 80/100 but gets along with everybody, I will choose person B every time. A gelled team is greater than the sum of its parts, but you can't gel a team full of primadonnas and socially maladapted people.

    If you are such a 'smart' programmer you will realize that 'programming' social interactions is as important as programming computers, and you will apply your skills to that as well, making your workplace a lot better and likely improving drastically your career prospects.

    If you're hiring for a small business, or you need really smart developers for a crack team that will implement agile development in your enterprise, you should disregard most formal qualifications as noise.

    give me a break, being smart and having no formal qualifications is a lot worse than being smart AND having formal qualifications. I have a M.Sc. in Electronic Engineering: have I used anything I learned in university in my career? Not at all. Have those years broadened my horizons, introduced me to a lot of different concepts and methodologies that made me a much, much, much better programmer than I was before? You bet. Your 'crack team in agile programming' will likely end up implementing something O(n^3) (because they have no clue about computational complexity) while your university educated buzzword-averse reliable programmer will give you O(n^2) or even O(n log n) because they've been there and done that many times before in a lot of different other contexts.

    THESE to me are the signs of a great programmer, experience, good grasp of architectural con

    --
    -- the cake is a lie
    1. Re:Baloney by C_Kode · · Score: 2, Insightful

      excuse me, I am a really good programmer

      Rule #1, an ego doesn't make you a good programmer. ;)

    2. Re:Baloney by poot_rootbeer · · Score: 1

      Negative indicators:
                      * Programming is a day job


      I *do* have other interests besides programming, you know. If I spent as much time hacking code at home for fun as I do in the office for money, when am I supposed to get my gaming/hiking/drumming/cooking/woodworking/TV watching done...?

    3. Re:Baloney by Zebra_X · · Score: 1

      Rule #2: The code doesn't write itself.

      "I lived and breathed programming and computers for many years of my life, however now I am in my late 30s and I try to have a much healthier work-life balance, I don't see why this should be a negative at all."

      Work-life balance = less code written.

      So you might be a great programmer - but you just don't write enough great code for me to hire you. There are other environments where this is perfectly fine. Beware the indians and russians that don't have a work life balance, who write more code, and are potentially more motivated.

      Hopefully you've made the transition to an architect role that is less demanding with better compensation...

      "If I hired according to this post I'd basically be getting a bunch of socially clueless high school dropouts who talk code all day long, have no life, and just live for the latest buzzword framework that comes out, bah!"

      Well, if they can make all those frameworks work, and well - what's the problem?

    4. Re:Baloney by MarcoAtWork · · Score: 1

      Rule #1, an ego doesn't make you a good programmer. ;)


      I agree :) on the other hand false modesty doesn't make you good either: I know I am definitely not the best coder out there, however I also know I am definitely good, as evidenced by my career path, reviews, you name it. Believe me, I cringed a bit when I wrote that, but at the same time pretending I suck (when I don't) would not be good either...
      --
      -- the cake is a lie
    5. Re:Baloney by Anonymous Coward · · Score: 0

      his is another totally bogus criteria: in nowaday's workplace soft skills (being able to work as a team especially) are just as important; gone are the days of the single programmer in his ivory tower producing code that only himself can understand.

      I am sorry to say that to this day I create code that only I understand. (The main reason it is hard to understand is that I write code in an esoteric language.) My employer doesn't like it too much, but I'm productive, the code works, and I have very few bugs. Also, I rarely work with a team. This is mainly because my code involves matrices and calculus and only two other programmers in our small company have a degree (one philosophy BS from MIT and another Ph.D CmpSci).

    6. Re:Baloney by Caine · · Score: 1

      So to sum up: you've gotten older, gone lazy, need to excuse not being the best coder with being "softer" and you don't want to feel bad about the time you spent getting a degree.

    7. Re:Baloney by Xentor · · Score: 4, Interesting

      I do agree with you on the "programming is a day job" part, mainly because I'm going through the transition myself. I used to spend a lot of time at home playing around in different languages, writing my own games and utilities, endlessly writing and rewriting websites... Now, I just want to go home and vegetate in front of a game or the TV...

      The change? Full-time job. After spending a full day programming to earn my paycheck, it just becomes mentally separated from what I do in my spare time. I kind of miss the old college days when I could just spend hours and hours doing it for fun, but now I just want to zone out.

      As for the new technology part, I somewhat agree... A good programmer shouldn't be ranting about how everything MUST be done on Ruby-on-Rails, because that's the new fad (Yes, I realize it no longer is. That's the point)... A good programmer will look at a new technology, look at the needs of the project/business, and decide whether or not that technology is a good fit. If it's a major improvement that fixes existing problems, then he'll start pushing it.

      On the other hand, when you're interviewing a programmer, and ask them about some personal project or technology they worked with, getting your ear talked off is a good sign, because this ties into the whole "passion" part. If they find this project or tech interesting enough to ramble on about, this is probably someone who's in the industry because they enjoy it, not because their high school guidance counselor told them it pays well.

      So, on to social skills. Yes, you need to be able to communicate with and get along with other programmers, even those who aren't on the same level. Apart from that, the importance varies depending on the person's role. If they're going to be one programmer on a large team, working off design documents and style conventions, then it's not that important. If they're on a smaller team, and will be working directly with the business side to design parts of the application, then social skills become a necessity. Of course, if you find someone who just wants to sit in a dark room apart from the rest of the team, and just silently deliver code modules to them, then you might want to look elsewhere.

      Qualifications... Degrees... I think the article was basically preaching against certifications, and in that respect I agree entirely. I don't care if someone passed a certification test by Microsoft or Sun... That means they know how to work with one specific area of technology, well enough to pass a test once. It doesn't say whether they can think for themselves, or adapt to a new situation.

      On the other hand, an undergrad degree can be a good thing. You don't learn how to program in college (Well, I hope not), but you do learn how not to reinvent the wheel. You learn some standard algorithms, data structures, and methodologies, and you learn about lots of things that you'll consider useless at the time (Natural sciences, higher maths, etc), but will still influence the way you think. A master's degree or doctorate, well, I don't know... I've worked with PhDs who couldn't think outside the smallest box, and I've worked with a few who could work miracles. A dropout might be a bad sign (Though not a disqualifier, depending on other factors), but I wouldn't trust a PhD to necessarily be better than an MS or BS.

      In short, you make some good points, but you're leaning toward the other extreme. Remember, you're looking for a programmer, not a corporate executive. This is about looking past the doublespeak and self-promotion and determining whether someone can write quality software.

      On a side note... The phrase "working yourself out of a job" is starting to look really scary... I shouldn't have automated this place so well that I have nothing to do but post on slashdot...

      --
      "The amount of intelligence on this planet is a constant. The population is growing." -Cole's Axiom
    8. Re:Baloney by MarcoAtWork · · Score: 1

      So you might be a great programmer - but you just don't write enough great code for me to hire you.


      I don't think I've ever in my career worked with anybody who was able to keep high output AND high quality AND all the time. In general the people who worked all the time spent a significant portion of their time fixing bugs they introduced due to not getting enough sleep etc., and people who had high quality in the end tended to be a wash with people with high output due to differences in the bugfixing/integration phase.

      If this was a PHB forum I would be expecting comments along the lines of 'who cares about quality', 'who cares about if coder xyz dies of a heart attack at 45 because they don't have time to work out or eat well and are always at work', 'let's outsource everything, have you seen how much less we can spend if we outsource to China' etc. etc. etc. but I would think that people that actually do work in the industry and have for a while have realized that today's outsourcing is yesterday's working new graduates to death, with about the same quality level for code produced etc.

      Hopefully you've made the transition to an architect role that is less demanding with better compensation...


      depending on the project I tend to wear both hats, I have done full-on architecture for several months in a row only in one case, and although it was very enjoyable (and we did a really good job, there were two of us) I still had fun actually implementing the prototype and selected parts of the final design afterwards. I am not sure I would be able to work as architect full time without ever writing any code, going from architecture doc to architecture doc, unless there was a sizeable amount of prototyping.

      Well, if they can make all those frameworks work, and well - what's the problem?


      because, if you have been in that situation, often you end up with code that works well for what you specified in 1.0, but that is basically unmantainable and unexpandable, and often unsupportable (when said framework is not the buzzword-du-jour anymore, you find bugs in it, and nobody is interested in fixing them).

      If you use anything that's not a well known 'standard' with an active development community, when you decide to write a product using it you basically also decide that you will be mantaining said toolkit/framework for the life of your application. If I am writing, say, a vertical app for a hospital to do certain things, most of the time the espected life of the application will be measured in several years, if not over 10 (I think my bank was still using an ad-hoc app written for OS/2 as recently as last year), which means that your framework needs to be able to cope with that, to be around for that long, or that you have to plan dev time to fix framework issues for a long time to come, with the risk that you won't find domain experts later on.

      Everybody can whip up quickly a throwaway demo/prototype with whatever framework-du-jour is going on: if this is all you need to do, go ahead, hire some teenagers to whip it up for you, give it to some of the junior programmers so they can get some experience, but if you need reliable, mantainable, extendable, quality code, I do think you'd be better served to hire people with qualifications, experience, social skills and so on.

      But then again nowadays a lot of people just look at cost and are not willing to spend enough to do things right the first time around, only to end up with software much much much worse than it could be. When you see companies not batting an eye about spending $X dollars on marketing schwag and having their devs work in windowless cubicle farms like rats in a cage you can guess where their priorities are: from this perspective Joel Spolsky has it down right, with his advocating for single offices, nice monitors and all the things that make working easier and more productive. This is also why I sometimes wonder about google with their insistence on open plan, but anyways, we're going OT here.
      --
      -- the cake is a lie
    9. Re:Baloney by SanityInAnarchy · · Score: 1

      gimme a break, for me this would be a huge no-no, it would be the hallmark of somebody going after every possible latest fad, instead of focusing on proven tools for the job. Yes, there ARE cases where the bleeding edge is needed,

      The point is not that the bleeding edge is needed, but that it teaches you things -- people take the good ideas from Ruby on Rails, for instance, and fold them back into their own favorite environments, even Java.

      Also, it's an indicator of passion.

      --
      Don't thank God, thank a doctor!
    10. Re:Baloney by jeff4747 · · Score: 1

      , did the whole 9 yards growing up as a stereotypical geek (not into sports, into programming way before it was fashionable to do so, from basic, to turbo pascal, to z80 assembly etc.), I lived and breathed programming and computers for many years of my life

      And you are not the 9-5 programmer TFA was describing.

      TFA is talking about people who only ever programmed what was explicitly required of them by their job or their school. If you've ever done extra stuff, that's in TFA's positive column.

      I have a M.Sc. in Electronic Engineering: have I used anything I learned in university in my career? Not at all.

      That's TFA's point. Formal qualifications do not a good programmer make.

      Have those years broadened my horizons, introduced me to a lot of different concepts and methodologies that made me a much, much, much better programmer than I was before? You bet.

      The same could be said of nearly any university-level degree program. Mine was in microbiology, but my entire career has been writing software. Obviously I don't use the microbiology every day, but it was very useful in learing how to learn.

      (Such as learning what O(n) was and how to grab someone else's public domain O(n log n) algorithm instead of wasting my employer's money writing my own, be it O(n^2) or O(n log n). If they've been there and done that, they shouldn't be doing it again. They should be reusing what was already done, by themselves or others.)

    11. Re:Baloney by Zebra_X · · Score: 1

      Interesting comments...

      I don't think I've ever in my career worked with anybody who was able to keep high output AND high quality AND all the time.

      We have project based work - so it comes and it goes. Everyone needs downtime for sure. There are times - "go" time if you will - where sleep is a wish and the notion of being on an island alone for a year is a plesant one. During those times - we write quality code because it is what is expected of us and it is our job. We also do it quickly for the same reason. Quality code and speed is about discipline and not letting the dark side get to you. Oh, and Bawls too.

      today's outsourcing is yesterday's working new graduates to death, with about the same quality level for code produced etc.

      I would argue it's much, much worse than this. Depending on where you go, the code quality will be even worse, and will continue to be worse - there is no feedback mechanism to correct really poor coding, worse yet, problem solving abilities.

      If this was a PHB forum I would be expecting comments along the lines of 'who cares about quality'

      Quality is vital to the success of long lived applications, I agree. Though there are millions of examples of where quality does not matter. At the end of the day - if the application works properly the builders job got done. It is really an "artistic" decsison to persue the "proper" path. It may not have gotten done how you or I would like, but it works none the less. This why I think that many of the attributes raised in the article are valid - good engineering comes from a belief in a particular way of doing things. A system even. Those that don't care about the art and craft of programming are unlikely to produce an artistic product.

      I am not sure I would be able to work as architect full time without ever writing any code

      I don't think it is possible to be a good architect and not write code. As with houses, one must know the materials and it's capabilities before incorporating it into a new design. If you don't do very creative work, then perhaps you can get away with little coding, but the tech industry is not exactly static. Sometimes things don't work quite the way we think they should.

      If you use anything that's not a well known 'standard' with an active development community

      I don't, and I stay away from things like the plague. I also prefer to buy components where appropriate, especially for things where the amount of effort is clearly not worth the purchase price. Where I think I can reduce complexity and ease implementation I write my own frameworks.

      because, if you have been in that situation, often you end up with code that works well for what you specified in 1.0, but that is basically unmantainable and unexpandable, and often unsupportable (when said framework is not the buzzword-du-jour anymore, you find bugs in it, and nobody is interested in fixing them).

      I would argue that this is why you and I continue to be employed. We make sure that the project lasts, and that framework-du-jour is in fact a viable solution to the problem, and that it does not create a real hazard to the longevity of the project.

      The high school guys are perfectly acceptable so long as they a) write good code b) willing to learn c) are motivated. No one can know everything so that's why the more senior members can raise the quality of the work.

      Some high school guys are not going to want to raise the quality of the work - it's about finding those that have the innate talent and enthusiasm and perhaps got lost on the road that society deems the "proper" route through life.

      As an aside - there are some jobs that you need a CS major or someone with higher educational training (or someone with the correct on the job experience) - you need the math and the science that they were taught - these jobs are not for the high school guys - but then you wouldn't hire a baker to build you a new CRM

    12. Re:Baloney by MarcoAtWork · · Score: 1

      We have project based work - so it comes and it goes. Everyone needs downtime for sure. There are times - "go" time if you will - where sleep is a wish and the notion of being on an island alone for a year is a plesant one.

      oh, I do agree, I am not against the 'final push' type of thing, even in the best run projects 2-3 times a year you get to a point where most people have to work 10-12 hours a day for a week or two w/ends included, that's just the nature of software development I think. On the other hand the difference between a good and a bad company is how you deal with this, in good companies you get comp-time to use right after the milestone/release (1:1, for every hour you worked extra before, you get an hour off, so typically for two weeks of crunch you get a full week off, or even a little more), in bad companies you get no comp-time at all, and get reassigned immediately to something else with no downtime at all and be expected to still be 100% productive.

      there is no feedback mechanism to correct really poor coding, worse yet, problem solving abilities.

      I agree, one of the big issues of outsourcing is also that they have a huge, huge, huge turnover rate, so over the life of your project you might have people working on it being in a constant state of ramp-up and thus delivering poor quality software. I have trained my replacement at a previous company I worked for that decided to outsource our whole dev center to India, the folks were bright, and they did have some generic knowledge, but what they were given was some very specialized vertical software, and there was really no way for them to pick it up 100% in the limited 'handover' phase, not to mention that likely after a few months the people we trained moved on thus making things even worse.

      Though there are millions of examples of where quality does not matter. At the end of the day - if the application works properly the builders job got done.

      yes and no, yes, you 'got your job done' in terms of delivering that particular release. But software being the way it is (nobody is EVER happy with a software product, there will ALWAYS be requests for improvements and changes) if you don't do it right the first time when it's time to add functionality you end up in spaghetti hell... of course if you are job hopping then you never have to deal with this, hence why I think a sign of a good candidate is having at least one 3-4+ years position in one company, meaning that they had to deal with several lifecycles (upgrades, enhancements, etc.) of a software product.

      The high school guys are perfectly acceptable so long as they a) write good code b) willing to learn c) are motivated.

      I somehow disagree with this, because it is very hard to 'write good code' without a good solid foundation in computational theory and having worked on several things in university. Unless you want to just have a warm body working under the super close supervision of a senior dev or architect for several years, and even then in the end I don't think it'd work out as well. Call me education-ist, but I do believe that nowadays a B.Sc. in a scientific major (biology, chemistry, engineering, ...) is definitely worth pursuing for any developer that wants to go the junior-senior-principal-tech directory route. Of course if your ideal career arc is junior-senior-middle manager-manager then I think you can do well even with just a high-school degree and an evening-MBA.

      it's about finding those that have the innate talent and enthusiasm and perhaps got lost on the road that society deems the "proper" route through life.

      here we slightly disagree as well: the fact that somebody was able and willing to slog out a university degree, where everybody ends up with a significant % of coursework they hate, is a good indicator that the person will be willing to work

      --
      -- the cake is a lie
    13. Re:Baloney by JackStrife17 · · Score: 1

      excuse me, I am a really good programmer, did the whole 9 yards growing up as a stereotypical geek (not into sports, into programming way before it was fashionable to do so, from basic, to turbo pascal, to z80 assembly etc.), I lived and breathed programming and computers for many years of my life, however now I am in my late 30s and I try to have a much healthier work-life balance, I don't see why this should be a negative at all.

      While that may be true, you're posting on Slashdot, and while this may seem like a fairly innocuous act to you, to me it shows that you clearly have a lot more of that extra-workplace motivation than some people do.

      Of course, maybe you posted this from work and have in fact been wasting time all day on this inane bullshit, in which case I suppose that says something else ;)
    14. Re:Baloney by GaryPatterson · · Score: 1

      I think you're making an error by assuming that working longer hours produces code of the same quality.

      From my experience, the longer a person codes in a day, the worse the code is in the later part of the day. Sometimes people even have to spend a lot of time fixing their own errors the next day, wasting further time.

      I've even sent people home in the past because I've observed their quality of work declining rapidly after eight hours.

      Yes, it looks good to a manager to see their salaried staff putting in all sorts of (free) hours, but managers are starting to wake up to the concept that working twelve hours a day doesn't necessarily give twelve hours of quality code. Well, the smarter managers are waking up!

      As for Indians and Russians coding all the hours of the day... Well, I've worked with some Indians like that and not been impressed by their code quality at all. They may not be representative (I hope not!) but I've had several experiences like that now and have seen projects take about the same number of days to complete as we estimated here despite the extra man hours on the job.

    15. Re:Baloney by Erpo · · Score: 1

      loves technology != socially maladapted
      passionate != primadonna

    16. Re:Baloney by Anonymous Coward · · Score: 0

      From the article: Good programmers will have a tendency to talk your ear off about some technical detail of what they're working on (but while clearly believing, sincerely, that what they're talking about is really worth talking about).

      This can be an indication of a BAD programmer: obsessing about insignificant details instead of focusing on what matters. This means that the programmer has little feel for what is important, so their work will be concentrated in areas that do not improve the product or help the team meet the schedule. I find the intricacies of computers fascinating at times, but I try not to let that get in the way of doing real, practical, productive work.

    17. Re:Baloney by lysse · · Score: 1

      in nowaday's workplace soft skills (being able to work as a team expecially) are just as important; gone are the days of the single programmer in his ivory tower producing code that only himself can understand. You need to have a team, and if I have to choose between person A who is, say, a programmer worth 100/100 but has 0 social skills, and person B who is, say, worth 80/100 but gets along with everybody, I will choose person B every time.


      Why does this sound, to me, so much like "we know you guys created this field from nothing in ones and twos when people like us were telling you there was no point or market, but you can fuck off now, we're in charge and we Know What's Best"...?
    18. Re:Baloney by Anonymous Coward · · Score: 0

      Hey there, mister original? Where did you learn to reply that way? Your mother help you? Go suck off a rhino. You'll both enjoy it, until he gores you that is. At that point, all of slashdot will rejoice.

    19. Re:Baloney by Rakishi · · Score: 1

      If all you do is write code for work then by definition you have no time to learn new technology, experiment or improve your abilities in any way (such as learning more about the field).

    20. Re:Baloney by Anonymous Coward · · Score: 0

      gimme a break, for me this would be a huge no-no, it would be the hallmark of somebody going after every possible latest fad, instead of focusing on proven tools for the job.

      What you're forgetting is that if you always used "proven tools for the job" you'd still be programming in COBOL. You need the guys who go after the bleeding edge for any progress to happen.

    21. Re:Baloney by MarcoAtWork · · Score: 1

      bingo, this is one of the few good things google does for their employees, allowing them 20% of their time to research new stuff, because in the end the company benefits allowing all their employees to keep updating their skills: it makes for a much more motivated, happy and competent workforce.

      --
      -- the cake is a lie
    22. Re:Baloney by mtutty · · Score: 1

      Wow. Good response. It's uncanny how much that sounds exactly like me.

      I mean the good parts, not the socially-inept, agile-code-fu parts.

    23. Re:Baloney by GaryPatterson · · Score: 0, Redundant

      Hey, thanks for turning out! Nice to hear from another fan. Why not apply for one of my signed photos, or join my fan club?

  40. Develop your own questions. by Sub+Zero+992 · · Score: 1

    I always thought the Fizz Buzz test was quite interesting, never used it though.

    When hiring for web developers, I tend to ask where to put validation code for form input data. I hope to hear:

        * on the client before the form is sent (usability)
        * on the server (in case the client is fuzzing)
        * in the domain rules / check constraints of the db server (in case data comes from somewhere other than your app)

    But I never do. It's the candidates who haven't heard of the 3rd validation who don't make, and those who can argue their corner well who do.
    I guess the think to do is to develop your own set of questions to elucidate a candidate's strengths and weaknesses without trying to trap them.

    I once failed an interview for being unable to remember what the individual letters in ACID mean. I had forgotten what the "I" meant.

    --
    They who would give up an essential liberty for temporary security, deserve neither liberty or security - Ben Franklin
    1. Re:Develop your own questions. by liquiddark · · Score: 1

      While there are good reasons to have some elements of form input validation in the db, you're doing some pretty horrible, unmaintainable things to do it for every field of every form. A server-side validator can actually run the same JScript validator as a client using a virtual engine, or a generator can create both the server- and client-side validators automatically, guaranteeing they're doing the same work. That really doesn't work for the database validation. Your 3rd level of validation is a fool's game when it comes to maintenance.

  41. music by doug · · Score: 1

    Back in the 90s I observed that the best Unix Admins seemed to all like King Crimson, and that most of the good Perl people I knew liked The Who. I doubt if anyone could prove any sort of direct correlation here, but it is a touchstone that has served me well enough for over a decade.

  42. waste of time by nguy · · Score: 0

    Manipulating your resume is a waste of time: yours and your prospective employer's; people will figure it out when they interview you.

    1. Re:waste of time by mmkkbb · · Score: 2, Insightful

      How else do you get the interview in the first place?

      --
      -mkb
    2. Re:waste of time by Profane+MuthaFucka · · Score: 2, Informative

      You find a company that's interviewing, walk in, kill a guy in the lobby wearing a suit. Steal his suit, his resume, and his stupid grin. Go interview in his place, steal his job, steal his wife, kids, house, and life.

      And that's how I got my job.

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    3. Re:waste of time by Hal_Porter · · Score: 1

      Bring a gun and a cute kitten to the interview. Tell them to give you the job or they'll be washing kitten brains out of their hair for the next month. Odds on you'll get a cat person after a dozen tries or so.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    4. Re:waste of time by Two9A · · Score: 1

      Informative? I don't believe that's the mod Profane was going for ;)

      --
      xkcdsw: the unofficial archive of Making xkcd Slightly Worse
  43. Do you really want one? by Maximum+Prophet · · Score: 1

    A good programmer will try to refactor the bullshit out of your business processes. If you, Mr. Businessman, *are* the bullshit, you want to stay as far away from good & great programmers as possible.

    --
    All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
  44. TFA hosting server does not respond it seems by Anonymous Coward · · Score: 0

    slasdot'ed = DNS'ed?

  45. How would I recognize a good programmer? by IBitOBear · · Score: 1

    With green folding applause.

    But no, more seriously...

    A good programmer is interested in what makes a feature "neat", a great programmer is interested in what makes a "neat" feature inapplicable to a problem.

    Once you have determined that the person in question can program at all... (as in having asked him _once_ to code a very simple algo, with none of the stupid "I asked a stupid question to see if he'd catch it and correct me" interpersonal gamesmanship) you need to determine only three facts:

    1) is the programmer faster than his own ability to reason? Plenty of "passable" programmers can write far more code than they themselves can comprehend. You DO NOT want the guy who goes into a zen trance and spews code that he cannot explain or defend or debug.

    2) is the programmer capable of communicating his ideas effectively in venues other than code. This isn't _just_ the comment thing, but the comment thing is part of this. If you want the programmer to be of any value, and a "great" programmer is measurable solely by his value, then he has to be able to do more than crawl off into a hole and return with code. Programmers who cannot work and play well with others and who cannot colaborate on a project, limit their applicability and value to "functions only within the bounds of what will fit in the front of their attention span at any one moment."

    3) how well can the programmer cope with being wrong, in fact or just in inference? We are all wrong and code is always broken somewhere. A programmer who cannot face being told he is wrong, cannot face being _proven_ wrong. A programmer who cannot be wrong with aplomb and without denial or tantrum, is a worthless programmer, and worthless programmers are both "not good" and "not great." In short, code full of ego is code devoid of merit.

    There are exceptions to each of those guidelines, but there are no valid exceptions to all of those guidelines at once that are worth considering as worthwhile.

    There are secondary warning signs:

    -- Cannot work and play well with non-programmers.

    -- Doesn't think there is _any_ value to social norms.

    -- Always talks about what _they_ invented, never talks about what someone else invented.

    -- Thinks everybody else's code is crap (with the caveat that they think none of theirs is crap)

    -- Doesn't keep up with ongoing literature or developments in the field.

    -- Can tell you how (language X) sucks but cannot tell you who (language X) is perfect for.

    -- Says things like "I only program in C++" (or Java, or PERL, or Python). "I predominately program in C++" (etc) is okay, because specialization is often a sign of advanced experience, but beware it can just as easily be a sign of a one trick pony. This is a tough distinction to catch sometimes.

    -- Doesn't read/cant tell you the last book he liked or hated/has no non-computer related stories or experience. Computers model real things, be they accouting practices or particle physics. A programmer who only thinks about programming or computer games will quickly be out of his depth when brought to confront a real problem.

    -- Cannot laugh at themselves/too eager to laugh at others. A general symptom of someone who will limit every thing they engage in (not just a computer programmer metric, apply that to everyone.)

    -- Cannot unroll a loop. If they cannot explain why "while (X) Y;" is identical to the sequence "if (X) Y; while (X) Y;" and then they cannot explain how to partially unroll a loop so that you get "A; B; while(F) { C; D; A; B;} C; D;" from "while (F) {A; B; C; D; }" then they have never learned the mental and computational "origami" necessary to re-envision or re-evaluate the problem presented into a "better" solution.

    -- Isn't interested in what "the new guy straight out of school" has to say about what is happening. Thus they will be unable or unwilling to see when the new guy is making a mistake, and they will be unable and unwilling to entertain

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
    1. Re:How would I recognize a good programmer? by spkog · · Score: 2, Interesting

      "A; B; while(F) { C; D; A; B;} C; D;" from "while (F) {A; B; C; D; }" works only if the loop always iterates 2 or more times. If F is not true or F is true for 1 iteration, the proposed substitution is incorrect.

    2. Re:How would I recognize a good programmer? by Anonymous Coward · · Score: 0

      "A; B; while(F) { C; D; A; B;} C; D;" from "while (F) {A; B; C; D; }"
      I'm not entirely sure that you intended for those two to be identical... but they aren't.
      In the first instance, A and B will both be guaranteed to be executed, the while loop will run as usual and then C and D will also both be guaranteed to execute.
      If the second code was changed to "do {A; B; C; D;} while(F);" this would actually be identical, as the value of the expression F would be irrelevant as to whether A, B, C and D are executed at least once (whereas in a straight forward while loop this is not the case)
    3. Re:How would I recognize a good programmer? by ultranova · · Score: 1

      If they cannot explain why "while (X) Y;" is identical to the sequence "if (X) Y; while (X) Y;"

      It isn't. Checking X may have the side effect of altering the state of the program so that X checks true the next time, even if it checked false the first time. In that case, and assuming that X evaluated to false the first time, the "while (X) Y;" won't execute Y, while "if (X) Y; while (X) Y;" will; the first check ("if") fails but causes X to alter so that the second check ("while") to succeed and execute Y.

      It is, of course, possible for these sequences to be identical for some values of X, but not for all.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  46. The person is Way Off QA by Anonymous Coward · · Score: 0

    What I think some "I would like...[insert profession here]" is that one first must start with a good person and no I don't mean that just in a moral or ethical way (important as that is). Give me a good person and I can build any kind of specialist. Give me a bad person and it will not matter what I put on top.

  47. See previous article by tmcmahon · · Score: 5, Funny

    He can re-program a Tram system with a remote control.

  48. There's an easier way by edwardpickman · · Score: 1

    Just crack a can of Red Bull and wave it around. If he starts sniffing the air and looks more awake you've probably got a good one.

  49. I can't agree with all of this by khendron · · Score: 5, Insightful

    Some of the points made in this article are good, but a couple are way off the mark.

    He lists as a negative indicator *anyone* who considers programming as a "day job." I know quite a few programmers who consider programming a day job. They come into work at 9, they work for 8 hours, they go home at 5, and then they do something entirely different. But the code that they produce while at work is brilliant. They are extremely bright people who enjoy programming, but don't live and breath it. They would rather do something else while not at work.

    He lists as a positive indicator *anyone* who is passionate about technology. Sorry, but I've met a lot of people who are bubbling over with enthusiasm about programming, but can't code worth shit. These are the people dive headfirst into a programming job without any thought of design or architecture, and you end up with an application that uses half a dozen bleeding edge technologies, all bundled together with virtual duct tape, that disintegrates at the first input exception.

    --
    Life is like a web application. Sometime you need cookies just to get by.
    1. Re:I can't agree with all of this by NeuroKoan · · Score: 1

      Agreed. And in fact the article is full of generalities that will never be 100% correct in 100% of situations. The best coders and software engineers I know fly completely contrary to most of the article.

      Personally, I rely on a quick wit and dry sarcasm as a basis for determining good engineers. I don't know why, but for some reason the best engineers I know all have a wonderful sense of humor. I am guessing that it might be due to the fact that a quick, dry wit is indicative of a preternatural understanding of situations, surroundings and the complex way in which things work. It always seems that these types of people understand OO better (because they think in terms of how things interact, not the process of what to do next) and have a better understanding of what the business and/or user really wants, even when they themselves don't know.

      And to be honest, I read nothing in the article that makes me want to switch to his view of a good programmer over mine.

      --

      "However," replied the universe, "The fact has not created in me A sense of obligation."
    2. Re:I can't agree with all of this by MisterBlueSky · · Score: 1

      He lists as a positive indicator *anyone* who is passionate about technology. Sorry, but I've met a lot of people who are bubbling over with enthusiasm about programming, but can't code worth shit

      You, and a lot of other posters, don't seem to understand what the term positive indicator means.

    3. Re:I can't agree with all of this by Jack9 · · Score: 1

      Dry wit there, you must be "a good one".

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
  50. Indeed by sterno · · Score: 3, Insightful

    I started reading the article but when I got to this bit I realized they had nothing useful to say:

    what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it.

    Ummm, if you start a business thinking that simply hiring programmers to implement your clever idea would make a successful business, you've already failed. If you want to start a successful business, the first thing you have to do is actually know how to run a business. Having a clever ideas makes you clever, maybe, but it doesn't mean you know jack about managing a business. Hiring bad programmers is simply the natural conclusion of somebody that didn't know what they were doing in the first place.

    --
    This sig has been temporarily disconnected or is no longer in service
    1. Re:Indeed by AmaranthineNight · · Score: 2, Insightful

      If you didn't notice, that part there was in quotes, as in, it was something that somebody that was not the article writer said. Keep reading, and you'll see that the author of the article disagrees with the guy in the quote on a few points...

    2. Re:Indeed by MellowTigger · · Score: 2, Insightful

      I started reading the article but when I got to this bit I realized they had nothing useful to say: But... that wasn't the author writing, that was the author quoting Paul Graham. If you had bothered to continue reading, or at least skipping past the quote to read the next sentence that the author offered, you would have discovered...

      I disagree with Mr Graham on this one. You gave up too soon. *wag finger disapprovingly* Bad programmer, bad!
    3. Re:Indeed by Anonymous Coward · · Score: 0

      What kind of fucking retard are you? Seriously. The article is quoting somebody else in the text that you reference. The very first line after the quote is "I disagree with Mr Graham on this one." Spend less time jacking off to pictures of your sister and more time reading and thinking.

    4. Re:Indeed by mattpalmer1086 · · Score: 1

      Ummmm, the bit you quote was itself a quote from someone else. And if you'd read a bit further, you'd have discovered that the author disagrees with it.

    5. Re:Indeed by Phrogz · · Score: 1

      I started reading the article but when I got to this bit I realized they had nothing useful to say: ...
      You go on to quote what is, itself, a quotation in the article. No less, you only quote a bad looking part of the quotation. No less, it's a quotation by Paul Graham, who I personally believe has said a great many useful things. Were you only just skimming the article?
    6. Re:Indeed by Anonymous Coward · · Score: 0

      what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. Thank God that bad programmers never killed Microsoft!
  51. He? She? by AeroIllini · · Score: 5, Funny

    If your potential programmer didn't do any programming before university, and all his experience starts when she got her first job, she's probably not a good programmer. Apparently, a lot happened between university and that first job.
    --
    For security, the MD5 hash of this message and sig is 09f911029d74e35bd84156c5635688c0.
  52. It's not really "good" vs "bad" by Jaeph · · Score: 1

    I divide programmers into 3 groups: hackers, academics, and professionals. Imagine you try to read someone's code, and can't figure it out after a reasonable effort. You complain to the author, and they respond with:

    academic - "Take a class."
    hacker - "You're stupid."
    professional - "I'll clean it up."

    I know that's not a bullet-proof division, and of course this being slashdot someone will give me a lesson on "hacker" vs "cracker" and the general beauty of the programming art and whatnot. But I find these divisions tend to hold up a lot at work.

    -Jeff

    --
    Please learn the difference between a dissenting opinion and a troll before you moderate.
    1. Re:It's not really "good" vs "bad" by baboo_jackal · · Score: 1

      He he.. Excellent point. Unless your code is either:

      1) Not understandable by others, but only because it's so freaking godly and awesome that it exceeds the capacity of Human comprehension, or
      2) Understandable by others

      then you're not writing good code.

    2. Re:It's not really "good" vs "bad" by TheRaven64 · · Score: 1
      All of those answers can be valid. I've given something approaching the first when, after trying to explain the relevant code, I've discovered that the questioner doesn't have the required theoretical background to understand it. Typically, I will direct them to a good book or article on the subject (often something I've written) and tell them to come back when they've read it. If, afterwards, they still can't understand the code then option three might be applicable.

      While I'd try to avoid saying 'you're stupid,' it really can be the reason why people can't understand a bit of code. If you give a bit of code to a dozen people, and eleven of them understand it then the twelfth one might just be stupid.

      A really good programmer, of course, never needs to say the third, because they recognise ugly code when they've written it, comment it explaining that it's ugly and that they'll fix it later, and (most importantly) actually do tidy it before anyone else needs to understand it.

      --
      I am TheRaven on Soylent News
  53. CV = 105 by Anonymous Coward · · Score: 0

    It's Latin

  54. Write a C program that... by Spazmania · · Score: 1

    In the interview, on paper without access to a computer, complete this C function without making any additional function calls (i.e. no strlen, no malloc).

    char *reverse (char *buf) { /* Reverse the contents of the string buf. E.g. abcde becomes edcba. */
    }

    Try it. Sure you know how to do it. Any freshman CS major should know how to do it. But on the spot its harder than you expect. It may not identify you as a good programmer, but its remarkably effective at weeding out the poor ones. Its also pretty good at making them feel foolish for having wasted your time with a bogus resume.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    1. Re:Write a C program that... by Anonymous Coward · · Score: 1, Interesting

      char *reverse (char *buf) {
              int len = 0;
              while (buf[len] != 0) len++;

              for (int j = 0; j < len / 2; j++)
              {
                      buf[j] += buf[len-j-1];
                      buf[len-j-1] = buf[j] - buf[len-j-1];
                      buf[j] -= buf[len-j-1];
              }
              return buf;
      }

    2. Re:Write a C program that... by Anonymous Coward · · Score: 0

      Why am I returning anything if I am reverting the string in place?

    3. Re:Write a C program that... by Spazmania · · Score: 1

      The "int" declaration in the for statement is not so much a C thing, but I won't quibble. Adding/subtracting instead of using a temp variable is novel. Here's another one:

      char *reverse (char *buf) {
          char *front, *back, temp;

          for (front=back=buf; *back; back++);
          back--;
          while (back>front) {
              temp=*back;
              *back=*front;
              *front=temp;
              back--;
              front++;
          }
          return buf;
      }

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    4. Re:Write a C program that... by Spazmania · · Score: 1

      Why am I returning anything if I am reverting the string in place?

      Because I want to see how you react to a condition that doesn't matter.

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    5. Re:Write a C program that... by gnasher719 · · Score: 1

      In the interview, on paper without access to a computer, complete this C function without making any additional function calls (i.e. no strlen, no malloc).

      char *reverse (char *buf) { /* Reverse the contents of the string buf. E.g. abcde becomes edcba. */
      } And now the same thing, but assuming that the string contains UTF8 :-)

    6. Re:Write a C program that... by scotch · · Score: 1

      The "int" declaration in the for statement is not so much a C thing

      C99 isn't exactly new, where have you been?

      --
      XML causes global warming.
  55. They don't... by feepness · · Score: 1

    Write simple lists of ways to recognize good programmers?

  56. Point by point by SirGarlon · · Score: 5, Interesting

    I disagree with a lot of these points.

    * Passionate about technology * Programs as a hobby

    Reasonably good indicators

    * Will talk your ear off on a technical subject if encouraged

    Ability to yammer on about a subject one's audience does not care about is a weak indicator of programming ability and a strong indicator of poor communication skills

    * Significant (and often numerous) personal side-projects over the years * Learns new technologies on his/her own

    OK

    * Opinionated about which technologies are better for various usages * Very uncomfortable about the idea of working with a technology he doesn't believe to be "right"

    NO, NO, NO!

    A good programmer has an open mind and makes decisions after thought, study, and understanding the users' needs; not based on some knee-jerk personal prejudice.

    * Clearly smart, can have great conversations on a variety of topics * Started programming long before university/work * Has some hidden "icebergs", large personal projects under the CV radar * Knowledge of a large variety of unrelated technologies (may not be on CV)

    Negative indicators: * Programming is a day job * Don't really want to "talk shop", even when encouraged to * Learns new technologies in company-sponsored courses

    There is nothing wrong with taking advantage of company-sponsored courses. Taking advantage of classroom opportunities is just good time management (it can be easier to learn more, faster, in a well-taught course than in self-study).

    * Happy to work with whatever technology you've picked, "all technologies are good"

    So what you're looking for is a prima donna who will refuse to work in the environment you ask him to, and is insubordinate out of the gate? No. A good programmer will find the strengths of the technology you've picked and design a strategy that plays to those, rather than just telling you you've made a stupid choice and should have used his pet technology instead.

    * Doesn't seem too smart

    I don't know if it's ever a good idea to hire someone who "doesn't seem too smart."

    * Started programming at university

    That's a stupid criterion. Why someone starting programming is a lot more important than when

    * All programming experience is on the CV

    Inability to write a complete CV is hardly an indicator of competence. The author is biased in favor of people who started programming at the age of 9, as he did.

    * Focused mainly on one or two technology stacks (e.g. everything to do with developing a java application), with no experience outside of it

    Nonsense; depth of knowledge is as important as breadth of knowledge. Ability to justify 50 different buzzwords on one's resume doesn't make someone a good programmer. It is a lot better to talk about the problems the candidate has solved, than the technology used to solve them.

    --
    [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    1. Re:Point by point by Richard+Steiner · · Score: 1

      * Opinionated about which technologies are better for various usages * Very uncomfortable about the idea of working with a technology he doesn't believe to be "right"

      NO, NO, NO!

      A good programmer has an open mind and makes decisions after thought, study, and understanding the users' needs; not based on some knee-jerk personal prejudice.

      With all due respect, not all opinions and beliefs about technology are "knee-jerk" or were born in a vacuum.

      Many of those beliefs, biases, preferences, etc., are the product of years of hard experience trying to fit square pegs into round holes (mostly in vain) at the behest of others who didn't see the issues involved until the negative consequences were clearly demonstrated in a production environment. Not all managers understand that their technical people are serious when they say "it won't work"...

      I do agree with your main point (knee-jerk is usually bad), but just wanted to pick a nit because it's friday. :-)

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    2. Re:Point by point by SanityInAnarchy · · Score: 1

      A good programmer will find the strengths of the technology you've picked

      Question: Why'd you choose the technology you did?

      This guide could also be useful for a manager who has no idea what a good technology is.

      I don't know if it's ever a good idea to hire someone who "doesn't seem too smart."

      Agreed, but the author did want to correct anyone who would hire dumb people, mistaking their stupidity for a lack of social skills.

      --
      Don't thank God, thank a doctor!
    3. Re:Point by point by ed+'g3' · · Score: 1

      Focused mainly on one or two technology stacks (e.g. everything to do with developing a java application), with no experience outside of it
      Nonsense; depth of knowledge is as important as breadth of knowledge. Ability to justify 50 different buzzwords on one's resume doesn't make someone a good programmer. It is a lot better to talk about the problems the candidate has solved, than the technology used to solve them.
      Don't agree at all; not much use having a faint grasp on lots of different things if you're not able to choose (or be given) one in particular and to get on with the project. Even having in depth of a single language / technology / whatever puts a developer in a much stronger position when it comes to doing something else similar-ish - you have that sense of direction that only comes with experience. Although years of in-depth Wording did me fsck all use getting used to that nasty ribbon thing in Office Latest :-(
    4. Re:Point by point by dkf · · Score: 1

      * Focused mainly on one or two technology stacks (e.g. everything to do with developing a java application), with no experience outside of it Nonsense; depth of knowledge is as important as breadth of knowledge. Ability to justify 50 different buzzwords on one's resume doesn't make someone a good programmer. It is a lot better to talk about the problems the candidate has solved, than the technology used to solve them. Of course, in reality you need some of both to be a good programmer. You need depth from really knowing your tools, and you need the breadth to know when those tools you know well are the wrong ones anyway. The good programmer strikes a balance between these extremes.
      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    5. Re:Point by point by Anonymous Coward · · Score: 0

      1) If they're yammering because they're padding out, that's bad. If they're yammering because every though spawns two new ones (like reading out wikipedia) that's good.
      2) I don't think that the original article was ever praising knee-jerk responses, but programmers who stand firm on their choice AFTER doing those things you've mentioned. For instance, if you want some scientific computing done and just want numbers out (and want it done fast), Fortran is the best choice - what the article was saying was that someone who continues to insist that Fortran is the best choice, whether or not you want him to use COBOL, is a good programmer.

      3) I agree that wanting to be taught is not a bad sign, you only learn well if you have a good teacher, even if that teacher is a book. You just have to watch out for people who would rather be doing a course than working.
      4) A yes man is much worse than someone who is insubordinate because they're right.
      5) There's a difference between someone pushing a 'pet' technology and someone who wants a better reason than 'whim' as to why they should use an inappropriate technology.
      6) If you ONLY program java, you'll be one of those pet-technology-pushing people that you seem to dislike and if you come across a problem NOT best solved in the 'java way', you'll be screwed. I'm a computational physicist, we don't have much use for object orientation, I don't know about it, this make me virtually unemployable for most software development and I'll freely admit it.

    6. Re:Point by point by keeboo · · Score: 1

      * Programming is a day job * Don't really want to "talk shop", even when encouraged to * Learns new technologies in company-sponsored courses

      There is nothing wrong with taking advantage of company-sponsored courses. Taking advantage of classroom opportunities is just good time management (it can be easier to learn more, faster, in a well-taught course than in self-study).

      From what I've seen, it's typical that people who takes courses from time to time does so merely to inflate their CV.
      The end result being people who barely know even what was the course about.
      I think that argument is about such cases.

      * Started programming at university

      That's a stupid criterion. Why someone starting programming is a lot more important than when

      I guess that's because in the most cases a person started to program at a university, the "why" tends to be "dunno".
      My trainees, for example: On the ones who started IT-virgin at the univ, I honestly don't remember any specially bright. The good ones always had such previous experience.

      I think it is valid as a consequence of a personal desire to learn, showing the person is indeed interested on the subject and capable of learning by him/herself.

    7. Re:Point by point by merreborn · · Score: 1

      * Happy to work with whatever technology you've picked, "all technologies are good"
      So what you're looking for is a prima donna who will refuse to work in the environment you ask him to, and is insubordinate out of the gate? No. A good programmer will find the strengths of the technology you've picked and design a strategy that plays to those, rather than just telling you you've made a stupid choice and should have used his pet technology instead.


      Sometimes, those doing the hiring don't *know* what the right technology for the job is.
      If I'm interviewing a candidate for a web development position, and I tell him "We're thinking about writing our web application in assembly", he sure as hell better question whether or not that's a good idea.Knowing the right tool for the job is definitely the hallmark of a good developer. They'll help you find ways to do things better, which can save you thousands of man hours, and millions of dollars.
    8. Re:Point by point by merreborn · · Score: 1
      A famous programmer put it much better than I did:

      The three virtues of programming

      1. LAZINESS: The quality that makes you go to great effort to reduce overall energy expenditure.
      2. IMPATIENCE: The anger you feel when the computer is being lazy.
      3. HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about.


      source: http://kw.pm.org/talks/0204-modules/slide013.html
    9. Re:Point by point by Anonymous Coward · · Score: 0

      * Will talk your ear off on a technical subject if encouraged Ability to yammer on about a subject one's audience does not care about is a weak indicator of programming ability and a strong indicator of poor communication skills Drawing the conclusion that "encouraged" implies "audience does not care": strong indicator of poor reading comprehension.
  57. Star Wars by filesiteguy · · Score: 1

    I have developed what - I think - is the ultimate real life programming skills evaluation question list:

    How many replica lightsabers do you own?
    Tattoine has how many suns?
    What did Yoda cook for Luke?

    A positive outcome on these questions has proven to show a high correlation with programming ability. My staff tends to agree.

    1. Re:Star Wars by Anonymous Coward · · Score: 0


      I have developed what - I think - is the ultimate real life programming skills evaluation question list:

      How many replica lightsabers do you own?
      Tattoine has how many suns?
      What did Yoda cook for Luke?

      A positive outcome on these questions has proven to show a high correlation with programming ability. My staff tends to agree.


      Thank you for reminding me yet again why I got out of IT.

  58. Nice, but a little elitist... by fahrbot-bot · · Score: 1
    As a final note to this, in my experience most average or poor programmers start programming at university, for their Computer Science course. Most good programmers started programming long before, and the degree was just a natural continuation of their hobby.

    Ya, for families that could afford it. Maybe this is less relevant now, but I didn't have a computer back in the day (nor did my high school, unless you count a paper terminal and connection via dial-up) and had to wait until university to start programming in ernest.

    --
    It must have been something you assimilated. . . .
    1. Re:Nice, but a little elitist... by 1729 · · Score: 1

      Ya, for families that could afford it. Maybe this is less relevant now, but I didn't have a computer back in the day (nor did my high school, unless you count a paper terminal and connection via dial-up) and had to wait until university to start programming in ernest.

      I taught an introductory programming class for a couple of semesters when I was a CS grad student, and a few of the students each semester were hobbyist programmers. Most of them turned out to be mediocre programmers, but their braggadocio intimidated the students who didn't have any prior programming experience. The myth that you have to start well before college to be a good programmer often discourages talented students who weren't previously exposed to programming from going on to studying computer science.
  59. Tunnel Vision by Roman+Geyzer · · Score: 2, Insightful

    Sorry, but I was not impressed with this article. First off, it was not bad programming that killed off late '90s ecommerce startups. It was flawed business models. In fact, I would say that unless you're selling software or some kind of technology service, it is highly unlikely that even a crap programming team will derail your firm if you have a fundamentally solid business model. So the backdrop for this article is flawed because it assumes that programming talent defines business success. Secondly, this article does not (as the title suggests) tell you HOW to recognize a good programmer. It attempts to define WHAT a good programmer possesses. There's a big difference between WHAT and HOW. If you want to know HOW to spot if someone is intelligent can be significantly more challenging than simply saying "I want someone smart". Furthermore, it misses one of the biggest points for a successful programmer - namely, Communication Skills! If a programmer can not articulate their understanding of the requirements and communicate back issues, concerns, and ideas, then you are taking a major risk. It doesn't matter that they COULD HAVE programmed the next BIG THING.... if they didn't understand the requirements, they will have wasted their time (and someone's money). And what about being able to work with the business and communicate ideas? How about time management and multitasking skills? I would hire a mediocre developer with solid communication skills and a willingness to learn over someone with top 1% programming talent who can't communicate a sentence properly. Ok, I'm done ranting.

  60. The people that should read this won't. by Qbertino · · Score: 1

    The people that should read this won't. That's the sadest part.

    --
    We suffer more in our imagination than in reality. - Seneca
  61. Too narrow a focus again by Anonymous Coward · · Score: 0

    That people cannot adequately analyze a job application is not new, nor is it limited to programming. I wonder how long it is going to take people to realize that you cannot measure experience in terms of a duration of exposure to an environment?

    It would be nice if the people involved with hiring would analyze the "fruits of their labours" occasionally, to find out if they are actually working as well as they think they are. I think they would be surprised to find they stink. I think hell will freeze over first. Or, /. will realize that the problems with Intellectual Property are not just confined to music and software/business process.

  62. How not to work with good programmers by SombreReptile · · Score: 1

    Congratulations, you have hit on the method to ensure that you work with a bunch of mercenaries, not good programmers. The good programmers will have chosen the company that is working on exciting new stuff, with profit being the secondary motivation.

  63. How to Recognize by Have+Blue · · Score: 1

    How to Recognize a Different Types of Programmers From Quite a Long Way Away

    1. The C++ Programmer

  64. My definition by DrXym · · Score: 1
    In my opinion, a good programmer is one who can elucidate, writes clear maintainable code, programs defensively, has a broad level of experience, can decompose a problem into logical parts, shares knowledge, anticipates issues, is pragmatic, a team player, speaks up when necessary, takes an interest in new technologies, and knows what are acceptable risks and what are not.

    The kinds of programmers I dislike are the clueless, the know-it-alls, the horders of knowledge, the spaghetti coders and the perfectionists. The real world is imperfect and governed by deadlines, budgets and system limitations. I don't care if someone is an amazing coder if they don't explain or allow anyone else to understand their code. I don't care that if 10 layers of abstraction makes the system perfect if it adds 3 months onto the deadline. I don't care if the code works for release 1 but is so unreadable that it is impossible to maintain. A good programmer makes sure everyone else on the team can understand their code and the rationale behind their design. Anything less and you're not a good programmer.

  65. This is why... by Anonymous Coward · · Score: 2, Funny
    ...I still submit my resumes on punch cards.

    #include <stdio.h> And I'm always dismayed by programmers that can never spell "studio" properly...
  66. I think the question should be reversed by caywen · · Score: 1

    I think a more useful approach is, "How do you recognize a programmer that's bad for your organization?" It seems counterproductive to try to define a good programmer given the diversity of environments needing programmers. The only universal qualification I can think of is that programmers must adore Linux and have their own Wikipedia page - otherwise they are clueless.

  67. The Python Paradox by Paul Graham by Wiseman1024 · · Score: 5, Insightful

    The Python Paradox
    Paul Graham

    http://www.paulgraham.com/pypar.html

    August 2004

    In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project.

    I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know.

    Which makes them exactly the kind of programmers companies should want to hire. Hence what, for lack of a better name, I'll call the Python paradox: if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it. And for programmers the paradox is even more pronounced: the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job.

    Only a few companies have been smart enough to realize this so far. But there is a kind of selection going on here too: they're exactly the companies programmers would most like to work for. Google, for example. When they advertise Java programming jobs, they also want Python experience.

    A friend of mine who knows nearly all the widely used languages uses Python for most of his projects. He says the main reason is that he likes the way source code looks. That may seem a frivolous reason to choose one language over another. But it is not so frivolous as it sounds: when you program, you spend more time reading code than writing it. You push blobs of source code around the way a sculptor does blobs of clay. So a language that makes source code ugly is maddening to an exacting programmer, as clay full of lumps would be to a sculptor.

    At the mention of ugly source code, people will of course think of Perl. But the superficial ugliness of Perl is not the sort I mean. Real ugliness is not harsh-looking syntax, but having to build programs out of the wrong concepts. Perl may look like a cartoon character swearing, but there are cases where it surpasses Python conceptually.

    So far, anyway. Both languages are of course moving targets. But they share, along with Ruby (and Icon, and Joy, and J, and Lisp, and Smalltalk) the fact that they're created by, and used by, people who really care about programming. And those tend to be the ones who do it well.

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
    1. Re:The Python Paradox by Paul Graham by tgv · · Score: 1

      Wrong reasoning, right conclusion?

      I (personally, etc.) do not like Python. I'm from the school of language design that thinks it's not good that white space is significant. It reminds of FORTRAN and punch cards. However, I have my admiration for obscure languages as well (Caml is great according to me, but not really everyone's cup of tea). And there are good programmers that work almost exclusively in one language, some of them might even work in Java...

      And don't get me started on Perl: while ( && ) anyone? That aside, Perl's superficial ugliness is no problem to you, yet exactly opposite to the reason your friend chooses Python. Still you laud his choice. Weird. Conclusion 2:

      And strangely enough, your conclusion looks valid to me: such things probably set apart the real programmers from the merely "not more than 1 bug per 100 lines" types.

      I think it is now time we all read "Real programmer" again: http://www.pbm.com/~lindahl/real.programmers.html.

    2. Re:The Python Paradox by Paul Graham by Z00L00K · · Score: 1
      I see a different paradox here - aside from the real programmers... "Real programmers count '075, 076, 077, 100'", Pays a $7 item with a $10 bill and says "keep the change"...

      Anyway - what about debugging/validation tools for script languages like Python? (FindBugs(TM) exists for Java) From what I have seen of Python (not too much anyway) is that it is a bit more like Basic (or Fortran if you like) of the 80's. In a few years we will get "programmers with Python-syndrome". Not that Python doesn't have some good parts too - I don't deny that.

      I'm a bit worried about the 'Python programmers smarter than Java programmers' statement. It may be true - but then - when they have moved on and maintenance has started - it's not the smart guys that are there anymore it's the average code dumpster divers that sits and tries to figure out what's happening...

      There is a difference with a compiling language (like Java) is that when done right with declarations and dependency definitions you can end up getting a system that can be re-compiled and any mismatches can be resolved. In a scripting language you run the risk of not encountering such problems until runtime - where the cost of rectifying them will be much higher.

      I think that the paradox is that the "smart" guys are always looking for new things to use - and they may use them well. This isn't really a paradox since the persons that are most prone to change assimilates new knowledge better than the others that are left with the old well-known parts. In a while today's Python-coders will move on to a new pasture unless they degrade and got stuck in Python.

      Of course - this seems to end up in a conflict of "compiling" and "non-compiling" languages, same as the "soft" and "hard" type-checking conflict. These issues has been around since the 80's and even earlier.

      In the end - it all comes down to how a language does not only in a small system but in a large integration where it is essential that you don't get runtime errors just because a function is called with a different number of parameters (that should have been detected at compile-time).

      Personally I advocate for a language with strong data type checks together with the use of tools that allows the programmer to verify the code to not only look good, but also being safe and efficient. If you have a larger project you may want to use tools like PurifyPlus to verify not only the integrity of your code but also detect and allow you to resolve bottlenecks. (And any code regardless of programming language benefits from code optimization)

      Another issue is to avoid intermixing of languages in the same code. This is often the case when it comes to web design where you often see a single JSP, PHP, ASP (or possibly other techniques too) file with HTML, Java (or corresponding Microsoft data), Javascript, XML Tag libraries and even VBScript (BARF!!!). Such code is often extremely hard to read. An editor with color-coding may prove helpful - but it's still a real pain.

      So - essentially - there is no paradox at all - it's just that either you are a quick learner and race on to new challenges or you stick with the well-known (maybe because you HAVE to - not that you WANT to).

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    3. Re:The Python Paradox by Paul Graham by Anonymous Coward · · Score: 0

      I see a different paradox here - aside from the real programmers... "Real programmers count '075, 076, 077, 100'", Pays a $7 item with a $10 bill and says "keep the change"...

      I guess back in the day, people used to use octal numbers a lot. In my career I've pretty much just used decimal and hexadecimal, no octal.

      I'm a bit worried about the 'Python programmers smarter than Java programmers' statement.

      No, no. Go back and read it again. He was very specific. Knowing Java does not imply being stupid, but knowing Python does imply being smart. (In 2004, anyway.)

      His claim was that people who took the time to learn Python, despite demand for it being lower than demand for Java, are likely ones you want to hire. Some people will learn Java just because they want to earn a good wage doing software, not because they actually like doing software. When I went to school, there were lots of students studying programming who didn't actually like software, but just wanted money (I heard them talking). In those days the school taught in Pascal, but these days the schools likely teach in Java. So if you know that a person has learned Java, you don't really know whether they care about programming; but if they learned something cool on their own time, that implies that they actually do care about programming.

      There is a difference with a compiling language (like Java) is that when done right with declarations and dependency definitions you can end up getting a system that can be re-compiled and any mismatches can be resolved. In a scripting language you run the risk of not encountering such problems until runtime - where the cost of rectifying them will be much higher.

      One word for you my friend: unit tests.

      Yes, I know that's two words. It's a joke son. Okay, sorry.

      Anyway, a good Python developer will code unit tests with good code coverage, and make sure the code passes those tests. Some will write the tests *first* and then keep coding until they pass.

      And Python at least is strongly typed. Some folks will claim it isn't, but it is. Try to add a string to an integer sometime, you will see. I'd be more scared of langauges like Javascript where you get wild and free implicit conversions.

  68. The good programmers make it look easy by natoochtoniket · · Score: 1

    1. Mod the article "funny". People who work hard, 16+ hours a day, learn every new technology, and jump onto every fad and fashion, have never impressed me.

    2. A good programmer is someone who makes it look easy.

    Knowing the business helps to avoid having to ask a lot of questions to fill in the unstated requirements, and also avoids making the kinds of huge mistakes that cost huge amounts of of time. Knowing the technologies that are in use in an enterprise, knowing what has already been done, and knowing how/where to look things up, helps to avoid reinventing wheels. Having academic knowledge of things like algorithms and theories helps to select the ones that are needed, and to implement them correctly and reliably. Knowing particular languages and other technologies helps to get things right the first time.

    The person who knows all of these things makes the job look easy, and generally goes home by 5.

  69. Game writers by jammo · · Score: 1

    If they have been inspired to write games, that's a good bet I think.

  70. OMG you are kidding right? by COMON$ · · Score: 4, Insightful
    A good programmer doesn't write 20 line ambiguous intelligent scripts that do the job. A good programmer plans for his demise/departure by following the standards in the industry. I would rather a project take 30% more time but be supportable by more than the creator.

    This comes from experience, I work on multiple networks and have been through more than one web migration. I tell ya, the one thing that bugs me most is short sidedness, these programmers who are very intelligent and write scripts to prove to the world that they are smart. However they forget to document because why should you document something that works? You take those 20 line snippits and after 3 years or so you have about 100 of them in your environment, something breaks and all hell breaks loose for days because your replacement has to grep through all your code while you are unavailable.

    Standard, Commented, well structured code is what I look for. You show me code examples that are easy to read and commented well. Also show me a positive attitude and have musical talent and you are hired.

    --
    CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    1. Re:OMG you are kidding right? by Like2Byte · · Score: 1

      ...have musical talent and you are hired.


      What does this have to do with the price of bananas? I've had the priviledge to work with *extremely* talented wizards - in the hacker sense of the word - in my recent past *and* in my current position. None of them could swing a tune on any instrument save a keyboard.

      Now, that is not to say that they didn't have some hobby or personal-life project. They all did. And they are passionate about it. One's a debian developer in his off time. Another is seriously obsessed with home theater. And still another one's a robot - work is his passion.

      If anyone asked me to play a musical instrument during an interviewing session I'd pack my bags running.

      A prospective employee sharing a subject matter that you respect or love does not make them a *viable* prospective employee. A proven track-record does.
    2. Re:OMG you are kidding right? by ldholtsclaw · · Score: 2, Insightful

      I consider myself a pretty decent programmer and the only thing I can play is the radio. Now my 13yo son plays piano, clarinet and sax and my daughter is a music major at a private university on a voice scholarship (soprano with a 3+ octave range, prefers to sing opera though) -- does progeny count? ;) Anyway, the mention of music as a requirement is not new to me. A programmer many years my senior told me IBM used to seek out music majors for programmers before most colleges had a computer-science program. He said it was believed that avid music enthusiasts tend to think in ways conducive to writing code. Whether this is true or not, music as a job criteria is certainly not the strangest I've seen. Not even in the running.

      To pop the stack, I personally have no idea whether my code meets "best practices" or not. Since I'm totally in control of the software development where I work, there's no one I need satisfy with code statistics nor any reports to write -- but what I do must be accomplished on a timely basis, deployed to end users in a guarded but reasonable pace and not cause clients' displeasure towards the company in the process. This may sound easy, but it's anything but. For one thing, you cannot maintain a large codebase (current main project is about 1/4 million lines) without it being appropriately documented. Or, at least, not with any speed you can't. Though I don't follow any set guidelines per se, I learned very early on that it was much easier to come back to something months later if you left yourself enough breadcrumbs to recapture the thought path that led you to the code in the first place. Some functions have reams of notes, others have almost none. Yet, when I can look over lines written ten (or even 20) years ago and work with it rapidly, that tells me it was documented well enough. Sure, I've seen policies of "comments every N lines" and such, but most of those are a matter of someone opinion (well informed or not) and it's the results that really count. And in the case of user interface design, I use the tried-and-true method of watching end users actually using the system and take note of anything that seems to slow them down or add to their confusion. As a result, there is very little training required as the system just fits the way they need to do things. But, I digress from the point.

      To my own observations, those people that proclaim themselves "great programmers" the loudest are the ones least likely to be so. Those that I consider "decent" may not proclaim their virtues, but they are quick to be personally offended when their code is challenged. This shows to me that they are passionate about their work and care enough about it to back it up with their reputation. And that's the kind of person that I want working for me.

    3. Re:OMG you are kidding right? by ShieldW0lf · · Score: 1

      Music is very complex. The fact that you are comfortable with its complexities is a testament to your capacity to handle complexity.

      If you had two recent graduates, one liked to play foozeball during their spare time, while the other liked to compose music, you really wouldn't see that as evidence that one was more drawn to complexity than the other?

      --
      -1 Uncomfortable Truth
    4. Re:OMG you are kidding right? by ScrewMaster · · Score: 1

      For one thing, you cannot maintain a large codebase (current main project is about 1/4 million lines) without it being appropriately documented.

      That is truly the most intelligent comment I've heard on Slashdot about programming. I'm in the same boat you're in (roughly a quarter million lines of code for which I'm responsible) and good docs are the only reason I've been able to maintain and improve that codebase over the past eight years. In fact, when I took over the project, it stood at about 30,000 lines of disorganized and largely undocumented code. I spent about a month auditing it and cleaning it up as best I could: eventually I blackboxed most of the critical functionality from the original program (there's some complicated stuff in there that I don't touch unless I have to) and continued development in a much more organized fashion. Any process that could be efficiently scripted or otherwise automated has been, from builds to creating installation sets. The point is, all of that was possible because of proper documentation ... there are parts of the program that I rarely go into, but when I do it's usually important, and the docs make it possible to modify or fix them without making more problems.

      Those that I consider "decent" may not proclaim their virtues, but they are quick to be personally offended when their code is challenged.

      I'm not too sure that I agree that good programmers are personally offended in such circumstance, generally it's the hypersensitive ego-ridden types that take offense. They may or may not be good but they can be a pain to deal with regularly. Furthermore, I think that someone who knows he's done a good job is likely to just brush off those who make uninformed and unwanted critiques. However, a good programmer will seek out constructive criticism, because it is often beneficial to look at one's work through someone else's eyes. If you're not capable of doing that, odds are you'll never be a great programmer.

      --
      The higher the technology, the sharper that two-edged sword.
    5. Re:OMG you are kidding right? by Like2Byte · · Score: 1

      That's a classic straw-man argument.

    6. Re:OMG you are kidding right? by DoofusOfDeath · · Score: 1

      I would rather a project take 30% more time but be supportable by more than the creator.

      Most managers believe that as well, but I think it's the rare manager who will give the programmer 30% extra time, when the code admittedly "already works and just needs some cleaning up". My point is that there's often a difference between what people say they want, and how they actually act in situ.

    7. Re:OMG you are kidding right? by ShieldW0lf · · Score: 1

      Most managers believe that as well, but I think it's the rare manager who will give the programmer 30% extra time, when the code admittedly "already works and just needs some cleaning up".

      That's why you always leave the interface ugly as possible until the very end. A good programmer doesn't allow something half finished to look polished because he knows he won't be permitted to do the job properly if he does, and he refuses to churn out crap at any price.

      He does this because he knows there are more problems than people with the skills and discipline to solve them, and that it is the employer who is privileged in attracting his attention to the problem, not he who is privileged to be permitted to solve it.

      It's a self-fulfilling prophecy. If you refuse to turn out crap, you will develop good skills and habits. If you don't refuse to turn out crap, you won't develop good skills and habits. You are what you make of yourself.

      --
      -1 Uncomfortable Truth
    8. Re:OMG you are kidding right? by ShieldW0lf · · Score: 1

      I could say the same of your own post. Did you see the guy you were replying to talking about whipping a musical instrument out in mid interview? No, me neither. You just ranted about how idiotic such a thing would be in an attempt to belittle the person you were replying to.

      Now, my own example is an attempt to bring the abstraction under discussion into the concrete world as an example. I didn't put forth the example as a paraphrasing of your own words and attack the example, therefore, it's not a straw man argument at all.

      Perhaps if you'd studied music, you might have an easier time dealing with these abstract concepts, and not have made a fool of yourself. Too late now though.

      --
      -1 Uncomfortable Truth
    9. Re:OMG you are kidding right? by Blackknight · · Score: 0

      Well structured code doesn't need comments, you should be able to just look at the source and understand it. THAT is what good programmers can do. It also helps if you make it readable instead of something that resembles line noise.

    10. Re:OMG you are kidding right? by Bones3D_mac · · Score: 1

      A good programmer doesn't write 20 line ambiguous intelligent scripts that do the job. A good programmer plans for his demise/departure by following the standards in the industry. I would rather a project take 30% more time but be supportable by more than the creator.
      This comes from experience, I work on multiple networks and have been through more than one web migration. I tell ya, the one thing that bugs me most is short sidedness, these programmers who are very intelligent and write scripts to prove to the world that they are smart. However they forget to document because why should you document something that works? You take those 20 line snippits and after 3 years or so you have about 100 of them in your environment, something breaks and all hell breaks loose for days because your replacement has to grep through all your code while you are unavailable.


      While that works in a utopian environment where you are respected and seen as an equal among your co-workers, it doesn't quite help much in situatuations where you're considered "expendable" and in constant competition for your job against some new foreigner upstart who'd be more than willing to do the same work at half the cost.

      Sure, it may not be entirely ethical to obfuscate the code you generate when it's technically the property of the company you work for, but when the only one who's watching your back is you, ethics can take a back seat to ensuring your own long-term survival.

      If you really want to know what makes a good programmer, it's the guy who keeps the easy to read code for himself while leaving the stuff that read likes vomit but somehow miraculously works as needed. Also when things go wrong, it's much easier for everyone to just let you be the hero at the last minute, instead of letting a bunch of experts try to reverse engineer with too little progress too late.

      If it's good enough for Scotty, it's good enough for anyone.

      --


      8==8 Bones 8==8
    11. Re:OMG you are kidding right? by Anonymous Coward · · Score: 3, Insightful

      Comments shouldn't tell you WHAT code does.
      Comments should tell you WHY code does it.

      If a code monkey can't tell WHAT the code does they need a better book.
      No book tells you WHY the code is the way it is, for multiple versions of way.

    12. Re:OMG you are kidding right? by MPAB · · Score: 2, Funny

      None of them could swing a tune on any instrument save a keyboard.
      Lifeforms... you tiny little lifeforms... you precious little lifeforms... where-are-you?
    13. Re:OMG you are kidding right? by cheater512 · · Score: 1

      Define musical talent.
      I can play half a dozen different instruments (brass) yet I cant read a note of music.
      I play by ear. Does that qualify? :P

      Oh btw the code snippet I'm talking about has been around for four years now with no complaints.

    14. Re:OMG you are kidding right? by daveinthesky · · Score: 1

      Ok.
      Post it then.

    15. Re:OMG you are kidding right? by tuomoks · · Score: 1

      What, you don't like 20 lines APL? Seriously, this is one of basics I learned a long time ago, document what is done, not what the code does! Code is easy to read, even APL or Lisp, but why and what needs really to be documented. My sin, I once wrote a program which generated code, easy and nice except even I couldn't figure out later what the $#%^@ it was doing because at that time I was a hot shot coder and didn't document it very well. Lesson learned! It still runs and is used after 30+ years but nobody has changed it since then, many tried.
      For all who responded to this thread saying "good" code documents itself, I would say you are in trouble. Any language (almost) is easy to read but please, explain me what that line of code does for business or network connection or whatever? No, I don't need what bits and bytes or what fields it manipulates but why and what effect it has to the system? If you can do that, why not to write it to comments so next time you don't have to use a couple of hours explaining it or, in case you are not available, someone using a long time figuring out what the &$#$*(( did you mean with that. That is what a good programmer does.

    16. Re:OMG you are kidding right? by Lally+Singh · · Score: 1

      Simplest method I've learned: document what I'm thinking as it happens, in english. Then when
      it makes sense in English, write the code. Works like this:

      Put together a quick outline of what classes/methods I'm writing. Break it up with newlines
      between the descriptions. Comment the whole block, and copy/paste the text into the source
      I write because of it.

      For methods, a one-liner doc for anything that isn't 100% obvious by the name (and sometimes
      even then, if it could be ambiguously interpreted). If the method's implementation isn't obvious,
      I write an outline of what the method does, and comment the entire block. Then I write the code
      in between the outline steps.

      Works great, and some intelligent uses of /// vs // (or /** vs /*) will make doxygen (javadoc) happy.

      --
      Care about electronic freedom? Consider donating to the EFF!
    17. Re:OMG you are kidding right? by ultranova · · Score: 1

      That's why you always leave the interface ugly as possible until the very end.

      Which means that you use 30% more time per project than Joe Bullshit. Consequently, Joe gets promoted for his efficiency, while you'll get downsized for your lack of productivity. Oh, and Joe gets to maintain your clear, elegant code, reaping the benefits of your work ethics while you starve penniless on the streets.

      I guess that's the real reason we get so many crap products...

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    18. Re:OMG you are kidding right? by SL+Baur · · Score: 1

      A good programmer plans for his demise/departure Let's just stop there. Spot on! Coding is a very short phase in the life of computer software. Maintenance is everything.

      Standard, Commented, well structured code is what I look for. Compare the code in Fred Brooks' book The Mythical Man Month -vs- the code in Elements of Programming Style. I'll take uncommented but easy to understand at sight code over Brooks' over-commented and turgid style any day.
    19. Re:OMG you are kidding right? by volpe · · Score: 1

      Well structured code doesn't need comments, you should be able to just look at the source and understand it.

      Ideally, yes. The less in need of comments it is, the better it is, generally.

      It also helps if you make it readable instead of something that resembles line noise.

      Whoa there, nellie! It also helps to make it readable not not resemble line noise? I thought that was implied by the "doesn't need coments" remark in the first place! Are you saying that you've seen will structured code that doesn't need comments, but which is sometimes unreadable and resembles line noise?

      I think you should write code as if you weren't going to comment it, and then comment it anyway. Comment anything unusual you do. If there's a more obvious way to do something, explain why you're not using it. If the obvious way is flawed, explain how. If the obvious way is slower, explain why your way is faster. If you're working around a bug in the compiler, say so, and include in the comments how you would have written the code if the compiler didn't have the bug.

    20. Re:OMG you are kidding right? by COMON$ · · Score: 1

      Sorry to all of you who took the music comment the wrong way. I have just had an odd experience so far with devs. Be it coincidence or not, the devs/CS guys I have worked with that have been the best fit for the position for some reason have had serious interest in music. Be it Vocal, instrumental, or a music aficionado, but at some point in their lives had been very involved in music. This of course is not exclusive, just an interesting observation.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    21. Re:OMG you are kidding right? by COMON$ · · Score: 1
      I agree, not necessarily that you need to comment every X lines as that can get ridiculous at times. However, Breadcrumbs and nice comments on what the next section of code is going to do and what so you can briefly look at it in a couple years and know if that particular section is going to do what you want it to.

      I really like the PHP5 .conf source files, but that is a hell of a lot of documentation meant for a different market and would be impractical in my opinion to do with a larger project.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
  71. John Carmack's criteria by Stiletto · · Score: 1

    This was asked before in a Slashdot interview of John Carmack (id Software lead programmer). Question 4:

      4. justin_saunders asks:
    Many people consider you to be one of the best programmers in the game/graphics scene, based on your ability to keep pushing the limits of current PC hardware.

    I was wondering what measures you use to gauge the skill of a programmer, and who, if anyone, you look up to and consider to be a "great" programmer.

    John Carmack Answers:
    Like most things, it is difficult to come up with a single weighted sum of the value of a programmer. I prefer to evaluate multiple axis independently.

    Programming is really just the mundane aspect of expressing a solution to a problem. There are talents that are specifically related to actually coding, but the real issue is being able to grasp problems and devise solutions that are detailed enough to actually be coded.

    Being able to clearly keep a lot of aspects of a complex system visualized is valuable.

    Having a good feel for time and storage that is flexible enough to work over a range of ten orders of magnitude is valuable.

    Experience is valuable.

    Knowing the literature is valuable.

    Being able to integrate methods and knowledge from different fields is valuable.

    Being consistent is valuable.

    Being creative is valuable.

    Focus is extremely important. Being able to maintain focus for the length of a project gets harder and harder as schedules grow longer, but it is critical to doing great work. (Side note - every time "focus" is mentioned now, I think of Vernor Vinge's "A Deepness in the Sky", currently my favorite SF novel)

    I certainly respect the abilities of my primary competitors. Back in the DOOM days, Ken Silverman was extremely impressive, and today Tim Sweeny is producing much of value.

  72. 4 Steps by Bellum+Aeternus · · Score: 1
    1. Ask some off algorithm question like: If you wanted to know how many floors from a 100 story building a rubber a balloon needed to fall before breaking and you only had two, what's the algorithm for finding out with the best worst-case number of tries?
    2. Have them write some basic structures in C (not C++) that require messing with pointers. Always ask them to improve what they just wrote (faster, less prone to mistakes, more secure, etc).
    3. Have them explain the limits of various languages (C/C++ isn't always best - neither is PERL) isn't the best language for everything. Have them give you solid examples of when to use various languages and when to not use various languages.
    4. Present them with a fictitious example of a solution where you know there's a bug. Have the review the code. Make the bug security or pointer related.

    I actually had to turn away a developer who was very Java proficient because he couldn't write memcpy in C. Really, it's not hard!

    --
    - I voted for Nintendo and against Bush
    1. Re:4 Steps by magical_mystery_meat · · Score: 1

      Why did you interview a Java developer when you're actually looking for a C developer?

    2. Re:4 Steps by JoeCommodore · · Score: 1

      Exactly. I do Database work and except for the right App for the right job most of those questions would not apply to the skill set I would be offering.

      --
      "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    3. Re:4 Steps by Bellum+Aeternus · · Score: 1

      Because understanding how memory is actually handled is important. And, who said I was hiring a Java Developer? ;-)

      --
      - I voted for Nintendo and against Bush
  73. I'm not convinced... by drew · · Score: 1
    For the most part this seems like a halfway decent list, but one of his comments really sent my bullshit meter screaming:

    In fact, the great programmer will be the one talking your ear off about a new technology that you haven't even heard of, explaining to you why you must use it in your business, even if none of your staff knows how to use it. Even if it's a technology he doesn't know how to use yet.
    I'm sorry, but these are the guys who you absolutely do not want to have around.
    --
    If I don't put anything here, will anyone recognize me anymore?
    1. Re:I'm not convinced... by otis+wildflower · · Score: 1

      Those guys aren't so bad, it's the ones that get all snippy because you end up having to use product X because the sales guy took your boss's boss's boss to an expensive seafood dinner.

      Like the philosopher in Full Metal Jacket said.. "It's a huge shit sandwich and we're all gonna have to take a bite."

      Most of the points in that post are applicable to sysadmin as well, at least as far as my experience has led me to believe.

  74. what to look for: by Anonymous Coward · · Score: 0

    laziness, impatience, and hubris.

  75. Easy by Yogs · · Score: 1

    Resumes tell you very little, talking sometimes tells a tale, but it's an inefficient way to start.

    Best way to start is do a screen based off coding ability (have a set of tests ready against simple problems and ask them to conform their answer to an API). Advantage of this is that it's very objective, and takes little time from your team. Do a screen based off coding ability but with harder problems, too. In both cases, leave just a little ambiguity in the problems to see whether the candidate spots them and asks for clarification, freezes, goes ahead with their assumption without asking. If they're smart enough to ask for clarification, how clearly specifically do they ask?

    This will easily filter 90%+.

    Next, do a basic knowledge test (never hire a liar). Based on what they put in their resume, ask trivially easy, and maybe a couple medium level obscurity/difficulty questions. If they're dead or really scrambling, don't waste any more time on them. Obviously, the more the knowledge needed on the job meshes with their resume the more this can weigh in a candidates favor.

    Finally, try and figure if it's a personality fit. The less scripted this is the better. At the end of as normal a conversation as you can muster (and try to be listening 90% of the time rather than talking), do you have a definite positive feeling that this person would be able to fit in well, fill the gaps you need filled and bring something extra? If no, gotta make that final cut here, too, even if that leaves nobody.

    The main problem is that management will tell you this process too picky and making it too hard to find someone.
    Remind them, you need someone good, tell them that nothing about this process is actually hard, they just need to up the offered salary to attract the interest of good applicants and not waste your time.

    Also, remind them how well you would be able to do on all this as a way of hinting you need a raise ;-).

  76. "Good" programmers don't use subjective terms... by ivanmarsh · · Score: 1

    Like "good".

  77. Smiles while talking, first word isn't "No." by j-stroy · · Score: 1

    Having worked with some brilliant coders, I have found the best are: ones who will smile and speak casually while talking about problems, solutions, etc.. as opposed to frowny intense confrontation laden interactions. Also, I cannot say how many times decent coders will use "No, can't be done." as an answer to everything.. once that doesn't scare you off, a solution might occur.. a much better question is "How?" Those two simple things are keystones for me.

  78. Previous experience by Strange+Quark+Star · · Score: 1

    It would be advisable to look for people with experience in the field of high speed pizza delivery.

    Also, keep an eye open for sword-carrying individuals.

    --
    There is no sig.
  79. Hiring good programmers is tough by GoneSouth · · Score: 1

    As someone who's interviewed, hired and fired dozens of programmers over the years, I can tell you there is no sure fire way to pick out a good programmer. Here are some very loose guidelines I've found helpful: good: - old timers with a variety of languages / os's in their background. I love to hire old c++/unix guys just looking for a break to try out java / soa. they invariably pick stuff up really fast, work hard, and know how to do basic programming stuff like debug, set up test environments, etc. - in decent shape. you can't say this out loud to anybody, but trim people tend to be be a productive programmers. i am not kidding. probably the same gene that makes people disciplined enough to exercise and eat right, makes them a hard worker who can turn out lots of code. - linux - anyone with linux on their resume, even as a hobby, gets a bump up in my books. you know they love fiddling with technology and can figure stuff out on their own. bad: - "working on my phd / masters / taking a course at night". translation - course work will take precedence over project work, and as soon as I'm done my degree, I'm outa here. - pony tails. I'm gonna catch it for this, but every guy I've ever hired with a pony tail has been a pain in the butt to work with. they're on a different plane of enlightement from you, won't take direction, and in general its beneath them to be working for you. the ugly: - those stupid canned tests with five lines of code asking you what is wrong with the above code fragment. i've had guys bomb these tests who were awesome programmers, and guys ace those tests who couldn't code their way out of a paper bag. completely useless imho.

    1. Re:Hiring good programmers is tough by easytoplease · · Score: 1

      That decent shape comment is terrible, as well as untrue - a great number of people are thin just because they are thin. They could eat just as bad as anyone and not exercise at all. There are also people who eat great and exercise all the time and are not thin. I do not agree at all that work ethic follows from body type. I would agree it might follow from exercise/eating regimens, but that doesn't seem to be what you're saying here, and I am sad that I just read it and hope that most hiring managers don't make on-the-spot appearance decisions like that. Say what you want about me now as far as how I must look and act after writing these statements. You'll never change your opinion on this issue, which is too bad. It's almost like saying that men tend to be more productive programmers because they are men...

  80. Lazy Programmers by Anonymous Coward · · Score: 0

    The best programmers are the ones who are extremely lazy. The ones who don't want to do more than is required and also want to do it in as little time as possible; the one that will search out existing technologies/code to solve a problem rather than write it himself. You'll end up with fewer lines of code that is more maintainable and easier to understand.

  81. The Question by rumblin'rabbit · · Score: 1
    In our programmer interviews, we always ask "the question":

    Suppose you were given the following project (describe a fairly simple project). How would you carry it out?
    Then every time they stop talking, you say "And then what would you do?" Candidates generally sweat bullets over this question, since it can drag on for 5 or 10 minutes, and you give no indication whether you agree or don't agree with what they have to say. There is no right answer, but it is still enormously revealing. For instance...
    • Was there any point where the objectives or usefulness of the project itself was questioned?
    • How early on were the end-users discussed in the answer. Were they mentioned at all?
    • Were there reviews of some sort?
    • At what point was documentation discussed?
    • What kind of testing was mentioned? Was it left to the very last?
    1. Re:The Question by argent · · Score: 1

      I'd love to have gotten a question like that, even though I'd probably hate it at the time. You need to be careful, though: one of the things that makes it nasty is that programmers who actively work with the end-users to get the kind of feedback they need (and that you presumably need them to get) are going to be the most frustrated with it... because you're playing the role of the very worst kind of customer for them: the information sponge who never provides any feedback at all.

    2. Re:The Question by anubi · · Score: 1
      I *love* questions like that during an interview!

      Hell, I have Asperger's syndrome - getting me started on techie stuff is more fun than anything for me.

      But whatever you do, please oh please don't invite me to formal dining. That has always been my Waterloo.

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

  82. 22 .. by Anonymous Coward · · Score: 0

    Because of the love of learning and toying with new technologies that comes with the package of being a good programmer, its inevitable that any good programmer over the age of 22 will be fluent in a dozen different technologies.

    If he's 22, and claims to know so much stuff, I bet he doesn't master any of them.

  83. would it be legal by rjschwarz · · Score: 1

    To ask if they post on any boards such as slashdot, and what their handle is? Yeah they could lie but that would be fairly easy to find out I should think. If you were gonna hire someone you could at least learn in advance if they spend all day on Slashdot and what kind of sense of humor (or not) that they have.

  84. Hmmm.. Site is down. by Invictus42 · · Score: 0

    If only they knew how to recognize a good sysadmin.

  85. He by easytoplease · · Score: 1

    This may have been mentioned before, and it may be semi-unimportant, but I'm annoyed that the "programmer" in question is always a he. I'm a girl, and meet most of those qualifications and am very proud of that fact. Hopefully it was just for ease of writing...

  86. Oh this is easy by CrazyJim1 · · Score: 1

    Present them with a test who's difficulty is measured directly proportional with what it'd be rated in the IOCCC. At least that's the second most popular method behind having 10 years experience with in house software.

  87. Too Many Are Missing the Point.... by RobDude · · Score: 1

    I've read a few of the comments here and I think the vast majority of people here don't really have a clue what makes a good programmer. Everyone that said, 'Well, I'd have him code up something in XXX language of my choice...' - I think you are wrong.

    That might be a fine test to learn if someone is a good XXX programmer. But it has nothing to do with whether or not they are a good programmer. There are great developers out there who have years of experience NOT working with the language of your choice.

    I've never touched Java in my life. I've used PERL, in total, about 3 times. Never done PHP, RUBY, PYTHON...heck, I haven't done any C++ since high school.

    A good programmer is going to be a good programmer regardless of the tools he is using. The programming language of choice is a tool. I think of myself as a Software Developer, not a '.Net Developer' or a 'C# Developer'...and yes, if you give me a pop-quiz about how to use memcpy I'm going to fail. But why should I know about it? Conceptually, I understand the gist of memory allocation, I've heard of malloc as well - but how is that an accurate reflection of the abilities of a .Net Developer who doesn't have a single line of code, anywhere, that contains 'memcpy' or 'malloc'?

    This is the equivalent of saying, 'To Recognize a good athlete have him attempt a double leg circle on the pommel horse'....but that's really a test to see if someone is a respectible gymnast. You could take an NFL star and, odds are, he cannot perform a basic gymnastics move.

    That's a horrible way to test for someone being a good programmer.

    1. Re:Too Many Are Missing the Point.... by tuomoks · · Score: 1

      A very good comment but the question here is not about good programmers but code slaves. See next, someone used this list as a criteria, well, it works two ways I can tell.

              1 Was there any point where the objectives or usefulness of the project itself was questioned?
              2 How early on were the end-users discussed in the answer. Were they mentioned at all?
              3 Were there reviews of some sort?
              4 At what point was documentation discussed?
              5 What kind of testing was mentioned? Was it left to the very last?

      Yes, I did ask these (basics and some other too) and the answers were :

              1 That's not for you to ask
              2 Not your problem, you code
              3 We use agile methods so no review needed
              4 Documents belong to other department
              5 System testing? We use agile methods so there is no need

      Sorry, can't work with you ( a big sw company ) and they agreed..

  88. Obvious by PPH · · Score: 1
    Some of the stuff in TFA is:
    • obvious
    • applicable to finding an excellent (fill in blank)

    In addition, beware of people who spend too much time padding their Resume with lots of committees, interest groups, department liasons, etc. These are the sorts of jobs that the boss gives morons to keep them out of the office.

    --
    Have gnu, will travel.
  89. Summary: by jaxon6 · · Score: 1

    Nerds!!!

    AAARGHGHGH!!!!!!!

    --
    Do you see the sig? Do you have it in your sights? Why yes, Miss Moneypenny...
  90. bring on the hurt by WMIF · · Score: 1

    I just have to laugh reading through so many of the replies here and below TFA. Many are claiming that the list is close, but not quite "because I am a good programmer and this is how I do things..." Then you have some whining about the list being completely off, because "I am a good programmer and I don't fit into your list at all".

    If you feel the need to claim that you are this wonderful programmer, who are you really trying to convince?

  91. make sure he doesn't do this by lukesky321 · · Score: 1
  92. Corrected Article by dino213b · · Score: 1

    How to recognise a good grave digger

    How do you recognise good grave diggers if you're a business guy?

    It's not as easy as it sounds. CV experience is only of limited use here, because great grave diggers don't always have the "official" experience to demonstrate that they're great. In fact, a lot of that CV experience can be misleading. Yet there are a number of subtle cues that you can get, even from the CV, to figure out whether someone's a great grave digger.

    I consider myself to be a pretty good grave digger. At the same time, I've spent a fair amount of time on the business side of the fence, filtering technical CVs for projects, interviewing people, etc. Thanks to this, I think I have a bit of experience in recognising good grave diggers, and I want to share it in this article, in the hope that it may help other "business guys" to recognise good grave diggers. And, who knows, perhaps some grave diggers who have the potential to be good but haven't really exploited this can also read this and realise what they need to do to become good (although, as I'll argue, that's definitely not accessible to all grave diggers!).

    Ok, that's enough cutting and pasting. Seriously..this article is a bit sickening; it's all about dehumanizing the human being. Mark of a good programmer? Why not apply the phrenology test? Their skulls must have a particular shape in order for them to be "good."

  93. proper software engineering, design, knowledgable by Chulo · · Score: 1

    You should get a very good idea of how the programmer ticks by first looking at their design practices. If they're a good object oriented programmer, their objects should make sense and the relationships should be easy to understand, (keeping it simple and stupid). Nothing should be hard-coded, it should be easy for another programmer to take over and change things as needed. They should probably be able to use almost any OOP language. If a database is involved, the objects should carry through into the table design using about the same number of fields/variables as the object for each table. My experience using stored procedures is use only as necessary; it gets messy quick in my opinion when you have stored procedures scattered around the database. Security should be covered almost 100%. They should be up to date on current malicious techniques. It's hard to get even close to 99% when you're trying to be rapid, such as most webapps. Personally I consider myself to be a very 'neat' programmer. One thing that drives me crazy is when people don't follow a naming scheme in the database, and with the object classes. Doing a table join is much cleaner when there's a strict naming scheme in place. Just take a glance at the design and structure of wordpress and tell me you don't wanna just re-write it from scratch. I have an organized set of tools that I use on a regualar basis, such as my php class creator that accepts an insert query as input. Also, my ajax script I wrote from scratch along with all my javascript form utilities. A lot of things make a good programmer. It's funny how I'll always be able to look at the code I did 3 months ago and laugh to/at myself at all the things I could do better.

  94. not what I wanted to learn by esj+at+harvee · · Score: 2, Funny

    crap, crap, crap. I hit every one of those points. Self driven learning, always exploring new forms of technology and then applying it to the current business, etc. etc. Maybe if I hadn't been so good, my hands would still work and I wouldn't be living with constant pain up to my elbows. What's ironic is I left my father's rigging business (machinery moving) because I saw so many people around me losing fingers, damaging their limbs and back etc.. and I wanted to go do something where I wouldn't be injured on the job. Since I had been programming in high school, I thought hey, this is not a bad career. You work indoors, you're not covered in grease, you don't breathe toxic chemicals and you aren't going to get injured by heavy machinery falling on you.

    Ha.

    1. Re:not what I wanted to learn by Tablizer · · Score: 1

      wouldn't be living with constant pain up to my elbows.

      If you wait another decade or so, they may be able to economically hook one's brain directly to a digital interface.

      What's ironic is I left my father's rigging business (machinery moving) because I saw so many people around me losing fingers, damaging their limbs and back etc..

      That's like factory workers and technicians going into computers to avoid being offshored, only to have it happen to IT also. IT is the new factory floor.

  95. Re:What about *becoming* a good programmer? by Anonymous Coward · · Score: 0

    You rock!

    You are going to be a good, if not great, programmer, for a whole heap of reasons:

    • You've messed around with enough stuff to have a basic understanding of how it works together
    • You're not platform or language bound
    • You are willing to put time and effort into learning new things by yourself
    • You aren't too proud to ask for help
    • Most importantly, you want to be a better programmer

    From where you are, there are two things that will help you in the real world - the best ways to learn more are to program more and to look at other people's code, you will start to see things that you hadn't thought of, you will start asking 'why did he/she do it that way?' and be able to evaluate whether it's something better or worse than what you would have done.

    Good luck in your journey, and congratulations :-)

  96. Then... by PMBjornerud · · Score: 1

    You stand up on your desk and shout "BINGO!"

    --
    I lost my sig.
    1. Re:Then... by BosstonesOwn · · Score: 1

      Great I fell off the damn desk and broke my arm. Guess I can get used to the on handed find and peck method of coding.

      --
      This package Does Not Contain a Winner
  97. Baloney on your Baloney by ivan256 · · Score: 1

    If you're a good programmer you won't be able to help but find trivial little ways to use it to make your life outside of work easier. And that doesn't preclude having a healthy work-life balance. It actually enhances it.

    There are zillions of ways that a tiny bit of code can help in some of your daily life, and if they're not rediculously obvious to you in a way that calls out for you to do them, then you either aren't smart enough to be a really good programmer, or you're not passionate enough to be a really good programmer (or a really good worker at all, most likely).

    Also, I don't see how listing "programming as a day job" means that he thinks you should be programming for fun. Normal people have personal work to do outside of their jobs. Using a few lines of code to help for those jobs counts too.

  98. Self learning is not always the best learning. by Anonymous Coward · · Score: 0

    Would you rather have your employee wasting their time and your money hacking their way through a project in a technology that they do not understand or would you rather send them on a course to learn the technology from someone who has experience with the technology? From the courses that I have taken I have seen just how hacky my self-learning can be. You would be crazy to not want to reap the benefits of someone else's experience.

  99. CV ??? by Anonymous Coward · · Score: 0

    A good programmer (who writes about it in a blog) should know that the internet is used by people that aren't in his/her immediate locale and might not know what CV means.
    I'm pretty sure it's Curiculam Vitale (or something like that) but c'mon. It's almost as bad as web sites that refer to temperatures in Farenheit or have zip code edit boxes that don't support alpha chars.

  100. don't take advice by roman_mir · · Score: 1

    I know this much: don't take advice from someone, who misspells the headline to his article where he is giving you the advice.

    "How to recognise a good programmer" - I know how to recognize a bad speller.

    1. Re:don't take advice by gedhrel · · Score: 1

      Considering the way he spells "optimisation" and other examples, I'd expect you're just failing to recognise someone from the other side of the pond.

      Incidentally, your comma after "someone" is superfluous.

  101. I like that... by argent · · Score: 1

    I like that, though you left out the guy who explains why he did it that way... and it makes sense.

    I've had a few situations where I've had trouble figuring out some code, because I was making a wrong assumption somewhere, and at least once I've cleaned up some code and then gone back and put it back where it started once I figured out what was really going on, learned more about the technology or the problem area, or otherwise educated myself out of a hole.

    I suppose you could say this was a matter of bad documentation, the code should have had better comments or something, but it's not always that simple. And, yes, that sounds like a pretty good place to start.

  102. Pro Skub! Anti Skub! by argent · · Score: 1

    I would give Bjarne more credit if he'd shown a better understanding of C before he started designing C++.

    Not to mention... Java vs C++? This is like arguing the merits of Lincolns vs. Fords. The languages are kissing cousins.

    1. Re:Pro Skub! Anti Skub! by scotch · · Score: 1

      What kinds of misunderstanding did you have in mind? I'm curious about how you come to that conclusion.

      --
      XML causes global warming.
  103. hmmm by moxley · · Score: 1

    But can you be programmed as a good recognizer?

  104. Both types are valuable by bwcbwc · · Score: 1

    The prima-donna hackers (assuming they actually can walk the talk) will give you the fastest performance and churn out code quickly. But it will be code that only they can support, and in some cases only they can run it. Send them to work for an OS, game or compiler vendor.

    The diversified engineers can give you things more valuable than code, like documentation, structure and conformance to requirements and standards. But their code output and the performance of their programs will be slower.

    --
    We are the 198 proof..
    1. Re:Both types are valuable by Anonymous Coward · · Score: 0

      DO NOT send them to work at a game company. We have enough.

    2. Re:Both types are valuable by Anonymous Coward · · Score: 0

      This is absolutely fucking spot on. Geeks write code that is faster/more efficient on the day, but turns to utter shit the moment it has to work with something else, or be extended, even if the original author is doing the work.

      The best programmers I know, who aren't geeky in the slightest, write code that is marginally less efficient, but far more generic, easy to extend, easy to use in other projects, easy to sell to customers, easy to understand when someone new joins the company, easier to fix bugs in (and generally less bug-ridden) and just all round more elegant.

      Basically, if the code only ever has to talk to itself, get a geek to do it. If it has to play well with others, get someone outgoing and confident. The mirroring between someones code and their social skills is quite frightening.

  105. The Summary is Here by towsonu2003 · · Score: 1

    The author is a good programmer, hire her.

  106. Passion is important by Anonymous Coward · · Score: 0

    That's why I only date hookers and porn stars. Any girl who isn't doing other guys on the side isn't really interested in sex.

  107. Some crappiness in "negative" aspects by towsonu2003 · · Score: 1

    Doesn't seem too smart
    Did you ever see someone who looks "too smart"?

    Started programming at university
    You need to have a quite rich family.

    All programming experience is on the CV
    You shouldn't participate any "how to write a CV" workshops.
  108. pasta by Anonymous Coward · · Score: 0

    That article is thrown at idiots.

    KNOWINGLY.

    Its for people that does not know shit bout programming, but want to feel comfortable about hiring some "standard nerd" or something.

    Hopefully they got to read some ... good advice in here, and not just that pseudo-babble.

  109. It's mostly about ego by officezombie · · Score: 1

    Software engineers might be some of the smartest people on the planet but at the same time some of the least wise. The main
    reason for that is ego.

    From observation of myself and others, I have come up with "the 5-step developer lifecycle" - it probably also applies to quite a lot of other professions and might apply somewhat to life in general:

    1. developer is learning, really curios and asking a lof of more or less stupid questions to other more experienced developers.

    2. developer is starting energeticly and randomly to question and object to what the experienced are saying.

    3. developer stops listening to what experienced are saying because he assumes that he is always right.

    4. developer starts doubting the assumption that he is always right, thinking he might not be Einstein after all, but tries
    desperately to defend the assumption to himself an everyone else as best as he can (nobody likes self-doubt or broken illusions).

    5. developer realizes that in the grand scheme of things he is just as stupid as all other human beings (and humans are
    really stupid in the grand scheme of things). At the same time he comes to peace with himself and is able to laugh of his own
    silly mistakes.

    Developers in step 2-4 can be extremely counter-productive for an organization. They are usually the most loud-spoken in meetings and might object to any suggestion that they did not come up with themselves. The trick is to hint in the right direction and make them think they came up with the idea.

    I don't think this lifecycle applies to all developers - some never leave 1, some are born directly into 5 and some might even
    cycle through all of them each day. Been through all 5 myself. The revelation you make at 5 is the most
    important insight you'll ever make as a software developer and the step where you finally can start writing good software.

  110. finally! by prxp · · Score: 1

    Finally! Someone that understands my value!!!

  111. First hire a software architect and a team lead by GomezAdams · · Score: 1

    I've seen so many startups fail because management will turn programmers loose with out having gone through a full cyle of design first - requirements->sign off->high level design->sign off->detail design->review and sign off->testing plan->sign off - before turning the code monkeys loose on the coding phase. They think it takes too much time and costs more money. I've been through the whole life cycle and now mostly architect but it's hard to get management to do the proper cycle, they just want results. The more time you spend designing and testing means less time devoted to fixing and adding features later, and most likely removing stuff the kiddies without an architect to ride herd thought were 'neat' addons. Even when I was coding for some startups I always did the design phase first. At more than one shop it didn't take any longer to get to market with a production ready product then a 'code - run - fix - now make it do this or take this out' iterative style without design docs would. In a couple of shops the first release was the final release and would run error free for several years because of up front design and testing.

    --
    Too lazy to create a sig...
  112. No. by EnsilZah · · Score: 2, Funny

    You're a clever one but I'm afraid your sig blew your meticulously constructed cover.

  113. I know! by Anonymous Coward · · Score: 0

    Hawaiian shirt (perhaps on inside-out)
    shorts
    round glasses
    greasy hair
    likes to fidget with pens

    http://www.goldeneye.com/julian/boris.html

  114. Show me someone who can DELIVER... by Alonzo+Meatman · · Score: 1

    What this guy is saying is basically the party line. Find someone who's a "geek's geek." Find someone who's obsessed with technology. Find someone who doesn't have anything compelling in their spare time to do besides write code.

    Here's one for you - how about just showing me someone who can deliver the goods? I've known so many people who fit the description in this article, yet who cannot deliver the goods because they're too obsessed with making "the neatest thing possible," or who succumb to scope creep because they don't know how to say "no."

    I mean, yes, we all want to make our bosses happy and give everyone what they want. And yes, it is instinctual to want to fit the latest, neatest widget into whatever it is that we're doing. But what about actually delivering code? To do so requires strength and discipline. It requires the ability to properly estimate projects and not over-commit. It requires the ability to say "no" to your boss when he's asking for something impractical. It requires the ability to decide which features must go and which must stay in order to make for a stable, timely release.

    Another thing that wasn't mentioned in the article is a sense of elegance, which I think is the key determining factor in what makes someone a good programmer. If someone doesn't have a sense of elegance, they're lost and there's no way to help them. They have to know the difference between a solution and a work-around. They have to know how much complexity is necessary, and how much is too much. They have to know how to write readable, clear code that isn't filled with a bunch of hacks or show-off tricks. Sure, it's impressive when someone loves writing code so much that they taught themselves Ruby or Lisp or Haskell. But I'm more impressed by the guy who, when given a problem, thinks, "there's got to be an elegant way to solve this," and then goes out and learns a new technology not because it's fun, but because it's the cleanest, most logical, most modular way of solving that problem.

  115. Some stupid points by xdeadbeef · · Score: 1

    I think I agree with Paul Graham here, rather than the author. Business types who dont know anything about programming are going to have trouble picking good programmers.

    Here are some nitpicks with the article:

    #1

    Passion is important, although I disagree with "Good programmers will have a tendency to
    talk your ear off about some technical detail of what they're working on".

    If asked, a programmer should tell you about things with passion, but having them blather on about an arbitrary thing just means they probably are spending too much time on it in general.

    I should mention, hearing good criticisms and bitching about what should be different, I see as good.

    "Dammit, why doesn't apple's Cocoa documentation list all of a particular classes APIs in one place somewhere? There's NSString, and AppKit's NSString, ugh" and "Drawing text on OS X is a pain in the ass -- there's at least 5 APIs that all fail in some way or another" would be two examples of what I consider good criticism.

    #2

    Yes, wanting to learn and self teaching are great qualities. Although:

    "In fact, the great programmer will be the one talking your ear off about a new technology that you haven't even heard of, explaining to you why you must use it in your business, even if none of your staff knows how to use it. Even if it's a technology he doesn't know how to use yet."

    This is idiotic. A good programmer should be sensible and reasonable-- not fearing change, but not changing for no good reason (and certainly not for something he doesnt know himself!). And again, talking your ear off about any particular technology is a warning sign. "OH, you just HAVE to use X". BAD.

    #4

    Yeah I really want to see code that they've created (either for fun or otherwise). That says everything.

    #5

    I don't think bleeding edge is worth anything. Variety is good, although I must admit the scope of my programming is mostly limited to assembly and C-like languages, so (rationalizing) it isn't everything, as long as you're willing to learn.

    Of course, the article misses a key point:

    Programming is a medium to accomplish goals. Having someone who understands the goals and vision, and can program worth a shit, is worth more than anything else.

  116. good programmer vs good for me programmer by epine · · Score: 1

    There is a difference between a good programmer and a programmer who is easy to exploit. People who collapse at a young age into a hyperfocussed code-is-my-life every-waking-hour-of-the-day mania are generally engaged in some deep emotional avoidance behaviours.

    10,000 highly focused hours rewriting some major OS or application is probably worth more to your career down the road that the same 10,000 hours editing Wikipedia, or leveling-up in WoW. Many of these people wake up and smell the bacon in their early to mid-thirties having given their best energy to a cause that might not even continue to exist. A small percentage (who are wired a bit differently than most of us) thrive in this mode of living indefinitely; just enough to be held up as models to those of us who can't.

    EA has been particularly good at spotting talented young programmers who are willing to collapse into a 100-hour per week delivery grind to escape having to deal with life on any other basis, without EA having to fully compensate those hours, leading eventually to a lawsuit.

    From an EA perspective, those programmers were the best. Money can't buy you a programmer who is willing to work 100 hours and get paid for 40. You have to spot them yourself.

  117. Takes one to know one by grikdog · · Score: 1

    10K out of 10K+1 bad hiring experiences are caused by psychology majors who find a permanent niche in HR and think they're contributing. My first rule, following the TOTKO principle, is don't hire anyone over 39. They've shot their wad, and all they're really good for is code maintenance, provided they wrote the stuff in the first place. My second rule, don't hire a recent college grad. They don't know squat, so you get gigantic holes in your existing codebase, patched over by tripe that only works 80% of the time. The old stuff only worked 95% before your environment reprioritized everything, for sure, but if you hire a recent grad, either be prepared to whip them through a steep forgetting and relearning curve, or put them on a team far away from design responsibility. My third rule, hire idiosyncratic genius. Communication will be hell for a few months as everyone reaches new consensus on what terms like "embedded" really mean, but the results will be outstanding -- for two years. That's the ENTIRE attention span for anyone who can both plan and execute a project. After the project is over, sign her onto another, different project fast. If you just kick your producing players upstairs or out the door, you will be unable to maintain code (because of the RCG syndrome mentioned above), and your company, or division, or section, will implode, or worse, decay slowly. I.G. can be 40 year old women who took a course after losing a job at a meat packing plant, by the way. Be supple. The exception to my third rule, never ever hire I.G.'s who play dungeons and dragons, or who are exceptionally good at FPS. Automatic asocial disqualifiers.

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  118. Now learned social skills by tronkel · · Score: 1

    I know I'm a great programmer. But I now have social skills too! So nowadays I don't clean my mouse mat by rolling the mouse over it after I used it as a plate to eat my cream cheese sandwich from, while sitting working at the computer - while the others are eating lunch out of the office!

  119. Please by 12357bd · · Score: 1

    There's some programmer out there that doesn't think s/he is really good?

    I think I am good too, of course, but after more than 30 years programming, the more lasting feeling is that we are just artisans, we do what we know, the better we can because we love what we do.

    That's all

    --
    What's in a sig?
  120. my approach: problem solving by wikinerd · · Score: 1

    My approach to evaluating people is simple: I give them real problems to solve. If they cannot find a solution, there is no way working with them even if they have a thousand PhDs from the best universities. If they can solve the problems, then I do not care even if they have no papers at all.

    Papers are useless. Some people think they can save evaluation time. That's wrong because papers are unreliable. A paper with a bad mark may be given to the best programmer, and a paper with a good mark to the worst programmer. Papers in theory are representations of knowledge, but in reality they are just representations; representations of nothing.

    1. Re:my approach: problem solving by ctid · · Score: 1

      My approach to evaluating people is simple: I give them real problems to solve.

      That doesn't sound very simple to me! What sort of problems do you give to candidates? There are lots of different kinds and some people can do some kinds of problem easily but may struggle on other kinds of problem. How can you be sure that you don't just hire good programmers who are good at the same things that you are good at?
      --
      Reality is defined by the maddest person in the room
  121. IBM Graduate Recruitment process by Beliskner · · Score: 1

    IBM Graduate Recruitment process:

    Psychometric testing, followed by group excercise. Group excercise when I went in consisted of:

    Seven people are stuck in a cave, the cave is unstable and could collapse at any moment, who do rescue and in what order, you can only rescue most of them:

    The CEO of a large textile company
    A four year old girl
    An eight year old boy
    A 16 year old man
    An experienced caver but he has a broken leg

    I don't remember the rest of the people

    This was followed by a pseduo-code test set by IBM R&D which was multiple choice:

    This code sets the sequence of an American traffic light which is Red-Green-Yellow-Red, what is the error?

    loop
    light=red
    delay 20s
    light=green
    light=yellow
    delay 2s
    light=Red
    end loop

    What is wrong with the above code? Is it:
    (a)Red light will come on straight after yellow light
    (b)Yellow light will come on straight after green light
    (c)Something else

    I'm sure the /. crowd can come up with something more imaginitive to test l33t HaXoR pseudo-coding skillz

    Followed by interview but I didn't get that far... :-(

    --
    A caveman dreams of being us, the incalculable power and riches. We dream of being Q, then what?
  122. One point is underemphasized.... by drolli · · Score: 1

    A good programmer must listen very well. Not in the sense: I'll take notes and implement everything you say 100% as you said. He should stop you when you ask stupid things of him. He should try to understand what causes you to like a certain feature, definition, algorithm or datastructure. And finally he should be able to give contineus feedback.

  123. Not only can I spell... by AmazingRuss · · Score: 1

    ...but I also have a good sized vocabulary that is instrumental deciding what to name things. Sometimes I'll even get out a thesaurus.

    It's good to know somebody else cares about stuff like this. Just seems obvious to me.

  124. This is actually rather simple by cabalamat3 · · Score: 1

    Ask them what language they code in for fun. If they say they don't program in their spare time, they aren't a good programmer. If they say something recherche like Prolog, Erlang, Self or OCaml, they're a good programmer, and possibly also arrogant or trying to impress. If they say Python, Ruby, Lisp or Smalltalk, they're a good programmer. If they say C++, Perl, C# or PHP, they may be a good programmer, but have wierd tastes. If they say anything by Microsoft with the exception of C#, at all costs do not hire them or they will bankrupt your company. If they say SQL, BASIC, Enterprise Java Beans, or mention UML, be very scared.

  125. How to interview a programmer: by Organic+Brain+Damage · · Score: 1

    Ask a few meainingless questions to let the person get warmed up. Then ask the following: 1. Do you read recreationally? If so, what? (I've worked with hundreds of programmers and never met a good one who didn't read for fun.) 2. Do you enjoy programming? Why? (I've never met a good programmer who did not like programming.) 3. Here, here's a computer, please write a function to convert an arbitrary string of characters into an integer. (There's nothing magical about integer conversion, you could ask for many similar simple programs. You'll be amazed how many people make it to the interview and cannot write a simple program in a short period of time when left alone in a room with a development environment and no internet access.) These 2 questions an 1 short 15-minute task will filter out the good programmers. I have contempt for interviewers who like to use cute little Microsoft-style puzzles to try to figure out how you "think." They are fools who should leave figuring out how people think to Psychologists, Neurologists and Philosophers and stick with trying to figure out if you can or cannot write good programs, work well with others, etc...

  126. How we do it: by Anonymous Coward · · Score: 0

    We keep it easy. Every applicant is given the same requirements, specifications, goals, and time to write a program. We then evaluate their code and the program itself. We benchmark this against what an in-house programmer does in the same time, with the same requirements, whom we rate highly. After that we interview them and find the ones with the appropriate attitude. The failure rate with this method of hiring has been significantly lower than any thing else we have tried. Some interviewees are offended by this process. It is simple, if they do not want to do it, they do not want the job. The benefits that we give people to work for us far outweigh the difficulty of getting the job.

  127. Well, you look at the code they maintain... by jonadab · · Score: 1

    Easy. You look on the CPAN and see what modules they maintain. If they maintain something like DBI or DateTime, they're a good programmer. OTOH if they maintain something like Matt's Script Archive you might want to give them a miss. HTH.HAND.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  128. Agree with "troll" but disagree w/ "offtopic" by IBitOBear · · Score: 1

    See the subject line... Yes, it was a tad trollish, but look at all three replies. Three people paralyzed with the need to analyze the obviously invalid code material, correcting it by half measures...

    Which is all kinds of what "Bad Programming" is all about.

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
  129. No assertion of identical function by IBitOBear · · Score: 1

    Er, no. The first half of the code was predicate as "identical". The second half wasn't.

    Meanwhile, the "code" isn't even close to rational as, if you want to get super literal, it's just a bunch of identifiers so it would be a big steaming no-op or it would be an endless loop of no-ops.

    _Clearly_ a real construct offered as a test would have to be... um... real.

    Funny thing is, out of three responses to the post, nobody looked at the content of the post but each of you hopped on this half of a sentence about a while loop.

    Not very "big picture" on the part of _any_ of the respondents. 8-)

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
  130. If you must pic nits by IBitOBear · · Score: 1

    Well, if you want to get actually literal, you would notice that there are a bunch of identifiers and no actions (no method invocations and no test). In both cases the whole thing is a steaming no-op. 8-)

    Clearly, for any form there are exceptions that can fit in the form and break it....

    But then again, the idea behind the question, and indeed the idea behind the _entire_ post had nothing much to do with the code segment the three respondents have hopped on.

    Which doesn't say much about the ability of the programmers to stay on point or work with others etc...

    Which kind of proves my point... 8-)

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
  131. Re:proper software engineering, design, knowledgab by gr8scot · · Score: 1
    Stored Procedures can be good, if they're not "scattered around the database." I've seen well-written & well-named stored procedures make subsequent programming much easier. But, they were not "scattered," either.

    One thing that drives me crazy is when people don't follow a naming scheme in the database, and with the object classes.
    Wow! Yes, that would tend to defeat the purpose of...well, the computer.
    --
    All 19 hijackers were known terrorists 09-10-2001. Lack of FBI intelligence does not justify warrantless wiretaps..
  132. Good Programmers... by fatp · · Score: 1

    ... write good code, excellent programmers steal excellent code.

  133. 8th BME International 24-hour Programming Contest! by Anonymous Coward · · Score: 0

    Do you like programming? Can you take challenges? Would you match yourself with others?

    Here is your chance! Grab it!

    The Electrical Engineering Students' Hungarian Association and the Károly Simonyi College for Advanced Studies are proud to present the

    8th BME International 24-hour Programming Contest!

    If you have missed the previous seven occasions, it is now time to join the adventure!

    This contest is a real test of creativity, knowledge, endurance and team-work, an EXTREME CHALLENGE! Sponsors and the offered prizes worth 5000 euros contribute to the high standards of the contest. The team which gaines the utmost points can take home the award and the cup.

    Those teams which will have finished registration until 17th February 2008, must do their best during the online preliminary quailifier on 24th February 2008. The best performing thirty teams can participate onsite at the Finals in Budapest Hungary, between 2nd and 4th of May 2008. During the 24-hour advanturous round, the contestants will have to solve one, but extremely complicated and interesting task. They will need all of their knowledge in the field of algorythms theory, artificial intelligence and program design, and also well-used team work competence is desired.

    The contestants will be allowed to use their own computers. Technical background and catering will be provided. There are no restrictions on the hardware, software and support they use, but communication with the outside world is strictly forbidden.

    For further information and for tasks from the previous years please visit the official homepage of the Challenge where future occurrents will also be available for everyone.

    If you are not afraid of eXtreme challenges , you do not have anything else to do just to establish a team of 3 members and register at http://www.challenge24.org/ ! Participation is completely free of charge.

    Have fun and good luck!
    The Organizers

    Deadline for registration: 17th February 2008
    Website: http://www.challenge24.org/
    For further information please check our website, or contact us by email

  134. 8th BME International 24-hour Programming Contest! by challenge24 · · Score: 1

    Do you like programming? Can you take challenges? Would you match yourself with others?

    Here is your chance! Grab it!

    The Electrical Engineering Students' Hungarian Association and the Károly Simonyi College for Advanced Studies are proud to present the

    8th BME International 24-hour Programming Contest!

    If you have missed the previous seven occasions, it is now time to join the adventure!

    This contest is a real test of creativity, knowledge, endurance and team-work, an EXTREME CHALLENGE! Sponsors and the offered prizes worth 5000 euros contribute to the high standards of the contest. The team which gaines the utmost points can take home the award and the cup.

    Those teams which will have finished registration until 17th February 2008, must do their best during the online preliminary quailifier on 24th February 2008. The best performing thirty teams can participate onsite at the Finals in Budapest Hungary, between 2nd and 4th of May 2008. During the 24-hour advanturous round, the contestants will have to solve one, but extremely complicated and interesting task. They will need all of their knowledge in the field of algorythms theory, artificial intelligence and program design, and also well-used team work competence is desired.

    The contestants will be allowed to use their own computers. Technical background and catering will be provided. There are no restrictions on the hardware, software and support they use, but communication with the outside world is strictly forbidden.

    For further information and for tasks from the previous years please visit the official homepage of the Challenge where future occurrents will also be available for everyone.

    If you are not afraid of eXtreme challenges , you do not have anything else to do just to establish a team of 3 members and register at http://www.challenge24.org/ ! Participation is completely free of charge.

    Have fun and good luck!
    The Organizers

    Deadline for registration: 17th February 2008
    Website: http://www.challenge24.org/
    For further information please check our website, or contact us by email