From 4d671944caacc9c9a67c2fc3a17bdd76768c985d Mon Sep 17 00:00:00 2001 From: Aki Date: Sun, 1 Sep 2024 14:56:39 +0200 Subject: Published rant about programming jokes... Yes, I wrote it hastily so that I can see how two entries on the same day look like in the index. Yes, previously I always waited for the next day before publishing another post. --- index.html | 3 ++- it_works_but_i_dont_know_why-1.png | Bin 0 -> 3741 bytes it_works_but_i_dont_know_why.html | 46 +++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 it_works_but_i_dont_know_why-1.png create mode 100644 it_works_but_i_dont_know_why.html diff --git a/index.html b/index.html index 0b0c957..0befce6 100644 --- a/index.html +++ b/index.html @@ -23,7 +23,8 @@

posts

2024 -
1 SeptemberRatio Between Consumption and Creation +
1 SeptemberIt Works, but I Don't Know Why +
Ratio Between Consumption and Creation
28 AugustLua as Human-Readable Serialization Format
23 JuneWhere to Learn C++
22 JuneAurora in Mielno, May 2024 diff --git a/it_works_but_i_dont_know_why-1.png b/it_works_but_i_dont_know_why-1.png new file mode 100644 index 0000000..1d770db Binary files /dev/null and b/it_works_but_i_dont_know_why-1.png differ diff --git a/it_works_but_i_dont_know_why.html b/it_works_but_i_dont_know_why.html new file mode 100644 index 0000000..872f8b0 --- /dev/null +++ b/it_works_but_i_dont_know_why.html @@ -0,0 +1,46 @@ + + + + + + + + + + +It Works, but I Don't Know Why + +
+ + +

It Works, but I Don't Know Why

+
+ +
+

We had mostly clear sky for about four days now. Maybe a little cloud here or there. Because of it, I have severe +withdrawal symptoms from not yelling at clouds. It is time to preach pointless stuff on my blog.

+old man yells at cloud +

Among programming related jokes there is a certain subset centred around chaos. They usually contain references to +bad programming or communication practices, not knowing why observed behaviour occurs, nonsensical error messages, +improvised solutions, or similar things. The general notion can be described as "nobody actually knows what they are +doing here." +

A good chunk of them is funny. A cat walking on a keyboard resulting in a regular expression? Yeah, throw a typical +C++ type_traits meta-programming there while we are at it. A side-effect-driven behaviour resulting in unclear states? +A regular day with bad OOP. Problems communicating with non-technical staff? All of the original jokes have a good basis +in the real world. They are a result of humour and/or frustration. It's fun. +

Over last couple years I met an increasing number of students, newcomers, juniors, or even seniors that take these +jokes a bit too seriously. Although, it's an increase from 0-1 to maybe 2-3 per 40 or 50 people. It's a bit worrying. +Hopefully, I just got a bad roll on the population sample. +

Excellence is cool. Making things work is amazing. The key to that is understanding what you are doing and +why. Copy-pasting things and "mutating" code until it compiles might be funny in a joke, but witnessing that at work is +tragic and infuriatingly painful to deal with. +

It's OK to make mistakes. It's fine to take time to understand things. Code rarely needs to be near perfect and very +often assumptions, unhandled cases, lack of modularization, and/or known failure conditions are acceptable. In some +cases we get more budget and time, in other cases we get stricter audits. In yet other cases we get a ticket straight to +hell. Nonetheless, every time I want to strive to make conscious and informed design and implementation decisions. Even +if that decision is "we won't do it." +

Will the code be "good"? Maybe. One thing is for sure: I will be able to explain why it was written that way. + + +

+ -- cgit v1.1