15 Code Crimes That Make Developers Cringe
Table of contents
- Poorly Written Code: The Spaghetti Monster
- Lack of Documentation: The Treasure Hunt
- Overuse of Global Variables: The Chaos Creator
- Copy-Pasting Code Without Understanding: The Stack Overflow Special
- Ignoring Error Handling: The “What Could Go Wrong?” Approach
- Not Following Best Practices: The Rebel Without a Clue
- Overengineering: The Rube Goldberg Machine
- Hard-Coded Values: The Concrete Shoes of Code
- Ignoring Warnings: The Ostrich Maneuver
- Reinventing the Wheel: The NIH Syndrome
- Bad Naming Conventions: The Cryptic Conundrum
- Poor Git Commit Messages: The “Guess What I Did?” Game
- Inconsistent Formatting: The Picasso Effect
- Magic Numbers: The Sorcery of Sloppiness
- Ignoring Security Best Practices: The Code Cowboy
We've all been there - sitting in front of a screen, sipping on our umpteenth cup of coffee, and suddenly... boom. There it is. A line of code that makes us audibly groan, roll our eyes, or even question our career choices. That, my friends, is what we call a "cringe" moment.
But what exactly is "cringe"? In the dev world, it’s that spine-chilling sensation you get when you see something so awkward, so poorly executed, or so fundamentally wrong that you can’t help but squirm. It’s like watching someone try to parallel park a semi-truck for the first time - painful, uncomfortable, and yet you just can’t look away.
Let’s explore some of the top offenders that make developers everywhere cringe harder than a toddler at a spinach buffet.
Poorly Written Code: The Spaghetti Monster
Imagine opening a file and finding a mess of code that looks like someone tossed a plate of spaghetti on the screen and said, "Good enough." No structure, no sense—just a chaotic tangle of ifs, elses, loops, and functions with names like doThing()
or stuffHandler()
. This kind of code doesn't just make you cringe; it makes you want to grab a red pen and start grading it like an angry teacher.
Lack of Documentation: The Treasure Hunt
"Documentation? What’s that?" said no good developer ever. It’s like trying to solve a mystery without any clues. You find yourself squinting at code like you're deciphering ancient hieroglyphics, wishing you could summon the developer who wrote it like a spirit in a seance. "What were they thinking? What does magicVariable
even do?"
Overuse of Global Variables: The Chaos Creator
Global variables are like party crashers - uninvited and causing havoc everywhere they go. You change one thing, and suddenly everything breaks. It’s the butterfly effect in code form, where a tiny tweak in one function sends your entire application spiraling into chaos. The cringe here is real, my friends.
Copy-Pasting Code Without Understanding: The Stack Overflow Special
Ah, the old copy-paste maneuver. It’s a rite of passage for every newbie. But seasoned developers know the pain of debugging a mess that starts with a random code snippet from Stack Overflow or ChatGPT, pasted in with all the confidence of someone who didn’t bother reading the comments below it. "Why is this in Dutch?" you wonder, as the cringe builds.
Ignoring Error Handling: The “What Could Go Wrong?” Approach
Error handling is like wearing a seatbelt. You hope you never need it, but when you do, you’re glad it's there. Ignoring error handling is like driving without a seatbelt and saying, "Meh, what’s the worst that could happen?" Answer: a lot. A whole lot.
Not Following Best Practices: The Rebel Without a Clue
We get it—you’re a rebel. Rules don’t apply to you. But when you decide that best practices are for the weak, you’re not just marching to the beat of your own drum; you’re marching right off a cliff. And the cringe from watching this unfold is like slow-motion agony.
Overengineering: The Rube Goldberg Machine
Ever seen a solution so complex for a simple problem that it looks like it belongs in a museum of modern art? Overengineering is when your solution involves five different microservices, a blockchain, and machine learning to print “Hello, World.” Watching this is like watching someone use a forklift to butter toast, cringe-worthy and unnecessary.
Hard-Coded Values: The Concrete Shoes of Code
Nothing makes a developer cringe more than spotting a hard-coded value in the wild. It’s like finding a landmine in a field of flowers, innocent on the surface but capable of causing untold destruction. “Why is the tax rate hard-coded to 7.2345%? What happens if they move to a different country? What happens if it’s Tuesday?”
Ignoring Warnings: The Ostrich Maneuver
Warnings are the yellow lights of coding, proceed with caution. But some developers treat them like background noise, a mere suggestion to be ignored. "Warnings? Never heard of 'em!" Meanwhile, the rest of us are watching this train wreck in slow motion, eyes twitching, fingers itching to fix it.
Reinventing the Wheel: The NIH Syndrome
Some developers just can’t resist the urge to build their own solution from scratch, even if a perfectly good library already exists. It's like watching someone invent their own version of the wheel, only to realize it's square. "But it’s my square wheel," they insist, as everyone else cringes.
Bad Naming Conventions: The Cryptic Conundrum
When you come across variables named foo
, bar
, thingy
, or my personal favorite, x
, it’s hard not to cringe. Naming conventions are supposed to make code readable and understandable, not mimic the behavior of an overenthusiastic toddler on a keyboard.
Poor Git Commit Messages: The “Guess What I Did?” Game
You check the commit log and see messages like “fixed stuff,” “updated files,” or the mysterious “changes.” You think to yourself, “Fixed what? Updated which files? Changed how?” Every vague commit message is a cringe-worthy mystery that no one has time to solve.
Inconsistent Formatting: The Picasso Effect
When code looks like a patchwork quilt of different styles, tabs here, spaces there, a random mix of brackets and indentations, it’s as if someone decided that Picasso’s approach to art would be great for coding. Spoiler: it’s not. It’s like trying to read a book with pages randomly glued together upside-down.
Magic Numbers: The Sorcery of Sloppiness
Seeing random numbers sprinkled throughout the code is like stumbling upon a secret society. Why is there a “17” here? What does “42” mean in this context? Are these numbers magical? No, they're just confusing, and they make everyone else cringe with every mysterious integer.
Ignoring Security Best Practices: The Code Cowboy
We all know that one developer who thinks security is optional. "Who needs to sanitize user input?" they say, like a cowboy waving away the concept of seatbelts and traffic lights. Meanwhile, the rest of us are diving under our desks, cringing in terror as the security holes gape wide open.
There you have it folks, 15 reasons why developers everywhere are cringing on a daily basis. So, let’s all take a deep breath, commit to better practices, and maybe just maybe - stop making our fellow devs cringe. And remember, code like your future self has to maintain it, because you just might be.
Subscribe to my newsletter
Read articles from Jay Johannes directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Jay Johannes
Jay Johannes
My everyday goal is to make difference in other people’s lives and through my work and business experience, I have built lots of different projects for students, entrepreneurs, and companies like websites, e-commerce, and systems.