Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Questions here talk about most important programming skills someone is supposed to possess, and, a lot of great answers spring up. The answers and the questioners seem mostly interested on qualities related to getting a better job, nailing some interview, things desired by boss or management, or improving your programming abilities.

One thing that often gets blown over is the genuine consideration for what traits peers want. They don't much value things like you're one of those 'gets things done' people for the company, or you never miss a deadline, or your code is least painful to review and debug, or you're team player with fantastic leading abilities.

They probably care more if you're helpful, are a refreshing person to talk to, you're fun to program in pair with, everybody wants you to review their code, or something of that nature.

I, for one, would care that I come off to my peers as a pleasurable programmer to work with, as much as I care about my impression on my boss or management.

Is this really significant, and if yes, what are the most desirable traits peers want from each other.

share|improve this question

closed as not constructive by Jon Hopkins, Walter, Thomas Owens, ChrisF Sep 20 '11 at 12:50

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

4  
How is this question specific to programmers, after you having closed out all programming specific skills from the possible answers? The same traits & skills which make you a good member in a programming team would make you equally pleasurable in a financial trading team or a road construction team should you happen to work there. –  Péter Török Sep 20 '11 at 12:01
1  
@PéterTörök There are non-programming skills that are relevant to programming, e.g. I'm sure you could write a good argument as to why curiosity is good for a programmer specifically. –  StuperUser Sep 20 '11 at 12:15
    
@StuperUser, is curiosity "a trait of a programmer desired by peer programmers", or does it make you "a pleasurable programmer to work with"? –  Péter Török Sep 20 '11 at 12:51
    
@PéterTörök it's a trait that has a specific effect on one's work as a programmer as opposed to financial trading/road construction. I desire it in my peers so they will investigate issues properly and learn about new technologies. –  StuperUser Sep 20 '11 at 12:59
    
@StuperUser, well, IMHO curiosity is not very closely related to investigating issues properly. Learning about new tools/technologies, yes. But do you seriously think the tools & technologies used by financial traders and building companies aren't developing constantly? :-) –  Péter Török Sep 20 '11 at 13:31

7 Answers 7

up vote 9 down vote accepted
  • Humility: so they will keep improving and not get shirty about defects
  • Patience: so they will help others, will listen and think through for the best solution rather than rushing
  • Sympathy: so they will think of others (developers, testers, business guys, users) with their code, APIs and deliverables

I don't care how smart a developer is, if they're rude (for whatever reason) then it's hard to work with them and their code.

share|improve this answer

Here is my list what I find important for peers (with decreasing importance):

  1. kind and helpful (part of being a team player, so I do value that)
  2. fun to work with, e.g. enthusiastic and humorous (part of being a team player, so I do value that)
  3. smart and has a lot of knowledge
  4. writes clean code (so I do value that)
  5. gets things done (so I do value that)

So 80% are from your "don't much value"-list. I'm really curious what others think. Great question (with a provocative description ;)

share|improve this answer
    
When you've had the misfortune of working with people who can't get things done, you'll put it at the very top of the list –  user16764 May 31 '12 at 22:35

For me, the single trait I most want to see in my peer developers is a love of writing clear, concise code comments and documentation about their code changes.

This makes my job easier if I am reviewing their code, debugging it, maintaining it, or reusing it; all tasks that I'm likely to face working with them in the future.

Importantly, I distinguish between being willing to write documentation and enjoying writing it, because mere willingness too often breaks down under time pressure. Also, I'm talking about short, poignant descriptions of the why code is doing what it's doing, not superfluous or overly verbose commenting.

share|improve this answer
    
+1 if I could mark two best answers, this would be the second. –  good_computer Sep 20 '11 at 13:35

Good communication, written and verbal.

Teams depend on lines of communication. If someone can't communicate well then lines of communication to and from them are likely to be unreliable, unclear or downright broken. If that happens you're no longer talking about a team but a collection of individuals notionally working on a shared problem.

share|improve this answer
    
+1. Programming is communication! The fact that if you express yourself unambiguously enough that your peers can understand you, a machine can also understand you, is just a side-effect. (A very important and welcome one, yes, but a side-effect nonetheless.) If you can't communicate, you can't program. If you cannot even express yourself in such a way that the most powerful language processor in existence (the human brain) can understand you, how is something as stupid and unsophisticated as a compiler supposed to? –  Jörg W Mittag Sep 20 '11 at 12:49

For me, programmers should be:

  • Curious about learning new things.
  • Humble.
  • Helpful.

Programmers should not be:

  • Judgemental.
  • Ignorant.

Edit: Then again, this applies to pretty much all jobs I can think of, or even humanity as a whole.

share|improve this answer

I think Larry Wall comes pretty close with his virtues of a programmer, which I find even more important when working in a team:

  • Laziness - The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.
  • Impatience - The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris.
  • Hubris - Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.

"Communication skills" would be "nice to have", though.

share|improve this answer
    
How can laziness, impatience, and especially hubris be desired by others? –  good_computer Sep 20 '11 at 12:30
2  
Excessive pride does not make you write programs that other people won't want to say bad things about. It just renders you unable to deal with it when they inevitably do. –  OrbWeaver Sep 20 '11 at 12:33
    
Laziness: E.g. you won't a peer doing "copy and paste", but factoring out common things. You want code that doesn't need explanations. Impatience: You don't want a peer using slow algorithms or unnecessary DB round-trips. Hubris: Most importantly, you want to learn new and brilliant things from your colleague, and very likely you won't get this from very modest people. It looks like you don't understand that peer programming is not about having a nice time, it's about writing great applications. Of course my answer was tongue-in-cheek, but there is truth in it. –  Landei Sep 20 '11 at 20:47
  1. A good personality its important to get along with your colligues
  2. A love of coding programming is a hobby as well as a job to me. I would find it hard to work with somone who didnt get excited by new things and have a genral intrest in the subject.
  3. Careful. Dont break my shit
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.