15 ms·
Programmers’ emotions
- voidfunc 5y agoI stopped feeling shame for my code after a couple years in business. Every line out there is someone’s little piece of shit. We are just little shit machines producing ever more shit. Sometimes we even use shit to patch up the gaps in existing shit. We are also known to get bold sometimes and start fresh shit piles usually because we have realized flashier shit gets you promoted. All code is shit.
- unphased 5y agoThis explains well why it's so satisfying to delete code.
- cushychicken 5y agoThe sooner you realize that everyone on God's green earth is acting from an emotional place, the sooner that human interactions make sense. How something makes people feel - or how they think doing something will make them feel - dictates the vast majority of human behavior.
- skohan 5y agoYes I quite like the metaphor that our rational mind acts largely as the press secretary for our emotions.
- cushychicken 5y agoI have never heard that metaphor before but I like it very much.
- rgoulter 5y agoI think it's Jonathan Haidt who popularised that phrasing. The first part of his book "The Righteous Mind" discusses this aspect.
- rocqua 5y agoI think it is also illumiating, if somewhat obvious, that people tend to have well thought out reasons for doing something. So if you see someone doing something obviously stupid, you are probably not seeing the whole picture. It is extremely worth it to try figuring out why they do that. And in figuring that out it is important not to dismiss the other person's ideas out of hand.
- cushychicken 5y agopeople tend to have well thought out reasons for doing something. So if you see someone doing something obviously stupid, you are probably not seeing the whole picture I used to think this, until I read more about advertising and how it's designed to trigger an emotional response. More and more, I think it's really emotions that motivate most behavior. There are many people, when asked "Why did you make that decision?", will respond with some variant of "I don't know, I just felt like it." It implies to me that most people don't really know what they feel, or why they feel that way. The corrolary to that, which I find fascinating (and a bit sad), is that it means most people really have no understanding of why they do what they do. This as true of actions as trivial as picking a brand of gum or selecting a parking spot, to choices as monumental as deciding to get married or have children.
- rocqua 5y agoEmotions can be good reasons!
- rzzzwilson 5y agoMissing: frustration.
- kvgr 5y agoThe main one, frustration sometimes kill the whole day. At the end the work is done in 30 minutes.
- GordonS 5y agoAlso missing: blind fury I occasionally find myself feeling like this after frustration builds to a crescendo, and I've spent hours trying to get something to work that should have taken no time at all!
- stavros 5y agoThat is when I truly hate technology and how bad all UX is.
- csours 5y agoFor the past 6 months or so I've asked myself if this is all so hard... because from looking at how long it takes me to do stuff and how often others fail at it, or the questions they ask me, it MUST BE HARD, because no one around me is all that good at it, and it takes us ALL way too long to do stuff that looks like it should be simple and easy. I think that acknowledging that something is hard gives you some power over it. Like if we acknowledged that writing documentation was hard, maybe we would apply more resources to writing documentation.
- tiagod 5y agoThat was also a glaring omission to my eyes. It's the emotion I associate the most with programming, although I guess it's a mix of some of the ones mentioned in the article.
- kkoncevicius 5y agoI don't know if confusion should be considered an emotion. Depending on the situation you can be confused and feel fear, or you can be confused and be excited. Same applies to "silliness" and "hesitation".
- csours 5y agoI don't know if shell scripts should be considered a programming language.
- kkoncevicius 5y agoWhat a snarky reply. Don't know if you get off on things like that, but I hope it increased your mood.
- whynaut 5y agoYou can be happy and feel fear, or be happy and excited.
- kkoncevicius 5y agoWell, happy and excited seems to be almost the same thing. While happy and fear - I don't think I ever felt that way in my life. I wanted to see more about this distinction and found a relevant Wiki page about emotions [1]. "Confusion" appears to be added as a separate emotion in some classifications, while missing from others. When it's added it is added as a neutral emotion (having 0 emotional "tone"). Personally, don't think I experience confusion as an emotion. It's just a mental picture of my state and emotions arise according to how I interpret that picture. Same as "I am lost" or "I am missing a finger" are not emotions, thou they would cause emotions to arise. [1]: https://en.wikipedia.org/wiki/Emotion_classification https://en.wikipedia.org/wiki/Emotion_classification
- amelius 5y agoAddiction. From the endless edit-compile-test cycles. Dopamine circuits go completely berserk.
- Rezwoodly 5y agoThat's the the good stuff right there though.
- sethammons 5y agoI recently changed over to management after being a principal engineer. I miss my regular dopamine hits. Now feedback can take weeks, months, or longer. It is a change for sure.
- csours 5y agoI've been thinking about this A LOT over the last year. Knowledge work is Emotional work. Software developers make software for PEOPLE. Making things for people requires empathy to be successful or else a whole lot of luck. Having empathy means putting myself out there. It means asking questions that sound ignorant. It means going from feeling like I had a great idea to seeing all the flaws and shortcomings of that idea, and being willing to accept the shortcomings of that idea and change my mind. It means doing all of this and being 100% technically perfect. One extra space - computer says no. Number in the wrong place - computer says no. Off by one - computer says no. Tyop - computer says no.
- burlesona 5y agoI don’t know if it was intentional, but IMO your last sentence is perfect. I agree with you about the emotional aspect, and I think it’s one of those blind spots that a lot of engineers have. In my experience, the best software engineering is done by the engineers who _care_ the most about the end user experience and the work their software is doing. And the people who care most aren’t always the most brilliant computer scientists or analytical minds.
- tomxor 5y agoYou also need to be careful with your empathy, it can get burned if you are exposed to the wrong users too much. It's good to stand back a bit before trying to relate to a user issue and ask "does this person deserve my attention"... that might not sound fair, but if you don't you will start to not care at all.
- stackbutterflow 5y agoRegarding your last sentence, I think technical jobs, and especially people who write code as part of their job, are forced to develop a special kind of humility. Engineers, scientists, technicians, deal with the law of physics everyday. As a developer particularly you get immediate feedback dozens if not hundred of times a day. You can't bullshit your way out of a bug. The computer is cold, rational and executes the piece of code you wrote. You can't convince it to run your program with pretty words. This is in contrast to other jobs, for example marketing specialist. As a marketing specialist you spend weeks or months on a well crafted marketing campaign, then you launch and the results are not bad but yet not great either. There could be millions of reasons for your campaign to have failed. You could job-hop thinking you did a great job and blame the lukewarm success on external factors. There are people who spends their whole career failing at what they do who would never know otherwise because their job lacks this sort of cold instant feedback.
- keyle 5y agoCouple more for me Surprised, when something non trivial worked the first time around. How could this be? This can't be right? Floored, when I see the quality and quantity that some developers are able to contribute or create.
- mberning 5y agoI think a highly conscientious developer might feel all these emotions. However, I am sure we have all worked with the developer that is absolutely shameless.
- shynrou 5y agoShame is not really constructive though, if you know what you are capable off, accept that you will always have to learn more and do your best each day. There is no need for shame. Even if your PR comes back with 20 issue even though you didn't see any.
- TheOtherHobbes 5y agoI don't think that's what shameless means in this context. Shameless means being as unconscientious about all work as possible in a consciously cynical way.
- devnull3 5y agoImposter Syndrome: Not an emotion per se.
- meken 5y agoIt’s a belief. That everyone else is smarter than you. Opposite of dunning-kruger, where you think you’re smarter than everyone else.
- a_e_k 5y agoNot an opposite. Dunning-Kruger works both ways: > The Dunning–Kruger effect is a hypothetical cognitive bias stating that people with low ability at a task overestimate their own ability, and that people with high ability at a task underestimate their own ability. (From Wikipedia: https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect, emphasis mine)
- black_13 5y agoNarcissism
- DeusExMachina 5y ago> Anxiety, inadequacy, and shame are just not helpful. It is good to reduce them if we can. Uhm, not really. All emotions have evolved because they are useful. The ones listed here could keep you from doing something stupid, dangerous, or potentially deadly. They are also likely to make you notice something wrong earlier than others. Are those emotions not helpful in some cases? Absolutely. Sometimes they are not justified. But that's true of any emotion. Even positive emotions can make you reckless and take too much unwarranted risk. One might argue that for a programmer those statements are more accurate, but I'm not so sure. Blow some deadlines because of too little anxiety and too many positive emotions and you'll take a hit for sure.
- runj__ 5y agoOn a societal and evolutionary level they're necessary feelings, on an individual level they're just burdensome. You can reason your way to the same results.
- DeusExMachina 5y agoCan you? A lot of psychological literature shows that we are far from being masters of ourselves. Depresses people cannot reason themselves to any result at all. Addicted people cannot reason themselves out of addiction. You can fix many things with therapy, but that's far from just "reasoning" and takes a lot of time and work. Emotions come from a much older part of your brain than the one for your reasoning skills, and thus have a far stronger pull on your actions. That's not to say we are completely at the mercy of our emotions. But controlling them is a matter of practice and reinforcement, not pure logic.
- skohan 5y agoYeah this is a lesson I learned during the NBA playoffs sometime in the mid 00's - I was supporting the Cavs, and the whole series was hanging on a 3 foul shots by Lebron James. I was watching in a bar, and was super agitated along with everyone in the bar, and everyone in the arena as we could see on TV. But I noticed that James him self was completely stone-faced and calm. And I realized in that moment, that all this agitation wasn't actually useful, and would not affect the outcome. And even if I were the one in position to affect the outcome, that kind of agitation would actually make things worse. That said, I've had colleagues who could probably do with a bit more shame. Confidence and self-assuredness is great for self-promotion, but if you can continuously produce shitty output with a smile on your face I don't want to work with you.
- jsemrau 5y agoI just completed a work package that was bugging me for a while causing a lot of frustration. There is a lot of happiness in getting stuff done.
- 11thEarlOfMar 5y agoWhat is it about programmers that makes them (in general) not expressive, effusive, gregarious, ... I have a deadpan face most of the time, people complain about not being able to read me. When I was younger, I rationalized that I don't want emotions to cloud the logic of a conversation. But I ultimately realized that I was deadpan all the time, whether in work/reasoning discussions or personal interractions. Regardless, my lack of reaction frequently confuses others and gets me into trouble.
- meken 5y agoYes, I can relate. I realize now that fun conversation is highly illogical, emotion based. I view my desire for control and logic actually gets in the way of emotions, which makes conversations less enjoyable.
- v-erne 5y agoMe too. I feel that the key insight is that rational mind is almost always too slow to keep flow of the conversation interesting. It inevitably destroys timing and rhythm. You can observe this clearly in stand-up performances - rationality of the bit is only minor part, the delivery is almost everything.
- n8cpdx 5y agoI don’t fully understand, but I have the same issue. I’ll have a full day of coding work and I’ll have the full range of emotions - joy when t worked, fury when the underlying UI framework is lower quality than my expectations for my work output and I spend days or hours making awful workarounds. Cough cough UWP. Cough cough Xamarin.Forms. And then I try to go out for drinks after and it’s like I’m an actual robot. Text generation seems to work OK, but emotional processing just isn’t there. I can’t access the part of my brain that does all of the socially-expected facial expressions, speech tone, and cadence. When I was much younger, I was criticized for a constant monotone delivery and I’ve since worked on fixing that with great success. But if I spend more than an hour or two coding - or if I get anywhere near a state of productivity- I end up with a less convincing reproduction of human emotion than Alexa. It makes dating after work, or getting coffee with someone mid-day, a serious challenge. I’m not opposed to hearing solutions in the reply.
- zaphodq42 5y agoIrritation: when the documentation is incorrect or missing and I have to figure out how the API works by guess work or hit and trial. Anger: when there is unnecessary red tape to get access to an API while my competitors have the access. Tired: when applying Nth money patch to use a broken API PS: I work with external APIs a lot
- sarsway 5y agoPure dread, when you have signed up for a new gig and open an existing code base for the first time. Starring at hundreds of unknown files and folder with no idea what anything is and how it all works. No going back, you're a new maintainer, so better get to it. Usually after a few days you start getting a grasp, and it's not so bad though :)
- nutellaandgo 5y agoEven worse is being 1 year into the gig and still having no idea...
- ravenstine 5y agoA few days is exceptional. On average it takes me 3 months to a year to get to a point where I even kinda sorta feel comfortable in a codebase. There have been exceptions, but normally I find they're just written very expediently.
- ipiz0618 5y agoFeeling the same still after a few months. And dread is not very helpful when someone asks you to implement the new feature "now" (like none of your current tasks are as important as reducing the number of decimal points in that one screen).
- CarVac 5y agoThere are two things in life that bring me joy like no other, and they're basically the same: completing a physical fabrication project and successfully implementing something in code. The elation I get when it comes out exactly the way I imagined is unrivaled.
- m0llusk 5y agoProgramming work is emotional, and the technical interviews that may get you there even more so.
- legrande 5y ago> Relief. When I solved a problem I had been struggling with for a long time. I like to call this an 'Aha! Moment'. They happen rarely enough though, so the dopamine hit is not enough to really enjoy programming. Also: programming for me needs ergonomics and accessibility. My setup is really opinionated and catered to me only. Others can't so easily jump into my setup and start coding away. They'd feel really uncomfortable in my chair and have to understand all the keyboard shortcuts I have burned into memory, as-well as a bunch of macros.
- thrower123 5y agoI don't see rage listed. It should be. Sometimes it's almost Homeric.
- codemonkey2635 5y ago>missing bitterness ah, so he’s a junior dev
- koonsolo 5y ago> Pride. When I made something neat or something worked on the first attempt. This should be split into: Pride. When I made something neat Suspicious. When something worked on the first attempt
- varjag 5y agoPride and prejudice.
- odonnellryan 5y agoI feel a lot of these, including the good emotions, are driven by ego. My solution to some of this has been a mix of confidence and humility. Try to be confident in your choices, but be quick to admit you are wrong and quick to change direction when needed. It is not confidence to hold onto a bad solution. One of my major problems is being too conservative. A few times I have been skeptical of a new technology or solution to a fault. When we started to use that technology it turned out it worked! My answer to this has been to try and be more open to suggestions. Try and talk things through and be patient and understanding.
- MeinBlutIstBlau 5y agoThe key is talking to people. Too many people on here complain about meetings, 1x1's, and that they hate interacting with people who don't understand what they're asking for, like management. The real reason is cause many people (especially new grads) think all their job centers around is code. It absolutely does not. Having fun actually interacting with people around the abhorrent minutia of everyday life is not only part of life, but shows you also are not a said "robot." Too many interns I've worked with at my comment are just monotone unimaginative, unemotional, unfeeling drains. Any time they'd talk during a zoom call it was like "God I'm only asking you how your day was so you don't feel left out. When they had nothing to share I was so excited cause we got to skip over them because they were just so damn uninteresting to listen to. But I feel like I'm one of the few that knows this, hence why I enjoy doing these things. One of my Comp Sci instructors was this way as well and he was very enthusiastic about everything. It's why everybody liked him. Unfortunately since Comp Sci is a legitimate hard science, especially being centered around math, it drives out a lot of the perky speakers who don't like to think. I do think it's good because it keeps out the people who think this is all just an easy paycheck, but in reality, I think Comp Sci majors should almost be required to be far more social with others.
- BeFlatXIII 5y agoI prefer the company of fellow robots. Being expected to remember the minutia of the lives of others is annoying and unproductive for both of us.
- MeinBlutIstBlau 5y agoAnd this is the exact mentality that is antithetical to team based work that is ever so growing nowadays! This is why people who know how to talk and engage are getting jobs and the anti socials are still having trouble getting meaningful employment.
- badtension 5y agoFrom my perspective if I have nothing to enjoy sharing then I would prefer to be left alone. What you are describing seems forced, like when there are several good-ol pals on a call with a new grad, waiting for him to entertain them with a story. Talking about oneself and sharing comes with trust which comes with time (working together) and being open with co-workers, this is my experience.
- Attummm 5y agoLooking at the comments, Having emotions is normal, but at work we should try stay professional. In the article there is a reference to his own bugs and during code review what he called a nitpick. I found that a bit immature, should we wait until its a bug in production? I think the industrie would benefit if we all abide by egoless programming. https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/ https://blog.codinghorror.com/the-ten-commandments-of-egoles...
- agent327 5y agoAre you saying everything brought up during a code review is relevant, i.e. that nitpicks just don't exist at all? Because I feel that's a rather extremist point of view. Note that a bug isn't a nitpick. A nitpick would be something like "that variable name is a bit long" - it may be, but is it really relevant in a business sense? Should either reviewer or programmer be spending time on something like this? Should it hold up an important commit? Protesting that isn't 'immature', it indicates he understands there is a trade-off between differing priorities. It's something that is surprisingly uncommon among programmers, unfortunately.
- rockmeamedee 5y agoThe number one thing that got me to senior engineer, and will get me to staff as I improve (though staff has more of a relationship management component) is emotional management. Staying in a long debugging session without ragequitting and getting to the fix. Pushing through when I feel really dumb for not knowing how a react hook works or how to test a particular feature. Not getting bored (or recognising it and pushing through) when fixing a bug that is "trivial" but complicated. Not getting angry when the codebase is not architected well or is hard to understand. In every one of these situations, better emotional management has made me more productive, calmer, and I had a better outlook of the situation in the end, so my suggestions to external stakeholders about what to do next were more accurate. And I'm still learning! I get bored and take 3x too long all the time. This is maybe an exaggeration, but after you learn about for loops and functions, the rest of the job is emotional management. Ok, maybe EQ becomes important a little bit after for loops, but way earlier than you think. Maybe after 1 year of experience.
- rpmisms 5y agoThis spoke to me. Thank you for the check on my own imposter syndrome.
- aunty_helen 5y ago> The number one thing that got me to senior engineer, and will get me to staff as I improve (though staff has more of a relationship management component) I love the little rat race we’ve created for ourselves. When did staff engineer become a thing? I’ve just noticed it but feel like it’s probably been around for a few years. Next question when you get to staff engineer what next? Do you become a lead engineer or staff engineer II? Jokes aside > Not getting angry when the codebase is not architected well or is hard to understand. This is the most important job hack for a software engineer of any artificial title. Even more important when your title starts with a C.
- lazyasciiart 5y agoUsually I see Staff Engineer followed by a title like Architect. Never ever by anything about Lead or Manager because that's the whole point, you should be able to increase your scope so you're making tech decision across the whole org without also becoming a good people manager.
- parf02 5y agoReally enjoyed this piece. Many of my developper colleagues like to boast that emotions have no place in our field. However this is going against human nature and is in my opinion futile.
- plutonorm 5y agoAnd this is why programming is a horrible job. Once you lose the satisfaction, which happens pretty quickly all that is left is irritation and confusion and anger. Its absolutely miserable work. But I'm completely stuck in it.
- AnimalMuppet 5y agoI still feel the satisfaction. Not as often as at the beginning, but I still feel it sometimes, even after 35 years.
- quickthrower2 5y agoI need a wankerless environment to feel the satisfaction… otherwise I never do.
- LouisSayers 5y agoI'm honestly not sure how you can make it past say 10 years in the industry without having the mental skills of a Buddhist Monk. Coding isn't too bad for the most part, but on top of that it's like you have to manage the product owners / managers, coach your team mates, and put up with company politic dribble. While you're doing all that people are constantly changing their minds, making you task switch to jump on fires the previous devs set up, and of course you're having to learn how to get around some libraries undocumented "peculiarities" or learn WTF it is that some legacy code is doing. OH and you have to be full stack with knowledge in a,b,c,d,e,f,g. "Coding" is draining because for the most part it's not coding... After going through all the BS you just end up questioning why you're at Company Z in the first place. You then come to the conclusion that helping sell more ads isn't how you want to look back on your life or that you're helping prop up a dying product/industry, and you move on to the next shit show. I'm honestly questioning whether I want to remain in the industry or whether I should take up something like Acting. Interested to hear if anyone's made a similar career move.
- 99_00 5y agoSee a therapist. Get in touch with your values. They won't tell you what to do but will help you understand what you want.
- 8b16380d 5y agoThe grass always seems greener. Dev jobs are objectively very comfortable. Problems exist in all industries/occupations, who's to say they aren't equally frustrating.
- askonomm 5y agoThis. I have also felt very burned out and frustrated with our industry, but with a little therapy I've found that most of my unhappiness comes from within, and once resolving those issues I've realized that being a developer is one of the most comfortable, privileged position one can be in. I can literally change a job in a matter of weeks, I have ridiculous salary, and most of my job I actually even love! Not so much the case with a ton of other jobs.
- bigbluedots 5y agoFDD - Fear Driven Development. When you are afraid of 1. Looking incompetent, or 2. Missing the constant deadlines.
- newbie789 5y agoThis is so odd to me. There seems to be some sort of obsession with making sure everybody knows that programmers “Aren’t Normal People.” It’s just a job, doing it well doesn’t make you some Superhuman Logic Machine. I’d love to see a post like this that includes “Pathologically Obsessive Need For Self Aggrandizement” as one of these ~Coder Feelings~ that only the Chosen Folks can experience.
- rramadass 5y agoRight; Agreed 100%! Other than requiring little more than average persistence and curiosity, there is nothing "superior" about it. Anybody can learn "Programming". We are natural born problem solvers and the only thing there is to learn is how to instruct a machine to do the same in a structured manner.
- brailsafe 5y agoI agree in spirit, but I no longer believe that anyone can necessarily learn programming, maybe because some of those other elements are missing. That's just based on witnessing people who don't seem to be able reason though even the smallest unit of logic expressed in visual form. I believe that most people probably can though to some extent
- rramadass 5y ago"Programming" as a technique of problem solving can be taught and learnt by anybody just like Mathematics. Now whether they will become good at it depends on various other characteristics like Interest, Aptitude, Effort and Persistence. There is no inherent limiting factor since it is a function of "General Intelligence" which all of us "Normal" folks are imbued with.
- btbuildem 5y agoI'm surprised to see "frustration" and "rage" did not make the cut.
- VladimirGolovin 5y agoAwe. It happens very, very rarely, but when it does, it's unforgettable. For me, it happened when I was learning Haskell. (As for the Lisp enlightenment, I havent yet learned Lisp deep enough to feel it, and maybe I'll never will; but I certainly appreciate Lisp's "idea efficiency". It's amazing how much Lisps can do with basically a single piece of syntax).
- schwartzworld 5y ago> From the outside, programmers seem to resemble the machines they program – cold, emotionless, unmoved. Nothing grabs you in an article like the person saying everybody in your field has no external personality.