Sign That You’re A Good Programmer

Programmer Job InterviewWhat makes a programmer good at their craft? For years, organizations which hire programmers have reasoned with this question. Yet, the criteria for selection of a “good” programmer differs by the lot. As candidates, most programmers are put through tough technical interviews, grinding analytical tests, and twisted coding sessions. Employers also review attributes like past work experience, skill-set, education qualifications, references etc. With all sorts of characteristics to gauge, it becomes very difficult to recognize a good programmer, let alone to hire one.

After reading an article titled ‘Signs that you’re a bad programmer‘, I thought hard at what makes a good programmer. No wait, let me rephrase that, for the reason that everyone (including yours truly) is marginally horrible at programming. It’s a craft that takes decades to excel, if not to perfection. So the real question then is, what makes a programmer less horrible?

I have been interviewed for job roles, and I have interviewed other people on occasions. I’ve also been gracefully delegated the awkward task of firing a programmer. To my comprehension, following all these years as a programmer, the most reasonable sign that you are a less horrible programmer is your ability to build stuff during your spare time that serves a utility or solves a problem (maybe your own). When programming becomes a hobby, and as side-projects start taking shape, you’ll start getting marginally less horrible. Even better if those side-projects are collaborative.

This inherent trait shows that such programmers are passionate about the craft as they indulge in “extra-curricular” problem solving. An ad-hoc practice with a variety of small projects also improves the quality of work and estimation accuracy. This skill of utilizing time for 20% of the causes is what makes a (talented) programmer less horrible. Moreover, when you are both the teacher and the student, you’ll find it easier to surpass any illusory superiority. Programmers who strive for a process of continuous learning through self-teaching can be distinguished much easily than with conventional steps of recruitment.

15 thoughts on “Sign That You’re A Good Programmer

  1. This is a very interesting article. I myself think that software developers and programmers should have side projects. It helps to build ones expertise and increase experience.

  2. This has been an interesting post, but I cannot say that I agree with everything that has been said here. As a professional, closed source developer (participating in hiring people) I am surprised to find so many who believe that open source development produces better programmer than closed source.

    While I will say that open source programmer are very skilled in coding, I find that open source tends to produce products that are only partly complete (some would call it the hard stuff, others would call it the fun stuff). When developing commercial software we always have to address all the details (user interface, correctness and deployment).

    I would prefer to find developers that understand the need for producing a professional products that work correctly, looks good, install easily and has professional documentation. I think that the ability and willingness to work through the later stages of the product implemenation. While these stages are less glamorous, they too require skill that not all programmers possess. Open source projects tend to produce products that work well but with less emphasis on the “finition”. If you believe the 80/20 rule, I find that many open source products implement the first 80% very well, but procrastinate on the last 20%. I am, thus, concerned that open source developer lack the discipline necessary to add the last layer of polish to commercial products as it is not always part of the open source culture (And yes, it is not always part of the closed source culture either).

  3. I disagree. I don’t program as a hobby. I’ll read programming related books, blogs and tons of other stuff. I visit conferences, barcamps and user group meetups in my spare time. I’ll tweak my home network and server, I’ll do tons of geeky stuff, programming related or not, but I don’t program in my spare time. At least not anymore.

    I program for 5 days a week, I like it and I invest plenty of time in becoming a better programmer every day. But life, and even just this profession, has too many other interesting things to offer to also do it for a hobby.

    Having said that, this may have something to do with age and experience. Although I never stop learning, I don’t have much to examine or proof in terms of my programming ability. There’s plenty of useful stuff I can still learn, but as far as pure programming is concerned, I think I’ve got that nailed. I *know* I’ll be able to learn language X in a few days (okay, a totally different paradigm will take a bit longer), just as I know it will take years of intensive use to be really proficient in any language. But I’m not doing it just for fun.

    I’m deeply passionate about software development, but not as a hobby.

    And BTW, I’ve known plenty of programmers who do lots of coding as a hobby, and who are absolutely crap programmers who don’t give a damn about their “craft” and produce horrible code. They like hacking stuff together on a computer, which is fine and some of the stuff they hack is even pretty awesome, but it makes them about as qualified to be a professional programmer as I am qualified to be a plumber or a carpenter just because I sometimes fix stuff around the house.

    Most amateurs will remain amateurs, no matter how passionate they are about their hobby. Building stuff in your spare time doesn’t make you a programmer, never mind a good one.

  4. Moin,

    a real programmer is like a musician, a maniac.

    A real musician becomes depressive, if he can not do music every day. A real musician will play music regardless of money, for himself, for friends, for people who might listen to it, regardless if they like it or not.

    My favourite interview questions are:
    - Tell me about your last free software project.
    - Tell me about your network.
    - What happens, if you type your name into VI?

    ciao,Michael

  5. I remember reading a book years ago by the animator who did the 7 dwarves from ‘Snow White’ and he stated that the animators that improved were the ones that studied their craft away from the Disney studios.

    Same principle applies here as well.

  6. I agree completely. I enjoy asking the interview question “tell me about your home network” – the folks who grok networking are the ones you have to stop explaining. The ones who look at you scared and mumble something about a Linksys switch are probably not keepers.

    I look for candidates with linux skills even for Windoze positions and for experience working with open source and especially having conributed code and had other people look at that code. It’s by far the single best selection criteria for me in sifting the wheat from the chaff.

    1. Greg,

      That may be a good criterion for a systems admin, but not a programmer. True, many developers spend time on networking and operating systems, and are good at it.. but to say that is a quality of a good programmer is false association.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>