|<<>>|10 of 322 Show listMobile Mode

Guide to being a good person and programmer

Published by marco on

 The article The Best Programmers I Know by Matthias Endler seems almost too good to be true. NGL I feel seen. I have cited heavily from it, highlighting the parts I find especially interesting. At the end are a few pallid notes from me, but the meat of this article is the quote.

  • Read the Reference
  • Know Your Tools Really Well
  • Read The Error Message
  • Break Down Problems

    If you work as a professional developer, that is the bulk of the work you get paid to do: breaking down problems. If you do it right, it will feel like cheating: you just solve simple problems until you’re done.
     

  • Don’t Be Afraid To Get Your Hands Dirty

    […] read a lot of code and they are not afraid to touch it. They never say “that’s not for me” or “I can’t help you here.” Instead, they just start and learn. Code is just code. They can just pick up any skill that is required with time and effort. Before you know it, they become the go-to person in the team for whatever they touched. Mostly because they were the only ones who were not afraid to touch it in the first place.
     

  • Always Help Others

    Great engineers are in high demand and are always busy, but they always try to help. That’s because they are naturally curious and their supportive mind is what made them great engineers in the first place. It’s a sheer joy to have them on your team, because they are problem solvers.
     

  • Write

    Most awesome engineers are well-spoken and happy to share knowledge.

    The best have some outlet for their thoughts: blogs, talks, open source, or a combination of those.

    I think there is a strong correlation between writing skills and programming. All the best engineers I know have good command over at least one human language – often more. Mastering the way you write is mastering the way you think and vice versa. A person’s writing style says so much about the way they think. If it’s confusing and lacks structure, their coding style will be too. If it’s concise, educational, well-structured, and witty at times, their code will be too.

    Excellent programmers find joy in playing with words.
     

  • Never Stop Learning

    If there is a new tool they haven’t tried or a language they like, they will learn it. This way, they always stay on top of things […] the best engineers don’t follow trends, but they will always carefully evaluate the benefits of new technology. If they dismiss it, they can tell you exactly why, when the technology would be a good choice, and what the alternatives are.
     

  • Have Patience
  • Never Blame the Computer

    No matter how erratic or mischievous the behavior of a computer seems, there is always a logical explanation: you just haven’t found it yet!

    The best keep digging until they find the reason. They might not find the reason immediately, they might never find it, but they never blame external circumstances.

    With this attitude, they are able to make incredible progress and learn things that others fail to. When you mistake bugs for incomprehensible magic, magic is what it will always be.
     

  • Don’t Be Afraid to Say “I Don’t Know”

    The best candidates said “Huh, I don’t know, but that’s an interesting question! If I had to guess, I would say…” and then they would proceed to deduce the answer. That’s a sign that you have the potential to be a great engineer.
     

  • Keep It Simple

    Clever engineers write clever code. Exceptional engineers write simple code.

    That’s because most of the time, simple is enough. And simple is more maintainable than complex.

I disagree with the “Don’t Guess” one, in that I think “guessing”—forming a hypothesis—is the crux of scientific investigation. I think what the author probably meant was to “don’t leave a guess unproven.”

An addendum to the “magic” one above is that you should also know when to cut bait, i.e., when it’s not worth anyone’s time to find out what the real reason was. This can happen in one-off scripts, or in tight-deadline situations. Sometimes, you have to back-burner an investigation and either never bring it back to the front burner or learn the lesson at a later time.

But, yes, every problem solved is a bit of experience. It’s all worth it. A couple of decades of doing that and you might really have something.