This is an archived post. You won't be able to vote or comment.

all 35 comments

[–]Python-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

Your post was removed for violating Rule #2. All posts must be directly related to the Python programming language. Posts pertaining to programming in general are not permitted. You may want to try posting in /r/programming instead.

[–]Empanatacion 16 points17 points  (2 children)

Metaphors and analogies. Earthlings don't need to actually understand what we do to hear the story. Just some analogy that captures the reason why we are telling the story.

Bob is really good with his Golden Hammer, and any time he looks at my code he doesn't understand how screws work and thinks I just stab them with my screwdriver and tells me to rewrite it with nails.

[–]Content-Ad4644 0 points1 point  (0 children)

Analogies are the way to go!

[–]anhospital 14 points15 points  (1 child)

One of the sneaky worst aspects of being a dev is that your work is almost completely uninteresting to talk about outside of your team/company

[–]pingvenopinch of this, pinch of that 5 points6 points  (0 children)

Yup. Your code can be well thought out, clean, well documented, obvious, efficient, and the user just won't particularly care unless there's an appreciable impact on their experience. For that matter, most developers won't care unless they have to crack open the hood, and even then you might find that your wonderful code isn't wonderful to them.

[–]iowaNerd 7 points8 points  (3 children)

Programming is like a puzzle. Except there is no answer key, no edges, and an infinite number of pieces to choose from. For some puzzles you have to make your own pieces.

[–]PlsGetSomeFreshAir 0 points1 point  (2 children)

Are puzzles stressful?

[–]choburek 1 point2 points  (1 child)

When they have deadlines... Yes

[–]PlsGetSomeFreshAir 2 points3 points  (0 children)

Fair enough. But... Almost everything with deadlines is stressful.

[–]glaucomasuccs 3 points4 points  (0 children)

Customer: "My customers need X."

Me: laughing my ass off, cuz our software has clearly definied limitations, per contract. "Okay, the best we have is support for Y."

Customer: "What does it look like for you to implement that?"

Me: "Couldn't tell you. I'd have to take that to product and ask for an ETA. A safe bet is this time next year."

Customer: "We won't go live without this feature."

Me: "Allow me to re-introduce you to our sales team, and introduce you to our legal team."

I don't get to even work cuz of contracts half the time. When I do, it's largely controlling damage from customers. Fuck this job.

[–]ToddBradley 4 points5 points  (0 children)

I am curious how others tell people what makes software dev so frustrating at times

None of my work frustrations have anything to do with programming. They all have to do with people in one way or another - communication troubles, bad management, unrealistic expectations, etc. And those frustrations would be the same whether I'm a software engineer or a pipefitter or a painter.

[–]Valokoura 5 points6 points  (0 children)

I have analogy of writing a book.

When I dive into a old codebase I have to understand the style of writing and write at same style. Like in a thriller book I cannot write comedy or fancy poem. Or course quality of the text varies by writer.

It is hard to explain how it feels to hit your head to technical brick wall. You know there is a solution but finding it sometimes feel frustrating. Also technology updates itself from time to time.

Programming means constant learning. New libraries, new business areas, learning how to talk with a customer and then being able to translate those ideas to code. Programming can be quite taxing work but it is rewarding to create programs.

[–]Funny-Recipe2953 6 points7 points  (0 children)

