You don’t need to write code to appreciate how strangely programmers operate. These developer habits can make devs look like they’re arguing with invisible ghosts, celebrating tiny victories, and talking to objects like they’re coworkers.
Once you’ve seen enough bugs and deadlines, developer habits start to look like common sense.
Here are 10 developer habits that feel bizarre to non-tech friends — and why they’re actually practical.
1) Talking to a Rubber Duck (or Any Random Object)
Yep: rubber duck debugging. The idea is simple—explain the problem out loud step by step to… a duck. Or a plushie. Or your plant.
Somehow, hearing your own logic makes the bug reveal itself.
Non-tech translation: “I’m not weird. I’m forcing my brain to be organized.”
2) Celebrating When Something Breaks
When an app crashes, a developer might say:
“Nice. We can reproduce it.”
That sounds unhinged, but it’s a huge win. If a problem happens reliably, it can be fixed reliably.
Non-tech translation: “If it fails predictably, we’re halfway done.”
3) Refreshing a Page Like It Owes You Money
Developers refresh constantly:
- after changing one line
- after changing no lines
- after “it should work now, trust me”
Sometimes it’s habit. Sometimes the browser didn’t pick up the changes. Sometimes we’re just hoping.
Non-tech translation: “I’m shaking the vending machine.”
4) Writing Notes to Their Future Self… In Code
Developers leave comments like:
- “TODO: fix this later”
- “don’t touch this”
- “why does this work??”
And “later” might be next week… or 2029.
Non-tech translation: “I’m leaving warning signs in the jungle.”
5) Googling Things They “Already Know”
Even experienced devs search stuff like:
- “how to sort list”
- “date formatting”
- “error message I saw 1,000 times”
It’s not lack of skill. It’s speed. Memory is limited; search is infinite.
Non-tech translation: “I’m not learning less, I’m optimizing time.”
6) Having Strong Opinions About Spaces vs Tabs
To a non-techie, this sounds like arguing over whether to stir coffee clockwise.
To developers, it’s basically a philosophical debate about order, consistency, and chaos.
Non-tech translation: “It’s not just whitespace. It’s identity.”
7) Renaming Things for 30 Minutes
A dev may spend way too long choosing a variable name. Because naming is hard:
datais vaguethingis suspicioususerInfo2FinalFINALis a cry for help
Good names reduce future confusion more than fancy code does.
Non-tech translation: “I’m trying to make future reading painless.”
8) Saying “It Works on My Machine”
This is the developer version of:
“I swear it was there a second ago.”
It means the code runs fine on their laptop, but something’s different in production: settings, versions, environment, permissions… reality.
Non-tech translation: “My world and your world are not the same universe.”
9) Taking Breaks to “Think” (and It Looks Like Staring Into Space)
Developers often pause, stare at nothing, and do zero typing. That’s not slacking. That’s the brain doing heavy lifting:
- mental simulation
- planning
- debugging
- predicting side effects
Non-tech translation: “Typing is the last step. Thinking is the real job.”
10) Being Weirdly Excited About Removing Code
Developers will proudly announce:
“I deleted 500 lines.”
And everyone else is like:
“So… you did less work?”
But deleting code is often improvement:
- fewer bugs
- simpler logic
- less maintenance
- fewer places for things to break
Non-tech translation: “Less code = fewer future disasters.”
Bonus: The “Just One More Thing” Trap
A developer says they’re done, then:
- fixes one small bug
- notices another issue
- refactors a “tiny” part
- suddenly it’s 2 AM
Non-tech translation: “I stepped into an infinite side-quest.”