Originally asked on Reddit here, I found this question interesting. Since I've started programming 10 years or so ago, my personality has gotten more prickly as I pack on more and more years as a programmer. Why is this?

I'll post glomek's answer on Reddit to start the conversation. It was the answer most modded up.

I suppose that you might have just been unlucky enough to hang out with the wrong programmers, but I'll give the ones you know the benefit of the doubt and assume that they are more or less normal.

Programmers are detail oriented. If we leave out one character by mistake we can introduce a subtle data corruption bug or a crashing bug.

We work very hard to say exactly what we mean. When interacting with us, it is easy to get the sense that we are pedantic assholes because we are frequently asking for clarification on trivial points that you haven't thought about or correcting what seem like unimportant mistakes in what you say.

What you need to understand is that all of those annoying pedantic points are things that we need to understand, and that we need to understand correctly, if we are to have any hope of giving you anything useful.

So try to be patient with us. If we seem to be demanding unreasonable levels of detail, please remember that it is because we need them in order to give you what you want.

The typical computer program cannot have judgment. It cannot "understand" much of anything. It mindlessly follows a bunch of instructions, no matter how sensible or stupid those instructions are. Getting those instructions right is our job, but in order to do it we need to understand the task at hand. We need to understand it completely, unambiguously, down to every last decision, without any "rules of thumb" or "do what makes sense" type of steps, not even any trivially insignificant ones.

Also, we tend to complain when you change your mind about what you want after we have written it. This is because programs are delicate things. They tend to only be easy to change in ways that they were designed to be changed. Changes that were not anticipated in the initial design can be very difficult and time consuming, and are dangerous as they can introduce subtle bugs. If you think over your experiences, I'll bet that most of the time when a program took longer to deliver than you wanted, you changed your mind about something after development had started.

Now you might have thought that the change was a small one, but it probably wasn't small at all to the programmer.

So, if you want to get along with programmers, I can offer these two pieces of advice that will make it much easier:

  • Figure out what you want. Completely.
  • Don't change your mind once development begins.

Obviously, these cannot be done all the time, but do your best, and whenever you fail, understand that it is your fault, and not the programmer's, that the conversation is difficult or the product is being delayed.

79 accepted

Because they DO! Goddammit what a dumb question. I'm busy.


my personality has gotten more prickly as I pack on more and more years

I think that's called 'growing old'


I think the biggest part of the problem is that programmers are task-focused, and precise people, by virtue of the fact that they spend most of their time talking to a computer. When the most significant part of your life is as exacting as a machine, there is a frustration that creeps into the rest of your life when you're forced to deal with imprecise, fickle, emotional, sloppy, lazy people, who are the exact opposite.


So you spend all day playing with this nice, reasonable, logical computer. You only need to tell it things once and they get done. You break down every problem into nice simple bits, each one having a perfect black and white disposition, being either absolutely right or wrong. All things that happen are explainable, and the functioning of the machine is perfectly deterministic (although increasingly complex these days). You get into this groove where nothing in the computer world can stand in your way. It's just a matter of finding the right parameters and changing them. It can be done, it can be fixed. It is clean, safe world. One that we spend a lot of time exploring.

After work, you stumble out of the office, onto the noisy streets with weird people hanging all over the place and garage scattered all around. The economy is a mess, and the office you left behind is filled with nasty back-stabbing politics. It's a gray, un-deterministic muck that is constantly changing, never really getting better, never really getting worse. Everybody is polarized over stupid religious issues, arguments are never won, or ever lost they just go on forever. Our world is filled with indecision, rudeness, stupidity and ugliness, not to mention the fact that nothing ever gets fixed, it just seems to decay slowly year after year.

The juxtaposition of what we do verses where we exist would make any sane person cranky. And, even more cranky once you realize that the ugly, messy, noisy, irritating real-world keeps popping its ugly head into our nice pretty, clean, computer one. Stupid users!



Fun question for sure, but a simple answer: since programmers get really comfortable socializing with machines and having impersonal relationships with people on sites like StackOverflow, they slowly lose the real-world communication skills.


I really think it comes down to the fact that people don't really know what programmers do. I mean they do, they know we program, but the don't understand some of the complexities of what they ask. A lot of times they make the comment "I want you to change this," and they don't get why it is hard. I don't think I have really ever been in a position to say, "no we aren't doing that, or we can't do that, because the system doesn't work that way" We generally have to cave to other demands, which makes our life harder. We're bad negiotiators, and it hurts us. Also, I think a lot of organizations treat programmers like they are grunts. Managers need to make desicions, that's why they are managers. It wears on you after a while.

