How do you know when someone is a good programmer?

Question
Mudassir Ali 7 months 1 Answer 94 views

Answer ( 1 )

  1. Originally Answered: How do I know when I have a good programmer?
    It’s actually quite difficult as even “experienced” programmers can remain deluded for years about how much they suck. But here are a few good signs and bad signs that may help you:

    Good Signs
    S/he reads a lot of programming books and blogs.
    S/he has a number of completed and actively maintained projects.
    S/he actively contributes to one or more open source projects.
    S/he knows more than one non-markup/stylesheet language.
    S/he is frequently playing with new technologies, e.g. new languages, new libraries/frameworks, new datastores, new messaging systems, etc.
    S/he is active in the programming community, either by participating in conferences, contests, hackathons, meetup/user groups, or online communities or perhaps even operates hir own programming blog.
    S/he spends at least as much time reasoning through a problem on paper or whiteboard as actually typing and implementing the solution.
    S/he makes effective use of build automation and other time-saving techniques.

    Bad Signs
    Messy, poorly formatted/commented code
    Doesn’t use a version control system
    Never reuses code
    Uses a single programming language or solution stack for every single problem
    Has never heard of testing
    Doesn’t have a single project up on Github, SourceForge, Google Code or any other public repository
    Views programming purely as work and doesn’t do any programming-related activities outside of work
    Writes very long single functions (stuffs all code into index.php or main()) often comprised of long series of if/elseif statements
    Poorly named functions/variables
    Has never heard of or used architectural patterns like MVC, MVP, MVVM, and the like
    Always has to “roll-hir-own” and refuses to ever use pre-existing solutions

    Though, ultimately, it still takes a skilled programmer to be able to accurately evaluate another programmer, which is why it’s so important to get that first good programmer on your team.

Leave an answer