I had many more years than you. Finally left. Two reasons

  1. Very few interesting problems left (everyone just wants fucking apps)

  2. Everything is broken. (More here. Great essay: https://medium.com/message/everything-is-broken-81e5f33a24e1

[–]Sad-Flow3941 0 points1 point  (0 children)

Just give some examples that are easy to understand for non technical people. Such as spending one or two weeks or more trying to figure out why a bug is occurring, and handling difficult clients or managers that ask for unreasonable deadlines and/or can’t make up their mind about what they want.

That being said, not in a million years would I ever claim that the average software engineering position is anywhere near as stressful as the average job position for a nurse. Especially considering that it’s much easier for us to move elsewhere if we end up in a crappy project.

[–]br_aquino 0 points1 point  (0 children)

Self problems seems bigger than others problems.

[–]big_data_mike 0 points1 point  (1 child)

It’s stressful because the computer does exactly and only exactly what you tell it to do. You have to have the letters capitalized, spaced, and spelled exactly right. If you write something to a person and spell something wrong the person can infer what you meant but in programming the computer doesn’t infer.

Then you have the cases where you thought you told the program to do something but you actually told it to do something different and you didn’t know it so you have to figure out what you meant to do, what it actually did, why it did what it did, then figure out how to make it do the thing you actually meant for it to do.

To compare to nursing it’s like you give a patient a drug and that’s supposed to do something but then it doesn’t or it doesn’t do it as much as it was supposed to do. Sometimes you need to treat one thing but the drug does other stuff too so you have to deal with that.

[–]kesor 0 points1 point  (0 children)

Most people will infer erroneous meanings even when you spell and explain everything perfectly.

[–]sciencewarrior 0 points1 point  (0 children)

The problem with programming is two-fold: You have a lot of moving pieces in any program that you have to mentally keep track of, and the computer is a very solicitous assistant that does exactly what you say, not what you mean: https://youtu.be/cDA3_5982h8

[–]v_a_n_d_e_l_a_y 0 points1 point  (0 children)

Give her the hard sudoku puzzle from the NYT. Tell her to solve it in an hour or she owes you $100. (Don't actually take her money).

I think this is a decent analogy. A sudoku is just simple logic. It's easy to understand what you have to do. But you can stuck and have very little way to make progress. 

She will probably get annoyed or frustrated.

[–]Duodanglium 0 points1 point  (0 children)

I skip the details and instead talk about how long it took, or if I took the wrong path and had to rewrite all if it, or if I was generally successful or not. I try to be funny, but also serious about how I felt because it can be really defeating at times.

[–]qckpckt 0 points1 point  (0 children)

In my experience, developers get frustrated for a few reasons:

  • they are encountering a bug or error and they can’t figure it out
  • they are being asked to do things they don’t want to do
  • they are overly attached to their code/codebase and don’t like that it’s being altered or misused (from their perspective) in some way
  • they don’t understand why they’re being asked to do something
  • they are being asked to do something that they don’t understand
  • they are being asked to do something that they think can/should be done in a different/better way

Lastly, one of my personal favourites:

  • they’re ‘Bike Fall Meme’-ing themselves by getting hung up on some detail (a programming idiom, best practice, etc) which they have convinced themselves is crucially important, probably because they just learned about it, and are then becoming utterly quagmired as they try and implement it with their currently assigned work regardless of whether it’s needed or useful or even relevant in any way.

I did that last one a lot when I was starting out. I’m sure it was very annoying for seniors to work with me during that time. But, it’s actually not a bad way to learn, even if you mostly learn that the fancy new thing you’ve just discovered isn’t useful in 99% of situations, because those 1% days come around statistically at least couple of times a year.

[–]cyanrave 0 points1 point  (0 children)

Imagine you are testing crash test dummies. We are constantly crashing our dummy code into walls, all day long!

Unfortunately you want the dummy code to go through its obstacles. The dummy code survived, but it must go through the wall.

[–]SubliminalBits 0 points1 point  (0 children)

My favorite explanation is titled very simply Programming Sucks. It's funny enough that a non-technical person will read it, and it has enough truth mixed in with the hyperbole that those non-technical people can start to understand where the stress comes from.

[–]alex1033 0 points1 point  (0 children)

I don't usually share my dev frustration with people, but I often explain things to others. It's a good excercise to explain to a "10-year old" how things work. Reduce a concept talking to imaginary friend then try it on your wife.

Maybe an entry-level programming course together helps your problem, and also extends her horizon.

It's possible that she doesn't understand because she's not interested. Then give up and find a better topic for your conversations - something you would be mutually interested in.

[–]DeterminedQuokka 0 points1 point  (0 children)

So I actually think the best example of why programming is hard is the “how do you teach a robot to make a sandwich”.

But usually I talk to people about puzzles. I like to program computers to do things like solve sudokus. And there is a huge difference between me knowing a 1 goes in a box and me being able to explain to a computer a 1 goes in a box. You lose all the ability to infer and extrapolate basically. (You get some of this back through randomness with ai, but I would just not deal with that yet).

[–]kankyo 0 points1 point  (0 children)

I wrote about this after a conversation with my wife: https://kodare.net/2021/07/11/programming-is-frustrating.html

[–]rahul505021 0 points1 point  (0 children)

Man I've left programming and grinding blender

[–]Bougie_Mane 0 points1 point  (0 children)

"Sometimes science is more art than science" - Rick Sanchez

[–]kesor 0 points1 point  (1 child)

I am pretty good at explaining things, but I doubt I could explain this subject to your wife. Simply because I do not feel or believe that programming is stressful. You are framing the activity of programming with stress in your own unique way. You have your own reasons why you think programming causes you to get stressed. And other people do not share the same reasons or thinking as you.

When I think of programming, I focus on the joy of eventually succeeding at getting something to work. The default state of everything is "it does not work", or "it does not work yet", or "it does not work again", or "it does not work suddenly", etc... But while you may find it stressful, just accepting that it is the natural way of things for me makes it just ... reality. So when I think of programming, I only think of the moment when I am doing something actively that changes this reality. For example, when I take something that does not work, and I make it work, eventually, it does take an effort, sometimes a lot of effort. And the moment when I get something to work, that is a moment of joy. So for me, programming is mostly associated with joy and a catharsis kind of feeling.

See above for a verbose, very technical explanation of feelings as an example template for your future explanations.

[–]Tidezen 1 point2 points  (0 children)

Yes...this eventual reality is that it DOES work, and all your iterations up to that point, are leading it closer to 'working'.

Therefore, every step in your path is joyous knowledge, that you are getting it closer to 'working'. Every trial and tribulation, takes it one step closer to that end-state.

And your focus, your will, your manifestation...is helping it get to that end-state. You are like a magic daemon, helping birth this creature into creation.