It's sad to say that I have seen people be fired, because of essentially job stress relating to this.

An excellent book which talks about this is Rapid Development by Steve McConnell. It talks about a lot, but it really covers why projects go wrong and why programmers get angry and quit.


Experience ... the longer I'm in the business the more I believe the following phrase ...

"Make something idiot proof and they just go and build better idiots"

The first few years you think it's amusing .... then is things just go downhill. Maybe I am getting old but I get less tolerant of true stupidty. I'm not talking about the people who don't know how to use computers ... there are alot of folks who just aren't computer savvy but they're willing to learn and they LISTEN to you when you explain things. My animosity is reserved for people who say things like ... "Oh it's just a simple database change ... how come it's taking you so long ??" or "It's just changing a few things on the form .... how long can it take ??"

I think it's also got alot to do with the type of management I've come across. The prime example that really changed my perception was actually listening to a high level manager say "Lets just remove all referential integrity from the database and we'll do it all programmatically". I've never seen a DBA come across a table before ... but that was about as close as I've seen. All the color drained from the DBA's face and he launched into a tirade that I can hear even 5 years later in the back of my mind.


I think it is a matter of the type of faction of programmer you are around falls into. There are programmers who work on a team every day, with varying opinions, but who get more social and are better at relating ideas as they get older. Then there are the programmers who, for whatever the private or professional reason, work alone. They bang out code, in their set way, in a more anti social atmosphere, and after years like this, they are less able to deal with direct criticism and are more likely to take things as criticism.

At least, this is what I have taken from my experience between working in a large institution and from working in a smaller company with a large range of fellow programmers.


For me personally, I find two major reasons:

  1. I'm very A.D.D. I get totally focused on one action for a while, and I don't want to be interrupted, or I will loose focus for days.

  2. When I get home from work, I've usually been thinking intensely for hours on end. My brain is tired. I don't want to have to think about what's for dinner, or what I want to do tonight. I just want to veg-out for a while. Now physically, I'm ready to go. I'll work on the house or on my car without complaint. Just don't try to make me think!


Not all programmers are prickly.

I will say that many programmers are, in one way or another, strange.

As a guy who has management responsibilities, you can probably imagine that I sometimes wish progammers would just behave like all the other grown ups I know. It makes my life harder.

However, if I had the chance, I don't think I would take the strangeness away. It's part of the magic that makes us good at this.

To answer your question: It's a form of the genius-madness dichotomy.


Fun question. I'm not sure I agree with the premise.

I've been programming over 50 years and I agree some programmers get prickly, but it seems to me it's more a matter of maturity, and I see plenty of non-programmers who seem to follow the same pattern.

I'm fortunate to work with a group who've learned (or maybe they always knew and I've learned) that people have different opinions and approaches, and we often annoy each other, but when there's a job to be done we can rely on each other to do what needs to be done, no matter how smelly.

At the same time, it seems like complaining is one of the simple pleasures of life, and if it helps keep us sane, it doesn't cost much.


I don't think programming makes you prickly. I think prickly people gravitate to programming or rather people who also have traits including prickly, introvert, etc.


I have to say that I do find myself becoming more prickly over time and I am aware of it. There are many reasons for this, but first and foremost on the list is that after the fifteenth time of explaining that I need something from one of my providers (be it one of my delegates, a partner's product that I'm integrating into mine or a client) and having described in infinite detail exactly what I'm looking for (leaving no ambiguity or judgement required) in order to complete the job that is expected of me to the best of my ability they still fail to provide that.

By example: A partner who has provided a product to our company is pushing to get the product integrated into ours. As one of the senior developers of our product, I look at the system they've provided and see inconsistencies and huge gaps in the interface, a complete lack of documentation and frustration from their developers when we keep asking questions.

I told them in a meeting some 3 months ago that their documentation is not just weak in some areas, it's completely lacking and in areas where the documentation exists - it's such poor quality that it's laughable. Today after having complained for the nth time (I've lost count) I was finally provided with documentation... only it was completely out of date... to the point that only about 2/3 of the API was covered at all and in some cases, it was completely wrong. So you can understand my prickliness... at what point is it okay to stop someone and say "this is not acceptable!" and not be considered "prickly".

This isn't an occasional occurence in the programming world either, it happens all the time. So it's not hard to understand how over time we may become prickly.

If we don't understand something and provide you with a system that doesn't meet your requirements, you get upset with us for having billed you for a product we "failed to provide". However, if we get upset because you fail to provide us with satisfactory information in order for us to provide that product - we get called "prickly".

Double standards aren't fun when you're on the receiving end are they?


My theory is that this poster is becoming more like his computer. He assumes he must have "perfect" input to give "perfect" output:

What you need to understand is that all of those annoying pedantic points are things that we need to understand, and that we need to understand correctly, if we are to have any hope of giving you anything useful.... We need to understand it completely, unambiguously, down to every last decision, without any "rules of thumb" or "do what makes sense" type of steps, not even any trivially insignificant ones.

...when in reality neither is necessary (unless you are a computer). Humans don't operate on true and false, it's much more subjective. This essay seems to be a cop-out, where the programmer is saying "treat me like the computers I program so I won't have to have real interaction with you." That would definitely lead to the personality you are describing, IMO.


Who are you calling prickly, you stupid arrogant jerk. What do you know about programming anyway, sitting there on your spotty loathesome backsides, squeezing blackheads. You wouldn't let me join the Masons, would you? I've practiced the handshake, I've even got my own apron....


I personally find most programmers tolerable, but a striking number to be completely obnoxious and vile.

I think this has to do with the skill gap between a programmer and a laymen: a programmer can wield pretty much infinite so much control over their computers when everyone else is barely capable of tabbing through fields. By comparison to your everyday user, a talented programmer is omnipotent and omniscient. -- at least this is the impression I get from large number of programmers I've dealt with who seem to a have a God complex.

Although a first-year med student is omniscient in comparison to me, you probably don't find vile med students in the same quantities as vile programmers. I don't know why this is, but its probably related to the following reasons:

  • Programming can be a a hobby and medicine isn't.
  • A mistake in programming is fixable and reversable, and certainly more forgivable than a mistake in surgery.
  • Code is generally invisible to users and managers, but surgical scars and deaths are not. This makes it easy for completely incapable, mediocre programmers to float from job to job, whereas a similarly incapable of surgeon would lose his license to practice medicine.
  • Programming is a blue collar job, more so than medicine. (Think about it: do the richest families in Beverly Hills send their kids off to college to become programmers?)
  • Its hard not to become arrogant when programming skill is a measure of prestige.
  • etc.

Programmers are as different as most people. For every one who's a prick, or a curmudgeon, you'll find others who are social, extroverted, and well-adjusted. My shop, for example, has the full spectrum.

That said, programmers are also like everyone else in that how they treat you, is usually a direct reflection on how you (or others) have treated them.

I'm also very interested in the converse of this question: are executives evil at birth, or does every MBA program come with Sith Lord training?


I think this is a generalization and is not usually true. I work with a team of developers and none of them exhibit these traits.


I think it's common for people with poor interpersonal skills to have interest in computers as they are growing up (perhaps it starts with gaming), and then to later pursue a career in IT. That is how I would account for the (slightly?) higher-than-average percentage of 'difficult' people in IT. These people don't have the aptitude for dealing with others, and for the most part haven't had the opportunity to practice.


Someone needs a cuddle me thinks.

Actually, I have Autism, OCD and Bi-Polar, and I still manage to get by without decapitating people.


Bitter experience causes it, in most cases, I think. You start out bright eyed and bushy tailed and ready to take on the world before you realise you've entered the world of Dilbert. Or close enough.


Programmers are very demanding in what information they need from people working with them. The reason they seem 'prickly' is because most of them don't communicate clearly why they need to know the things they insist on. I find that if you can communicate the reasons and practical cases where the information you are asking for is useful, the people you are working with come to appreciate your attention to detail.

The key is making it clear that you are asking for information in such detail because you genuinely care about doing a good job, rather than because you are trying to be difficult.


IMHO the nature of the work requires patience and concentration. When that is broken by distractions there is a tendency to get prickly.


I'd say that a majority of computer science people have aspergers (without being aware of it) which generally makes you mentally predisposed to have that particular personality.


They have prickly personalities because they have to deal with stupid fucking questions on a site meant for serious discourse on their trade.


they don't


Beacasue they don't get laid as much as they should. There's a real lack of women in programming world.


Did your job get easier or harder over time? That would be part of my answer as while I do use a different methodology now, it has its own pain points and thus my patience is usually in a state of flux, which is a long way of saying that it hasn't gotten easier, at least to my mind.

Due to the ever changing requirements and often not receiving gratitude for what we do, this wears on a person I'd think. How often can you get 99% of something right but because that 1% wasn't, it gets 99% of the feedback as something totally sucks just because it doesn't handle some odd case well.

Another aspect would be to consider how easily negative feedback can be discussed compared to positive feedback. Do you know of programmers that share "war stories" or "Daily WTF" moments? I know I do but I don't know that many that would often share moments of pride and accomplishment as much as it is surviving and dealing with problems that should probably be much rarer than they are.