The Hells Every Developer Experiences

Wade Zimmerman - Jun 12 '21 - - Dev Community

Every programmer has a tale to share about vicious cycles in their life. Here are a few common forms of torture for the eternally damned:

1. Environments

It worked on my computer. How does it not work on yours? Let's use the same OS. How do you install Linux? Let's use a virtual environment. Wait, actually, let use a virtual machine. Oh no, we forgot about production. How about Docker? Kubernetes? Ah, what the heck? This should be automated!

Dilbert programming environment

2. Dependencies

Rouge commit. All of a sudden, a decimal place is moved, and the whole dependency tree breaks. Survivors are faced with unmet peer dependencies.

3. Tutorials

This is where developers seek sinful pleasure. It was created for junior developers, but some say that you can't get out once you enter. Managers love them too.

4. Callbacks

Can we take a timeout and look at this later?
callback hell

5. Generics

How hard can it be to make a single class that allows every data type? 300 lines of reflection later...

6. Scope Hell

When callback hell isn't painful enough, spice it up a bit by hoisting variables or using global scopes.

7. Project Management

Let's use Agile because everyone else is using it. What is Agile anyways?

Dilbert uses Agile

8. Threading

Threads == speed! Let's use every single core on the machine to run tasks simultaneously. Then we will propagate exceptions to the main thread and gracefully shutdown. All this multitasking means we can launch scripts. The scripts can use the logging daemon thread.

9. Coffee

Programmers don't need to sleep. Coffee is the only way to write perfect code. My coffee breaks are 7, 9, 11, and 2. Why am I so tired this morning? Anyone need more coffee?

10. Meetings

We are behind schedule. Here is my 3-hour presentation on how we can increase productivity. Long story short, we need to meet more often.

Dilbert explains meetings

11. UX

Nobody:
Browsers: Let's make everything the same besides this.
Java: Let's make our own CSS standard.

12. Legacy Code

Self-explanatory, no comments needed.

13. Internal Frameworks

See documentation.

14. Version Control

Push. Pull. Stash. Push. Fast-Forward. Merge. Conflict. Resolve. Push. Unable to push because of conflicts. Unable to pull because the branch is 3 commits ahead. Unable to resolve conflicts. Unable to be able.

15. Compilation

Spent all day fixing linking errors, and it final compiles. It says 3 hours remaining. 2 hours in, you remember you have a memory leak.

16. Documentation

Last updated in 2011. See comments in legacy code for more details.

Dilbert tries programming

Other Notable Hells

  • Backwards Compatibility
  • Caching
  • Coding Interviews
  • Features
  • Talking to non-programmers

The End

You have been to hell and back. Which one do you think is the worst?

. . . . . . . . . . . . . . . . . . .
Terabox Video Player