this post was submitted on 14 Mar 2025
396 points (99.5% liked)

Programmer Humor

21460 readers
1362 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
 
all 24 comments
sorted by: hot top controversial new old
[–] skrlet13@feddit.cl 6 points 1 hour ago

In a more serious note, that's why you document your software!

[–] Goldholz@lemmy.blahaj.zone 9 points 2 hours ago (1 children)

You dont. Thats why you write comments!

[–] cbazero@programming.dev 5 points 1 hour ago

You dont. Thats why you write code that explains itself. For higher level info you write documentation.

[–] fubarx@lemmy.world 70 points 9 hours ago* (last edited 1 hour ago) (2 children)

My first tech job out of college, I was told to go talk to "Dave," the guru old-timey programmer and learn the lay of the land. He turned out to be this crotchety old guy, with low tolerance for idiots, but a soft spot for someone who actually paid attention.

A few months in, I was told to go fix a feature in the company's main product which was sold to power utilities. This was a MASSIVE code base, with a mix of C, C++, assembler, and a bit of Fortran thrown in. I spent a week poring through all the code trying to figure things out. Then I hit a mystery workflow that didn't make sense.

I walk over to Dave's office and ask a specific question. Now, mind you, he had worked on this years ago, and had long moved on to new products. He leans back in his chair, stares at the ceiling, then without looking at the screen once tells me to go look at such and such file for such and such variable, and a list of functions that were related. I go back to my desk and damn if it wasn't EXACTLY as he described.

Now, I'm probably as old as he was then. I don't remember what I wrote an hour ago. No matter what I build, I'll always be in awe of Dave and what he could keep in his head.

[–] eager_eagle@lemmy.world 45 points 7 hours ago* (last edited 7 hours ago)

Plot twist: Dave had cheat sheets for previous projects glued to the ceiling

[–] Lemminary@lemmy.world 16 points 7 hours ago

Alt theory: The guy you replaced failed miserably. Dave poked around but decided it wasn't worth his time fixing. Instead, decided to look badass for the cameras and died a legend.

[–] bitwolf@sh.itjust.works 23 points 8 hours ago (1 children)

Partially yes. But if I create something myself I can "revisit" the headspace of that portion very easily, like I walked into a room.

Doesn't work as well on codebases I don't own fully though.

[–] Ephera@lemmy.ml 7 points 7 hours ago

Yeah, which is why pairing works so well. Suddenly, you've got two people who were there when it was created and might know why certain design decisions were made.

[–] Ephera@lemmy.ml 35 points 9 hours ago (1 children)

Which is why making code readable is so very important. Our juniors and students will think we're ridiculous, when we spend a long time cleaning up some code or choosing the least misunderstandable name for a type. But you fuck that up and then others, as well as your future self, will be wasting many more minutes misunderstanding what your code does.

[–] rockerface@lemm.ee 23 points 7 hours ago (1 children)

I treat my future self a few months from now as a separate person who does not remember anything about why or what the specific code fragments do. And I'm grateful to my past self for doing the same.

Plus, you never know when you need to actually delegate supporting a particular piece of a solution to another person.

[–] homoludens@feddit.org 6 points 4 hours ago

Write your code as if the next person that works with it is a violent psychopath who knows where you live.

[–] some_guy@lemmy.sdf.org 35 points 10 hours ago (1 children)

This made me chortle. I remember when I first joined a dev team asking someone how many of something their section should be able to store:

I don’t know, I’d have to look at the code.

It was an eye opening moment. Very few people can keep everything in their head. I’ve met a couple. They were rockstars who were truly exceptional.

[–] livingcoder@programming.dev 16 points 9 hours ago

For me it all depends on how often a project changes. If it's constantly in flux, I don't bother remembering any of it because I might not be the last one who touched it. The more you try to remember everything, the more wrong you become due to the successive work of your coworkers.

[–] wise_pancake@lemmy.ca 19 points 9 hours ago

The people who say "the code is the documentation" totally misunderstood what that was supposed to look like

[–] lvxferre@mander.xyz 20 points 10 hours ago (4 children)

Aren't you supposed to spam comments and use meaningful variable and function names? That's what I do with my bash scripts.

Oh wait I ain't a programma'. You call this shit R9GFJKL34LTYLKFÇDS and hope for the best, right?

[–] exu@feditown.com 3 points 4 hours ago

I'm also not a programmer, you'll find my longest comments to explain why I've done some terrible mangling, what this does and how.

[–] Ephera@lemmy.ml 21 points 9 hours ago (1 children)

Spamming comments is rather controversial, especially in high-level languages. Problem is, they only show up in one place, so they're just not very useful, but also have a high chance of becoming inaccurate over time. In particular when you spam them to explain relatively trivial stuff, people will stop reading them, meaning they won't update them.

The 'what' can be documented with meaningful variable/function names, log/error/assert messages and perhaps most importantly unit/integration tests (which should be understood like a specification that checks automatically that it's applied correctly).

Comments are indispensible for explaining the 'why', though, whenever that is not obvious.

[–] rockerface@lemm.ee 6 points 7 hours ago (1 children)

Yeah, there's a balance. If you comment every row of your code, you aren't naming things clearly. If you never comment, the context is always incomplete.

[–] vaionko@sopuli.xyz 2 points 1 hour ago* (last edited 1 hour ago) (1 children)

You don't comment what something does, ir can clearly be seen from the code itself. You comment why you do it.

[–] rockerface@lemm.ee 2 points 1 hour ago

Yes, that would be the context I'm talking about

[–] subignition@fedia.io 8 points 9 hours ago

Bonus points for the cedilla

[–] some_guy@lemmy.sdf.org 2 points 10 hours ago

Hello fellow basher.

[–] Spacehooks@reddthat.com 4 points 7 hours ago

The code is so convoluted the programmer has no idea how it works. Just tables and arrays references each other.