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."

5 of 529 comments (clear)

  1. 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.

  2. 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.

  3. 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.
  4. 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.
  5. 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.