Explanation of the Top 10 '/r/programmingmemes' Posts

Written by Jordan H.

Who knew memes could be so educational? I enjoy memes as a form of art and satire (political cartoons are cool again!), and sometimes that can even be informative.

If you’re a developer you’ve undoubtedly come across the Programming Memes Subreddit, or been the victim of meme spamming from your coworkers. If you’re just starting programming most of them may be a bit archaic, so in this article, I’ll explain (from my experience) what the top 10 memes mean.

Note these are the top ten “of all time” as of the writing of this article.


Yes (Windows Diagnostics)

Yes

This is a simple Python function that supposedly looks for issues on the Windows system.

If you’re trying to learn Python by looking at this, you’re in for a surprise–it’s not even close to syntactically correct.

import os # This module isn't even used
def Windows_Diagnostics() # Where's the ":"?
    print('Looking for problems')
    waitTimer(20000ms) # waitTimer is not a built-in function, and "20000ms"
                       # is not a valid data type
    print('Unable to fix the issue.')

I think that’s part of the joke. Maybe they’re hoping advanced developers will see it and have their hair catch on fire.

whyyy (The Code I Write/What it Does)

whyyy

You just spent an entire weekend designing, testing (because we all unit test our code, right?), and deploying your project. It’s amazing. Bill Gates and Linus Torvalds should bow down to you.

Because you parsed a CSV file and turned it into JSON. All hail the hacker!

All developers think they’re cool when they write a program. I’m no different. But in reality, nobody cares. It’s cool to you and nobody else.

No doubt they are hard to swallow

hard to swallow pills

These days when doing development it’s common to have to download toolkits and framework from the Internet. But how did the Internet get there? Did someone download the framework?

With instant access to memes so mundane, it can be hard to grasp that just sending the string “Hello World” from one computer to another took teams of engineers to design. But thanks to the need for military intelligence we can now look up cat videos at any time of the day.

PTSD Intensifies (Missing semicolon)

ptsd intensifies

If you’re using Python, Ruby, Go or (for the love of Stallman, please don’t) Perl, you probably don’t know what the use of semicolons is for.

They’re not used in scripting languages very much, but often used in compiled languages, such as, C, C++, and Java. For example:

public class HelloWorld {
    public static void main(String [] args) {
        int sum = 4 + 5;
        System.out.println("4 + 5 is " + sum);
    }
}

This is a Java snippet. A programmer must compile this code into Java byte code which is then run as an executable.

Missing one semicolon can result in an entire project not being compiled.

As you can imagine with some projects clocking in at millions of lines, this can be very frustrating.

The missing semicolon is the go-to problem most compiled language programmers face. But what happens if the issue isn’t that? What then?

Hackathon

Hackathon

I’ll agree the “woman yelling at cat meme” doesn’t have very funny origins so its humor has dissipated for me. But it’s in the top ten, so here we go…

To the uninitiated, hackathons are events (usually a couple of days) hosted by companies, where developers get together to develop a project, usually competing. Typically there’s another goal of the event, like networking or recruiting.

I’ve never attended one (I’ve attended something like one, though–Python for good), but hackatons are usually very competative; consequently, most developers sacrifice some conveniences (like sleep) in order to get their project done and win the prize.

All will agree with this! (C++ Linker Errors)

All will agree with this

As mentioned above, C++ is a compiled language, and must be turned into binary in order to run.

What differetiates C++ from its predecessor, though, is the stage of “linking,” or including libraries (external or internal) into the code base.

Any errors produced tend to be very long. You’ll typically have the module name, concatenated with the full member definition (with the template type in brackets), then finally the error, e.g.

/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2.1/include/c++/bits/ios_base.h: In
   copy constructor `std::basic_ios<char, std::char_traits<char>
   >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2.1/include/c++/bits/ios_base.h:424: `std::ios_base::ios_base(const std::ios_base&)' is private
mil.cpp:28: within this context
mil.cpp: In function `int main()':
mil.cpp:28:   initializing argument 1 of `void
   Fraction::Print(std::basic_ostream<char, std::char_traits<char> >) const'

(Thanks to https://www.csee.umbc.edu/courses/undergraduate/202/fall04/Projects/CommonErrors.shtml for the code exmaple)

Believe it or not, this is one of the short ones!

So now you can see why you’d want a large monitor!

this.meme = trash (equality)

this.meme=trash

Typically in English when we want to say things aren’t the same (and we’re geeks) we say “not equal.” For example, “The year 2020 is not equal to utopia.”

In algebra we use the “≠” symbol.

Obviously, you don’t have the “≠” on your keyboard, and programmers were too lazy to put one in, so most programming languages use “!=”

But if you used one in algebra class your teacher would probably accuse you of trying to do a factorial of the right hand side or something.

But programmers are inherently more refined than algebra teachers so we use “!=” whether Ms. Abigail likes it or not!

I deserve that “A,” Ms. Abigail!

An Interesting Title

An Interesting Title

If you’re just starting out in programming you’re undoubtedly copying error messages you’re seeing, and finding some solution on StackOverflow from someone else with a different system and a different problem.

Or you’re not too sure about a specific topic so you look on YouTube (e.g. “how to tangle your tango with django”) and hope that someone explains it just so. And for some reason folks from India rule the programming tutorial space.

Don’t feel bad if you have to go this route. Even expert developers do this from time to time. With patience and hard work you’ll rely on online resources less and less, and instead spend 5 hours reading the C++ compiler source code only to see a StackOverflow post saying you simply need to downgrade the Boost library version you’re using.

You guys:|

you guys

I don’t think you need to be a programmer to get this, but I’ll explain anyway since I promised I would.

The top left cable is standard USB. And, yes, it only goes in one way into your computer port.

In the late 2010’s someone had the genius idea to make the connection reversible, so it doesn’t matter which way you flip the cable; hence, USB-C (top right).

But wait! There’s more! There’s the audio cable (predating USB by, like, a lot of years) that isn’t directional at all. You just plug it in. That’s bottom left.

Finally, “Why use cables at all?” said the developers of Bluetooth?

And we’ve been fighting with connecting Bluetooth ever since.

Last one - true af :)))))))

true af

I’m sure the inspiration for this is XKCD’s “make me a sandwich” cartoon.

If you have not had the opportunity to ditch Windows in favor of Linux, sudo is the keyword to run any command as super-user.

This is equivalent to Windows’ “admin mode.”

Technically, most Linux distributions have a “root” user which has unlimited permissions on the system but it’s very dangerous to log in as root. So most distributions have safeguards in place to prevent this from happening. Obviously, you will need root permissions some of the time, hence the keyword “sudo.”

For example, to install packages on Ubuntu you’d say…

sudo apt install obs

That gets you what you want! ;)

Did you like this article?

Did you know I'm available for hire?

Send me an email here: hireme@jordanhewitt.pro

Or connect with me in Wire: @nswered