- Peer Review
- Accepts criticism of their code and is always trying to improve.
- Gives criticism. And not the drive by 'This sucks. Make it better', demeaning, vulgar criticism. Something that can actually help that person improve their code. 'This code is bad because X. Try Y instead.'
- Knows when not to give criticism. Nobody cares that your favorite language is XXXX, and you think everyone should code everything in it. Or even specific things in specific languages. Language is irrelevant. Specs are not. If someone wrote a beast IRCd in Whitespace, what you should be focusing is on the word 'beast'. Not 'Whitespace'.
- Your Attitude
- Doesn't act elitist. Acting elitist is an excellent way to get your co-workers to hate your guts. Especially because they've seen and tested your code, and know it's not true. Everyone can improve somehow, and you're no exception.
- They're always willing to pick up new, more efficient and/or effective habits and ideas. Refusing to even try new methods will quickly drive you into the ground.
- Can take even the vulgar criticism and do something positive with it. However, note the word criticism.
- Your Actions
- Google's decision to drop H.264 support in Chrome is a perfect example of a bad decision. What would make Google think that the entire internet would bend to their will and surrender a more efficient technology (ignoring Acer's 3.5% increase) that's already widely used in production software for a less efficient one? Similar results for quality occur in H.264 vs. Theora as well.
- While most everyone is thinking I'm going to write something about how awesome open source is here, I'm not going to. That's because of the people who call themselves programmers, and don't fit my definition in all the worst ways. I actually had somebody tell me this:The IRCd wrote:<Person> Plus, people would demand open source. *sigh*
<bren2010> Why not open source?
<Person> Because people no longer thank you, they criticise you.
<bren2010> Look at Microsoft. They get criticised anyway.
<Person> I'm talking from personal experience.
<Person> Making software is fine, and people thank you for it, until you make it open source, then they pound your code to hell with criticism without a single thank you.
You can't exactly blame him. There are plenty of the kind of people I'm talking about that will tear his code to shreds and give him hell for every line.
Perhaps later if developers have more reason to open source, I will.
Something to note I did not say: "Take pride in your work"
While you can and should be proud of what you've written, do so in moderation.
Please, feel free to debate and add on.