this post was submitted on 21 Apr 2025
1191 points (100.0% liked)

Programmer Humor

23053 readers
1717 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 102 points 2 weeks ago (2 children)

Every application kind of needs two modes: a default mode where the user is railroaded into making the right decision, and an "I'm not an idiot and will actually read the documentation before/after trying to make things work" mode. If you stick the toggle for the two modes somewhere that you'd only find by reading the documentation, people will automatically categorize themselves into the mode the ought to be in.

[–] [email protected] 78 points 2 weeks ago (2 children)

You actually need proper documentation, though. I've had to read source code to discover or figure out how to use cli flags way too many damn times. (I'm not a real programmer, I just work on infrastructure).

[–] [email protected] 40 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I'm sorry to tell you this but you are a real programmer.

[–] [email protected] 21 points 2 weeks ago
[–] [email protected] 6 points 2 weeks ago (1 children)

Oh yes you are a programmer!

[–] [email protected] 3 points 2 weeks ago (1 children)

I guess I shouldn't have switched from CS to IT when we got to recursion (I can read it, but I can't write it to save my life)

[–] [email protected] 2 points 2 weeks ago

Thats totally fine for someone learning. Some really good coders i know still cannot explain complicated data structs or complicated topics. Nobody can "measure" you as a "real programmer" anymore, try as they might to replace us with LLM AI. You wrote code? You've been thru it? You've learned a good amount? You're a programmer.

[–] [email protected] 33 points 2 weeks ago (2 children)

android does it well, if you want "developer" mode that let's you have better control over your system you have to do some funny IT rituals you can only access by 1. knowing they exist 2. googling how to do it

[–] [email protected] 26 points 2 weeks ago (1 children)

Steam OS has kind of the same philosophy too. Normal users can treat it like a switch, only ever downloading from steam, and have a perfectly intuitive experience. But power users still have the options to run other software, customize the os, and even outright replace the os.

[–] [email protected] 7 points 2 weeks ago

I love my Steam deck for this reason. I started out using it to replace my switch and now I'm easing my way into learning Linux.

[–] [email protected] 7 points 2 weeks ago

Although it's pretty easy to stumble upon some guide that you don't understand that gets you to enable dev mode. Not saying it happens a lot, but there's not a very high bar for the test for enabling dev mode.

[–] [email protected] 74 points 2 weeks ago (3 children)

The documentation:

Put the leaves inside the cup

[–] [email protected] 51 points 2 weeks ago (4 children)

Then the user rips open the bag and pours the leaves inside

[–] [email protected] 12 points 2 weeks ago

Yes, that could be a third option.

[–] [email protected] 8 points 2 weeks ago

And pours the boiling water on its legs.

[–] [email protected] 2 points 2 weeks ago (3 children)

If a highly improbable spaceship had to dedicate all of its processing power to making a cup of tea, I suppose I can forgive an end user for having to think about it.

load more comments (3 replies)
[–] [email protected] 2 points 2 weeks ago

I mean that's a valid way of tea drinking.

[–] [email protected] 7 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

All lot of it is, without exageration, more at the

Put the proper side inside the cup

level of clarity: in other words just moving the "everybody should know this" element around rather than concretely just coming out and clarifying the bit that in the programmer's mind is "obvious".

[–] [email protected] 4 points 2 weeks ago* (last edited 2 weeks ago)

If you're specialised enough it can be really hard to tell what's obvious. Like, you don't want to do "grab the mouse, which is one of your computer peripherals" either. Or at least, I worry about doing something like that, and coming across as a dick.

Relevant XKCD.

[–] [email protected] 2 points 1 week ago

A lot of it is just "put it in"

[–] [email protected] 2 points 2 weeks ago* (last edited 2 weeks ago)

It does say "leaves" and not "bag"

[–] [email protected] 45 points 2 weeks ago (1 children)

Appropriate that you used tea bags because it's a popular legend that tea bags were created after customers misused the product. Some tea sellers started selling their tea in silk bags with the intention that customers would remove the leaves from the bag before use. Instead, customers dipped the bag of leaves directly into water.

[–] [email protected] 4 points 2 weeks ago (1 children)

polylactide, a bioplastic

So it does exist, and is cheap enough to use in teabags. Why not use it more, to pack vegetables snd stuff?

[–] [email protected] 2 points 2 weeks ago (1 children)

That kind of bioplastic tends not to biodegrade naturally, instead requiring a heated industrial composter with specially engineered enzymes added. If it's disposed of properly, it's great, otherwise it's no better than traditional plastic but costs more. Also, not all bioplastics biodegrade at all as all the word means is that the source material is biomass rather than oil.

[–] [email protected] 2 points 2 weeks ago

So even if you burn it with the trash, the C goes back to the natural cycle, instead of additional C we pump out of deposits of warmer times, we make plastic off. Still sounds better to me.

[–] [email protected] 27 points 2 weeks ago (1 children)

There is no such thing as a feature that doesn't need documentation. Anyone who thinks so is asking everyone else not to use it

[–] [email protected] 25 points 2 weeks ago (1 children)

The sort of end user that gets common sense stuff wrong is not the sort of end user that would ever have read the documentation anyway 🤷

[–] [email protected] 2 points 2 weeks ago

I've had to interact with too many people who say this with a straight face.

[–] [email protected] 19 points 2 weeks ago (2 children)

Look, computers are like idiot savants - incredibly fast and capable of doing all sorts of things with mindless determination, but without a shred of common sense - so when you're programming you have to literally explain everything including what for you is obvious and there is a whole class of bugs (around corner cases and boundary conditions) related to the programmers not explaining absolutelly everything and forgetting some really rare or unusual situations.

For documentation purposes one should assume that at least some users are like computers, without the savant part.

[–] [email protected] 12 points 2 weeks ago (2 children)

I write mine with a simple mindset: "imagine we go outside with a net, catch a random person off the street, sit them at the PC and tell them to do X. Will they manage, following this documentation?"

I also number every step (even if they're stupidly simple and could technically be jumbled into a single sentence), so that when a user calls me asking for help with something documented, all I need to do is ask them "at which step of the instructions are you encountering the problem", and then they hang up because they never read the instructions in the first place. Saves a lot of hassle!

[–] [email protected] 3 points 2 weeks ago (1 children)

I have never put it into words like that, more like "make zero assumptions".

I suppose that being overly thorough can make documentation prone to becoming tedious (unless cares is taken to not talk down to the reader) or too tightly coupled (incurring the need to be updated more often as details of the process change).

How do you usually deal with that aspect? What I do is to make the documentation easily skimmable (for advanced readers) and just accept the need for rework.

[–] [email protected] 2 points 2 weeks ago* (last edited 2 weeks ago)

How do you usually deal with that aspect? What I do is to make the documentation easily skimmable (for advanced readers) and just accept the need for rework.

Confluence's "Expand" element. Make everything into an easy to read task-list, but if more details are necessary, just expand a step and get an "idiot proof" description. Bookstack allows that as well, even better, because you can nest them (Confluence had that up until they "updated" the editor and killed half the features).

EDIT: "Include Page" in Confluence also works wonders here. For example, I have an article describing how to RDP to our AD server. In all articles that describe a process that needs to be done on the AD server, I just include that page. If any connection details change, I just edit the original article and the changes immediately propagate to all the other instances.

[–] [email protected] 2 points 2 weeks ago

I really like the social engineering element of your documentation strategy!

[–] [email protected] 2 points 2 weeks ago

You're brutal. You're not wrong tho.

[–] [email protected] 11 points 2 weeks ago

I write two forms of documentation:

One is an in-depth description of function, form and reason to understand and advance on the principles, stepping through processes and offering the opportunity to build on it if they choose

The other is designed for a hungover tech with a screaming customer on the line who just wants to know what to do to make it all go away.

[–] [email protected] 10 points 2 weeks ago

Making apple pies is much harder cause you have to build a universe first. I just skip right past those recipes.

[–] [email protected] 8 points 2 weeks ago

It is a common sense feature.

You got to keep the tea bag higher than the water so that the string is up straight for the capillary action to take place, so that the water goes up to the teabag and fetches the tea back into the mug.

[–] [email protected] 7 points 2 weeks ago (3 children)

This reminds me of soda/beer can designs. You know the hole in the ring tab? I used to believe it was there only for it to provide better grip for your finger when opening it. Turned out it was also there so you can fit a straw and have a way of stabilizing it.

Most people had no idea about that.

[–] [email protected] 17 points 2 weeks ago

You’ve mistaken the manufacturers aluminum cost cutting measure for a feature.

[–] [email protected] 13 points 2 weeks ago (2 children)

I'm not sure that's their intended design. Old pull-tab cans actually had a ring for you to pull them off (similar to "easy open" soup cans of today)

I'd imagine that as the tab shrunk and changed from pull to a lever action, the "ring" was left as a vestigial design (as a form of skeuomorphism)

[–] [email protected] 6 points 2 weeks ago

Also, the one with the hole requires less material for the same lever width.

[–] [email protected] 3 points 2 weeks ago

Yeah I remember those. Where I grew up that style of ring pull was the dominant style.

One reason why that style was retired in many places was to reduce waste. When you had a ring pull tab that peeled off, most people threw that away separately. I remember seeing those tabs being thrown all over the place.

[–] [email protected] 3 points 1 week ago

First, you come up with a way to save on materials, then you come up with a way to represent the changes as a feature

[–] [email protected] 6 points 2 weeks ago (1 children)

The worst is making it about intelligence. Most of the time, the stuff that is “obvious” is not so obvious to most people. Being an arrogant fool about it only makes things worse.

load more comments (1 replies)
[–] [email protected] 2 points 2 weeks ago* (last edited 2 weeks ago)

Reminds me of DMing an adventure that hinges on the party encountering teabags and hot water.

[–] [email protected] 2 points 2 weeks ago

// teabag

// flail

[–] [email protected] 1 points 2 weeks ago

THIS IS THE STORY OF MY WORK

load more comments
view more: next ›