Programming has made my life easy and entertaining in the sense it has presented me with neat puzzles to solve. Nothing to complain about the pay, either. I should be grateful to it.
I confess there were a few things I hated at the beginning. And I hate them to this day.
Programming is cut off from life. It takes place in a room with half-closed shutters far away from a walk under the sycamore trees. You're stuck to the keyboard and the screen in a close symbiosis. You type and click and crave for the right response from the machine.
It's a picky domina that wants you to speak her language without a fault. Metaphors she doesn't understand. Tell her a joke? Don't waste your time. She takes each word so literally it hurts. How can such a smart creature be so stupid?
Sometimes, you admit she was right. You didn't consider the order in which files are copied. A minor mistake by human standards. 'Oops, I meant it the other way around,' you would apologize to a friend in a similar situation and he would get it anyway. Not your machine domina. She punishes you disproportionately. We are still attached to her and do whatever she requires us to do. Have you heard the phrase "to make the compiler happy"? Those are her moments. And countless other ones, like when we upgrade the version of a negligible npm package not for the security patch but to get rid of a daily warning notification in our inbox.
She gives us constant feedback on what she's unhappy about (she never seems to be completely satisfied). Paradoxically, this is what we need to get into a flow state, an endless puzzle game with a clear set of rules. I enter her dungeon in the morning, collect a coin (for successfully updating the customer table with an extra field for the second address line). A dragon stands in my way (changing the address turns out to be more involved). Dinner time comes, I quickly order a pizza in the external, uninteresting world, and get back to slay the dragon. I finally leave the dungeon at half past seven. On some days, it's victory, on other days, it's defeat. Whatever the output, a whole day passed without me being part of it.
Programming is a drug and I am addicted. So are my fellow programmers in the world. We love being the slave of the machine domina, and some of us hate her for the joy. We deny our addiction and say software has made the world a richer place. Look how many apps you can download to your phone. You can do an instant micro-payment to your friend. You can share in which bar you're having your third beer tonight, including its type and how it affects your mood. (Korean Pale Ale and two thumbs up, respectively) Even if software reduces hunger and domestic violence, behind the scenes, the same React-based bloatware will call the same spaghetti of micro-services. It feels I've been writing the same Ruby on Rails app in the last decade, for different companies and for "disruptive new products."
Tomorrow morning, I'll enter the dungeon again. And get excited (Hey, we are in the middle of a biggish product feature, a PHP major version upgrade, and in a transition to trunk-based development, docker, and all that jazz.) And I'll get drugged.
Originally published here.