Tuesday, December 9, 2008

Good programmer

Bjarne Stroustrup on Educating Software Developers

From your experience as a programmer, what is it that makes a great developer? Can you point out a few qualities, both technical and personal?

Curiosity, initiative, tenacity, ability to reason logically, ability to communicate and to work with others. That’s not at all special for programmers, I’m afraid. Also, I strongly prefer to be around people with a sense of humor.

Your advice for young programmers -- or for not-so-young programmers?

Programming is part of software development. It doesn’t matter how fancy your code is unless it solves the right problem and you can explain it to others. So, brush up on your communication skills. Learn to listen, to ask good questions, to write clearly, and to present clearly. Serious programming is a team sport, brush up on your social skills. The sloppy fat geek computer genius semi-buried in a pile of pizza boxes and cola cans is a mythical creature, best buried deep, never to be seen again.

Learn your first language well. That means trying it for difficult tasks. Don’t obsess about technical details. Focus on techniques and principles.

Learn another programming language; choose any language that’s quite different from what you are best acquainted with. You can’t be a professional in the IT world knowing only one language. No one language is the best for everyone and for everything.

Don’t just do programming. Computing is always computing something. Become acquainted with something that requires your software development skills: Mediaeval history, car engine design, rocket science, medical blood analysis, image processing, computational geometry, biological modeling, whatever seems interesting. Yes, all of these examples are real, from my personal experience.


How come programmers like one technology, but dislike another? Personally, I believe software engineers enjoy technology that feels right, but dislike everything that doesn’t.

I find the phone so irritating that I avoid using it whenever I can. Nobody likes having to do random things, especially when those random things apparently depend on some equally random context you wish you didn’t have to know about in the first place.

When Qt’s original architects faced a problem, they didn’t just look for a good solution, or a quick solution, or the simplest solution. They looked for the right solution, and then they documented it.Granted they made mistakes,and granted some of their design decisions didn’t pass the test of time, but they still got a lot of things right, and what wasn’t right could and can be corrected.

Matthias Ettrich
Oslo, Norway
November 2003

in C++ GUI Programming with Qt 3

Most people are not incredibly knowledgeable about computers. There's a big difference. Pretty much everyone is very good at something. That's why some people get paid to sell merchandise, design hardware, repair engines, cook food, synthesize chemicals, or perform surgery, and others get paid to solve computer problems. by blincoln (592401)

What If IT Pay was Performance Based?

How to Survive the Outsourcing Boom
A versatilist is a multi-skilled tech professional. A versatilist starts with a strong depth of knowledge in one area, like application development or IT financial planning. “They then broaden their expertise, their track record, their recognition and their experience over time so that they stretch into multiple domains of expertise,”

No matter what specific skills he or she has, the versatilist is:

• Tapped into multiple knowledge networks

• Tapped into multiple social networks

• Able to offer value that cannot be easily commoditized and transferred

Often, this special value comes from excelling at face-to-face interactions, Morello notes. Also indispensable are staffers who work directly with interpretation of business or consumer requirements. “Those are the ones whose positions and roles may be secured longer than others.”

The key word here is interpretation. The versatilist is able to understand and synthesize trends from many industries.

“It’s what I would call ‘contextually connected.’ It’s the people who are deeply tapped into the context of the business and industry and the requirements that are going on there.”


Are Your Developers Goofing Off?

joelonsoftware:"Being really competent" or just "looking busy" ?

No comments:

Post a Comment