Los 10 Atributos principales de un buen programador

encontrado en:

http://eureka3d.com/blog/2007/the-top-10-attributes-of-a-great-programmer/

With all the latest attention again on what does and doesn’t make a good programmer, I couldn’t help but put together my own top 10 list.

  1. Being a great problem solver.
  2. Being driven and lazy at the same time.
  3. Ability to understand other people’s code
  4. Having a passion for programming
  5. Loving learning for the sake of learning
  6. Being good at math
  7. Having good communications skills
  8. Strong debating skills
  9. Extreme optimism
  10. Extreme pessimism


After putting together this list some aspects surprised me, and I was the one who put together the list. So let me explain each in detail.These attributes describe those I’ve found in pretty much every great programmer I’ve come across. There were a number that fell through the cracks and I’ll explain those later.

  1. Being a great problem solver – Hopefully everyone recognizes this one. Most good programming is all about being able to find solutions where others can’t see them. If you don’t have this skill the others matter far less.
  2. Being driven and lazy at the same time – This one surprises some people. Programmers question things and are often “too lazy” to take the long route. The will spend countless cycles trying to simplify the problem and simplify their task. That said they having a burning need to get the job done, they just want to do it as efficiently as possible.
  3. Ability to understand other people’s code – This point is essential but cuts some good programmers off from being great programmers. It doesn’t matter how well you can rewrite everything yourself – you need to be able to work with other people’s code on existing projects, lean on opensource in new projects, and learn good techniques from the code base that is already out there.
  4. Having a passion for programming – on some level you have to love programming for programming’s sake. I suppose to be truly great at anything you have to love it in most cases.
  5. Loving learning for the sake of learning – Programming is a moving target. Unless you love the art of edification you will sink fast. There are no laurels to rest on and no one cares what you did yesterday. Unless you are aware of the techniques on the horizon, you won’t be ready to embrace them when they become relevant.
  6. Being good at math – Different people will have different opinions here – but at the very least having a strong grip on pre-Calculus math. I’ve never seen a great programmer without a solid grasp of at the very least algebra and trig.
  7. Having good communications skills – This doesn’t mean that they can communicate with anyone and everyone. Specifically this means that they are able to clearly express their thoughts on their own terms. I’ve met plenty of great programmers who couldn’t communicate well with the world at large. However, given someone to talk to who understands the problem domain, they were all able to clearly state the problem and the solutions proposed.
  8. Strong debating skills – This follows the same logic as #7.
  9. Extreme optimism – Great programmers I have encountered have an insane certainty they can get the job done once they have chewed on it a bit.
  10. Extreme pessimism – Great programmers I have encountered have an insane insistence that when they lack the information needed to make a good judgment that they won’t be able to make one at all.

Some of the things I instinctively wanted to put on the list but couldn’t say were true of at least 95% of great programmers include the following:

  1. Being extremely organized – Understanding when and where organization is important, yes. But anal attention to detail is something present in great programmers as often as it is people in other disciplines.
  2. Being good at managing other people and or programming projects – Somehow these skill sets are wonderfully synergistic when they sit side by side, but management and programming are often completely different disciplines.
  3. Being able to write good design documents – Same as #2. This skill may make some people better programmers and I am in favor of learning it. However, plenty of great programmers I have encountered couldn’t write a coherent design doc if their life depended on it. This will know doubt be debated by heavily by some.
  4. Having an ability to estimate time frames – Once again like #2. This is an acquired skill and a very useful one. However, I have seen absolutely zero correlation between great programmers and estimation skills.
  5. Prolific reading of tech books – I do this all the time myself, but many great programmers don’t. Let me be clear though – most programmers who aren’t all that hot could definitely benefit from bootstrapping their skills with some good reading.
  6. Ability to transfer their programming skills to any programming domain – Although many can, some great programmers can’t, or refuse to, grok other programming technologies. I like to think that this is a “refuse to” situation.
  7. Write code that is correct the first time around – Many great programmers commonly have syntactic issues flagged by compilers or at runtime interpretation. Some are zealots about the details the first time out, others are much more “extreme” in this area.
  8. Having other areas of great skills – some great programmers are good at only one thing – programming.
  9. Social or antisocial – Great programmers come in both forms.
  10. Are someone you’d want on you team – Unfortunately some of them just can’t work with others well.

7 comentarios

  1. I think this is among the most important information for me.
    And i am glad

    reading your article. But should remark on few
    general things, The website style is

    perfect, the articles is really great : D. Good job, cheers

  2. I like what you guys are up too. Such intelligent work and reporting!
    Carry on the

    superb works guys I’ve incorporated you guys to my blogroll.

    I think it will improve the value

    of my site🙂

  3. Oh my goodness! an amazing article dude. Thanks Nonetheless

    I am experiencing subject with ur rss . Don’t know why Unable

    to subscribe to it. Is there anybody getting equivalent rss drawback?
    Anybody who knows kindly respond. Thnkxxx

  4. Great post. I used to be checking constantly this weblog and I’m

    inspired! Extremely useful information specifically the

    last section🙂 I maintain such

    info much. I was looking for this certain info

    for a long time. Thank you and good luck.

  5. Have you ever considered creating an e-book or guest authoring on other

    websites? I have a blog centered on the same information you

    discuss and would love to have you share some stories/information.

    I know my

    visitors would value your work. If you are even remotely interested, feel
    free to

    shoot me an e mail.

  6. hi!,I like your writing so much! share we communicate more about your
    post on AOL? I need a specialist on this area to solve my problem.
    Maybe that’s you! Looking forward to see you.

  7. Hello, i think that i saw you visited my weblog so i came to “return the favor”.
    I’m trying to find things to enhance my website!I suppose its ok to use some

    of your ideas!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: