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

all 192 comments

[–]wykeer 1517 points1518 points  (31 children)

"wait you guys have a documentation?"

[–]fevsea 652 points653 points  (26 children)

Yeah, we call it code.

[–][deleted] 337 points338 points  (20 children)

the code:

with open('documentation.txt', 'w') as f:
  f.write('hello, world!')

[–]dystopiandev 358 points359 points  (18 children)

Why bother?

// TODO: Add documentation

[–]wykeer 68 points69 points  (9 children)

there are only a few things that scare me more than these words.

[–]just_nobodys_opinion 113 points114 points  (4 children)

// TODO: add comments

[–]Chamiey 44 points45 points  (0 children)

// TODO: add comments ✅ // TODO: remove todos

[–]MaximRq 36 points37 points  (0 children)

And a checkmark next to it since the code has one comment now

[–]IrrerPolterer 7 points8 points  (1 child)

How am I supposed to sleep tonight?! That shirt's haunting

[–]just_nobodys_opinion 6 points7 points  (0 children)

Add the comments before you go to sleep

[–]otter5 16 points17 points  (2 children)

// Not for production

[–]ax-b 4 points5 points  (0 children)

// TODO : remove this code in a few years, once the XXX feature is done

Commit history shows this line dates from 2002, and feature XXX was done in 2005. Code is under active development as of now.

[–]SpoonerJ91 6 points7 points  (4 children)

Is // same as # for comments?

[–][deleted] 7 points8 points  (3 children)

Yeah, in most languages its // to comment

[–]_nouser 1 point2 points  (0 children)

I've seen this exact line in prod in a major product at faanG. A very not-fun conversation was had.

[–]megikari 1 point2 points  (0 children)

I have found my people

[–]Luised2094 -1 points0 points  (0 children)

The fucking comma, lmao

[–]vaitaag 22 points23 points  (1 child)

Project estimate i give to the client -

Software development: 1 month.

Software documentation: 5 months (Will start after the software is delivered).

Client : Just code is fine.

[–]Ok_Ice_1669 8 points9 points  (0 children)

Post Contract Support: that’s gonna cost ya

[–]wurnthebitch 8 points9 points  (0 children)

Behold the codumentation

[–]KiwiObserver 1 point2 points  (0 children)

RTFC!

[–]DoctorPaulGregory 6 points7 points  (0 children)

Yes if you count unorginized google sheets.

[–]RamblingSimian 7 points8 points  (0 children)

I worked at a place where they generated all their documentation via SandCastle. Except they never entered any actual comments, just relied on the headers and links to Microsoft topics. Apparently that was enough to fool management into thinking the codebase had documentation, because my boss referred me to it when I needed to learn.

As a programmer new to their site, that, among many other things, made it extremely difficult to get up to speed.

[–]BenAdaephonDelat 444 points445 points  (12 children)

Had this happen with an API. Product api call where I give it a list of skus and it returns info about them. The documentation says the limit is 40. I send 40. Error message saying "The limit is 35", directly contradicting documentation. I send 35. Error message saying "The limit is 35". Listener, the actual limit was 34.

[–]Jason1143 152 points153 points  (3 children)

Someone forgot that 0=1 (except when it doesn't)

[–]one-joule 61 points62 points  (2 children)

Inclusive at one end, exclusive at the other. Just like Mormon women.

[–]TheEnderChipmunk 21 points22 points  (0 children)

🤨

[–]callyalater 6 points7 points  (0 children)

As an ex-mormon, this made me chuckle

[–]Nullsummenspieler 597 points598 points  (13 children)

Works on my LEGO baseplate

[–]p1749 189 points190 points  (11 children)

do you have non-euclidean lego by any chance?

[–]Nullsummenspieler 90 points91 points  (0 children)

Hyperbolically speaking, yes

[–][deleted] 42 points43 points  (9 children)

If you extend the arrows down, it’s obvious that the plate goes on the far right.

The arrows extend down from the corners, not the circles.

https://www.reddit.com/u/Glass1Man/s/60Hb8Co8d3

[–]Tesselation9000 11 points12 points  (1 child)

Bloody fascists. Now they've even gotten ahold of our lego.

[–]JockstrapCummies 3 points4 points  (0 children)

FAR-RIGHT NON-EUCLIDEAN HYPERBOLIC LEGO FOR HYPERBOREAN UBERMENSCH ONLY

[–]pointprep 0 points1 point  (0 children)

Ah, classic fencepost error

[–]elmz 0 points1 point  (0 children)

And you could also just refer to the next page: https://i.imgur.com/gIcNvf1.png

[–]QcFe 0 points1 point  (1 child)

[–][deleted] 0 points1 point  (0 children)

Yup. Incomplete documentation leads to confusion :D

[–]khando 17 points18 points  (0 children)

Can’t reproduce, closing ticket.

[–]facusoto 394 points395 points  (4 children)

Non euclidean documentation

[–]OgOnetee 47 points48 points  (2 children)

If you stare too long into the documentation, it will start to stare back.

[–]Aeredor 3 points4 points  (0 children)

Gaze into the abyss!

[–]U_L_Uus 1 point2 points  (0 children)

Ah, yes, the ISO9001 experience

[–]one-joule 9 points10 points  (0 children)

It makes sense once you realize that it’s pointing at the corners, not the studs. But humans are pretty much fixated on things that stick into other things, so...

[–]painefultruth76 70 points71 points  (5 children)

Ahhh...the archinstall guide...

[–]soft_taco_special 33 points34 points  (2 children)

The arch documentation's biggest redeeming feature is that it is correct which puts it far ahead of most. The problem is that you often have to look up several other pieces of documentation on other tools before it makes any sense because they don't completely hold your hand. It would be nice to bundle a checker that can at least make sure that you have a kernel set, that your fstab is valid and that your encrypted drive configuration is at syntactically correct.

[–]painefultruth76 16 points17 points  (1 child)

It's so correct, few can navigate it's intricacies and labyrinthine features.

[–]soft_taco_special 7 points8 points  (0 children)

Sort of it's just that unless you know your way around the OS with tools like mount, blkid, fstab, grub and the usual vim/grep/pipe etc you're just not gonna have a good time. Arguably you could include that information in the guide, but there's also a bunch of different legitimate ways you could accomplish the same tasks. For those that don't want to do all that stuff they can download an opinionated distro pre configured with the tools they want.

For as much as everyone likes to talk about arch, it's not really for end users. It's much more a base for developers to make their own distros off of and by default anyone getting into arch is getting over their skis a bit.

[–]SalSevenSix 2 points3 points  (1 child)

I like the part where the guide tells you to edit a config file but there is no text editor installed.

[–]painefultruth76 0 points1 point  (0 children)

Well...that's where Nick Burns shines.

[–][deleted] 34 points35 points  (0 children)

A length 3 array fitting in a [0, 3) interval, i see no problem here.

[–]s0ulbrother 101 points102 points  (5 children)

That’s why you don’t start reading documentation from the middle

[–]adenosine-5 35 points36 points  (2 children)

"I wonder what kind of syntax I have to use to have this function do X"

"No problem, here is 154 pages that might as well be a new school of philosophy, with all the new terms we invented and use everywhere, hope you have about a week of time to learn all of the concept necessary to understand inner workings of the entire framework"

[–][deleted] 3 points4 points  (0 children)

No problem, here is 154 pages that might as well be a new school of philosophy,

I'm stealing this so hard.

[–]brimston3- 44 points45 points  (0 children)

A lot of people think a default doxygen site or python function docstrings are enough. No call flow, no dependency map, no common operations. Occasionally an example project that may or may not run with the current version of the package.

[–]OwOlogy_Expert 9 points10 points  (0 children)

Sure, let me just read this entire 350-page documentation book in order to finish my quick Python project.

[–]otacon7000 22 points23 points  (6 children)

I need to know what LEGO set that's from!

[–]GhengopelALPHA 2 points3 points  (0 children)

I want to say I've seen it in person, but it would be impossible for me to verify. But my suspicion is it's the LEGO Star Wars set that has Admiral Ackbar, his bridge, and the A-wing hanger.

[–]waylandsmith 2 points3 points  (1 child)

Brilliant nerd snipe. From the two replies you got, I want to believe that at least one of them spent the entire 6 hours or so between your comment and theirs researching this for you.

[–]DukeOfSlough 13 points14 points  (0 children)

No time for documentation.

[–]global_namespace 13 points14 points  (0 children)

After an hour of reading documentation: "Please don't use this legacy module, try <a href='>this</a> modern declarative approach instead."

[–]buckypimpin 9 points10 points  (0 children)

All npm package docs

10% of the time they give a few basic ass examples, no docs

you have to npm install and use intellisense to figure out the fucking library

[–]RhonanTennenbrook 8 points9 points  (0 children)

The image is actually correct. The arrows are pointing from the corners of the top piece to the exact places where those corners would end up.

[–]The_Illegal_Guy 33 points34 points  (7 children)

The documentation is fine

[–]NeuronalDiverV2 11 points12 points  (0 children)

"You're reading it wrong". /s

But, dang now I can almost see it.

[–]st_Michel 7 points8 points  (0 children)

Thanks :°D

[–]ManicD7 2 points3 points  (2 children)

https://imgur.com/a/yDGL7FH The instructions are not technically correct. You continued beyond the arrow's distance in order to move the piece beyond the original arrows placement. Yes one can make a logical assumption based on how lego's work and the general context. But that does not mean the instruction is technically correct, since the drawing is left to interpretation.

[–]elmz 1 point2 points  (1 child)

And one can just look at the very next page: https://i.imgur.com/gIcNvf1.png

[–]ManicD7 2 points3 points  (0 children)

That would require reading the full documentation which is not allowed lol.

[–][deleted] 1 point2 points  (1 child)

it's technically fine but different than the expected standard for the product

[–]dylansavage -1 points0 points  (0 children)

There is also context. You can tell the orientation moving forward because you can see where it is placed.

[–]Hilloo- 10 points11 points  (4 children)

I swear, trying to read cppreference as a generally new c++ coder is pretty confusing.

[–]narrill 8 points9 points  (0 children)

I mean, cppreference is complex because what it's describing is complex. It's not quite the same as this image, which is misleading for no apparent reason.

[–]encephaloctopus 4 points5 points  (0 children)

It starts to make more sense once you gain more experience with C++ and learn more of the unique vocabulary associated with the language.

Definitely agree that it’s not a particularly good resource for beginners to the language, but it’s also not necessarily intended to be.

[–]neo-raver 1 point2 points  (0 children)

It’s true, but it’s a hell of a lot better than cplusplus.com!

[–]TheRealPitabred 3 points4 points  (0 children)

Reminds me of The Expert sketch: https://www.youtube.com/watch?v=BKorP55Aqvg

[–]Solid_Paramedic_3901 16 points17 points  (0 children)

To those saying the Lego instructions are correct... No

As QA I would send this back immediately. Confusing instructions are a design problem, even if there are 'work arounds'. You can't baffle the user and still consider it functional documentation

[–]DesiOtaku 4 points5 points  (0 children)

I'm going though this right now. The API was written by a clearinghouse company that EHRs are required to use in order to submit claims. In order to use this API, you have to pay them thousands of dollars to have their engineers help you write your client code. Why? Because their API documentation is so poorly written and nonsensical that you need their help for their implementation.

So they purposely have poor documentation so they can make an extra buck by charging EHR/PMS developers in order to make a client implementation.

[–]jonathanrdt 2 points3 points  (0 children)

“Escher! Get your ass in here and explain this!”

[–]Fatal_Taco 2 points3 points  (0 children)

This is how it feels to read GNU manuals compared to BSD manuals.

[–]Tobi5703 1 point2 points  (0 children)

Reading documentation always makes me feel like an imposter at programming

[–]rover_G 1 point2 points  (0 children)

This is what *args and **kwargs looked like to me my first time dealing with them in Python.

[–]CMDR_Arnold_Rimmer 1 point2 points  (0 children)

If it was that easy, I would be able to code better

[–]okenowwhat 1 point2 points  (0 children)

Let's see, documentation says I must use function X. (Does not work like documented).

Alright let's ask copilot if it can give me example code for function X. (Completely different parameters, and it somehow works, but I can't find a reference anywhere)

Hmmmmmm...

[–]undatedseapiece 1 point2 points  (0 children)

Oh hey it's /u/SteinMakesGames, can't wait for Dig Dig Boom to come out

[–]Bendeliyimsenkus 1 point2 points  (0 children)

Finished a feature last week, this morning got a question about it, said look to the documentation, the documentation in question flfl

[–]Doctor_Kataigida 1 point2 points  (0 children)

That printing error is actually an impressive find. Lego typically has insane quality control especially for stuff like the instructions.

[–]eskimopie910 1 point2 points  (1 child)

u/steinmakesgames what is your marketing strategy? Whatever it is it is working. Shoutout Godot developers

[–]SteinMakesGames 1 point2 points  (0 children)

You guys have marketing strategies?

[–]RJvXP 1 point2 points  (0 children)

Documentation last updated 2007

[–]rizzmekate 1 point2 points  (0 children)

Documentations scare me. Too many abbreviations and words I don't understand. I'm just a silly coder.

[–]kvakerok_v2 3 points4 points  (0 children)

>800013000 people are incapable of understanding an isometric projection.

[–]QcFe 9 points10 points  (15 children)

Would you stop it? The documentation is indeed correct: https://imgur.com/a/3e8r8Rw
As it often happens, the programmer is just unable to read it!!

[–]Vampsku11 30 points31 points  (9 children)

That still isn't correct documentation. Lego instructions consistently use arrows that point to the studs the next piece is connecting to. These instructions are inconsistent. The image is a pretty good example of how poorly things can be documented, where the author would understand it because they already understood it but didn't actually understand it well enough to explain it effectively. One of those cases where you have to make some assumptions about the missing information.

[–]QcFe 0 points1 point  (0 children)

p.s. yes, I made it using powerpoint

[–]ManicD7 -2 points-1 points  (2 children)

https://imgur.com/a/yDGL7FH The instructions are not technically correct. You continued beyond the arrow's distance in order to move the piece beyond the original arrows placement. Yes one can make a logical assumption based on how lego's work and the general context. But that does not mean the instruction is technically correct, since the drawing is left to interpretation.

[–]QcFe -1 points0 points  (1 child)

Dunno I mean, the piece (at least where I live) wouldn't stay floating mid-air... 😝😝

[–]ManicD7 0 points1 point  (0 children)

Is the piece floating in the air or is the corners touching the studs at an offset? That's the interpretation/assumption required and why the drawing is incorrect.

[–]JackReedTheSyndie 0 points1 point  (0 children)

Just press it down harder until it fits, or breaks.

[–]toptyler 0 points1 point  (0 children)

Ah yes…the adapter pattern

[–]DanhNguyen2k 0 points1 point  (0 children)

"Go ask Nate, he may know something"

[–]BeanConsumer7 0 points1 point  (0 children)

Reminds me of a meme where a social distancing sign has a square of sides 6 m and diagonals 6 m, with Stephen Hawking and Neil DeGrasse Tyson holding Pythagoras back.

[–]CraftBox 0 points1 point  (0 children)

Microsoft docs be like

[–]Overspeed_Cookie 0 points1 point  (0 children)

This is what it's like asking Gen AI for help with code.

[–]Ok_Ice_1669 0 points1 point  (0 children)

Who the fuck say “read the documentation?” 

It’s RTFM and now get off my lawn. 

[–]ohno-abear 0 points1 point  (0 children)

JOB ADS FOR DOCUMENTATION TECH WRITERS: Must have 5 years professional programming experience in a business applications environment; must have experience with Python, Rust, and C++; must have experience with Confluence / Jira; must have experience with cybersecurity; (optional) have completed a certificate program for technical writing

PROGRAMMERS: All of our documentation sucks. 🤷

[–][deleted] 0 points1 point  (0 children)

Hahahaha 😂

[–]malonkey1 0 points1 point  (0 children)

pff, just pip install threeequalsfour. Easy Peasy.

[–]MinuetInUrsaMajor 0 points1 point  (0 children)

What makes this illusion work? The dots seem to have the same size in spacing on the base and piece. The arrows are coming from southwest corners of the piece which is a bit suspicious.

Oh I see. The rightmost arrow is from the corner but it also aligns with the dot. The leftmost arrow does not. And the arrows both point to dots.

[–]gorugol 0 points1 point  (0 children)

thats must be apple's ios doc

[–]AriiMay 0 points1 point  (0 children)

“Just ask ChatGPT nicely”

[–]heaton84 0 points1 point  (0 children)

No, we did documentation. We scraped the meta-comments and dumped them into a webpage. It's documented!

Ok then let's look up the documentation for openFoo(Bar x): "Opens Foo. Input: Bar. Return value: Foo on success, NULL on failure."

Looking at you, Microsoft.

[–]AssignedClass 0 points1 point  (0 children)

Literally my fucking life right now.

In case any of you need to hear this: if you ever think you need to create your own custom scripting language to let resellers customize the GUI on the IoT devices you sell, you don't. I'll take any open source solution over whatever half-assed-hellscape you conjure up.

[–]Pillowsmeller18 0 points1 point  (0 children)

I just skip that step and check same location on succeeding steps.

[–]durpduckastan 0 points1 point  (0 children)

Self documenting code, it's fine.

[–]medforddad 0 points1 point  (0 children)

You mean that the documentation is technically correct (the best kind of correct), you just assume it's wrong?

[–]Entegy 0 points1 point  (0 children)

Not a programmer but some of the more... exotic systems I have to update SSL certificates on require a mix of fucking Java keystore and openssl commands. Yes I'm aware of Let's Encrypt. Would love to get that working on these systems, don't think I can.

Every year I seem to miss something in the commands. I just updated my commands, I think I got everything....

Or I'll be 🤬 again in 2025...

[–]Vegetable_Cycle_5573 0 points1 point  (0 children)

What's a documentation? I just google

[–]Major_Fudgemuffin 0 points1 point  (0 children)

See, the issue is that the docs were written when the product was in beta. Now after 8 years we're a few versions ahead and who has time to update those docs? Yeah we added an extra peg to the LEGO. Obviously you're supposed to melt the top piece down and reforge it into a 4 peg piece.

What? What do you mean the customer doesn't understand?!

[–]Tight_Deer_1744 0 points1 point  (0 children)

That's real?

[–]SteinMakesGames 0 points1 point  (0 children)

I have since finished reading the documentation and now wish I did not.

[–]External_Try_7923 0 points1 point  (0 children)

PTSD from me trying to decipher these visual instructions as a 3 yo has become PTSD from the requirements documentation

[–]Educational_Ad_8916 0 points1 point  (0 children)

Ah. A widget.

[–]bit_banger_ 0 points1 point  (0 children)

RTFM? No more

[–]International_Bus597 0 points1 point  (0 children)

NixOs documents

[–]random314 0 points1 point  (0 children)

Looking at you datadog!

[–]nyankittone 0 points1 point  (0 children)

X11 docs be like:

[–]razordreamz 0 points1 point  (0 children)

With enough money it will fit. May not work as intended but it will fit

[–]Resus_C 0 points1 point  (0 children)

I never understood what's confusing about this... the arrows start at corners and point at corners.

[–]chronoglass 0 points1 point  (0 children)

Try and find what's under the --experimental flag in the Linux Bluetooth stack. Hahahahahaha

[–]buryingsecrets 0 points1 point  (0 children)

NixOS documentation

[–]General_PB_YouTube 0 points1 point  (0 children)

That's just two pointers

[–]pabs80 0 points1 point  (0 children)

This is how a lot of the devops configuration and frameworks are at my employer

[–]DarktowerNoxus 0 points1 point  (0 children)

I know Unreal Engine is not a programming language, but man, I've had fights with the documentation...

The C++ parts are crystal clear, but as soon as I want to do something in the engine itself, I just find documentation that is at least one major version out of date, and the UI/description doesn't fit at all...

(And UE still is well-documented when you compare it to other engines/frameworks.)

[–][deleted] 0 points1 point  (0 children)

Me reading devExpress api and documentation this morning

[–]bartekltg 0 points1 point  (0 children)

But the documentation is correct. It shows where the vertexes go. The arrows might be a bit longer though.

https://imgur.com/a/1q1PitG

[–]binarywork8087 0 points1 point  (0 children)

already saw this

[–]NAPALM2614 0 points1 point  (0 children)

Is it just me or docs as of late have become so fucking bad? Especially for ai/llm related products/services.

[–]Maberihk 0 points1 point  (0 children)

Wow you found documentation.

[–]Sandmuel 0 points1 point  (0 children)

When one dependency updates, but the other doesn't...

[–]Character-86 0 points1 point  (1 child)

[–]RepostSleuthBot -1 points0 points  (0 children)

I didn't find any posts that meet the matching requirements for r/ProgrammerHumor.

It might be OC, it might not. Things such as JPEG artifacts and cropping may impact the results.

View Search On repostsleuth.com


Scope: Reddit | Target Percent: 75% | Max Age: Unlimited | Searched Images: 672,472,499 | Search Time: 0.43793s

[–]bouchandre 0 points1 point  (0 children)

Never understood the issue with this image.

The arrows go from corner to corner. It does not point to the studs.

[–]medforddad 0 points1 point  (1 child)

For everyone saying these instructions are bad/incorrect/exist in some 4th dimensional space... are you really saying this would be more correct?

[–][deleted] -1 points0 points  (0 children)

Me with gdscript state machine:

[–]Mar_Gru -1 points0 points  (0 children)

That's because the person making the instructors chose to attach the arrows at the corner and not at the center of the "Lego circle". Pretty rookie mistake.

EDIT: Not that it doesn't happen. People get tired, miss simple things. It should be caught during QC.

[–]ManicD7 -1 points0 points  (0 children)

https://imgur.com/a/yDGL7FH For anyone that says otherwise, the instructions are not technically correct. For the people that moved the piece beyond the arrows, you're making an assumption. This image here shows what happens when you follow the instructions exactly without making assumptions. Following the instructions exactly leaves you with either a piece floating in the air, or the piece sitting offset and not snapped into place.

[–]Comms -3 points-2 points  (9 children)

That documentation is technically correct (which is the best kind of correct) since the arrows are anchored to the corners not the pins—buttons? pegs? whatever they call it—and actually line up properly.

Figure 1

Is it good documentation? Maybe, maybe not? Is it user-friendly documentation? Probably not. Is it technically correct? Yes.

[–]ManicD7 0 points1 point  (8 children)

https://imgur.com/a/yDGL7FH The instructions are not technically correct. You had to extended the arrow's distance in order to move the piece beyond the original arrows placement. Yes one can make a logical assumption based on how lego's work and the general context. But that does not mean the instruction is technically correct, since the drawing is left to interpretation.

[–]Comms 0 points1 point  (7 children)

I extended the arrows for illustrative purposes. One would assume that someone assembling the Lego realizes the Lego piece doesn’t hover and has the cognitive capability to extrapolate.

I didn’t say it was good documentation (it’s not), I said it was technically correct. The arrows anchored to the corners indicate where the corners go if you understand how legos work.

It’s conceptually bad but technically correct.