Stop Turning Programming into a Religion!

Ivan Roganov
6 min readJan 15, 2024

--

My dear, priests, holy fathers, monks and other such folk. I didn’t get my CS degree so I can see you turn programming into a religion.

Allow me to elaborate.

A frame from Monty Pyton show, sketch about Spanish Inquisition
Nobody expects the Spanish Inquisition!

Humans once used religion to explain phenomena they could not understand. Over time, we evolved. Religious practitioners, especially monks, studied the universe around them. As custodians of knowledge, they developed books, furthering our understanding of life. Concepts that were understood gradually separated from religion and evolved into science. We formerly believed the human body was merely a vessel for divine empowerment. However, over time, we unraveled this mystery, leading to the development of medicine. In the past, stars in the sky were thought to be remnants of battles between gods (gods bless all of you who opened this link). But as we studied them over time, this led to the birth of the science of astronomy.

So now we understand engineering and we are good at it.

Except we are not!

In the past, people valued their abilities. Knowledge was something that one would yearn for and actually work to achieve. One could not become a steam train engineer without proper training. Drivers had to study their vehicles and they needed to know how to kick-start an engine. Their lives depended on this.

But now everything has changed. We dont’ study programming anymore. We just barge into the YouTube, watch a couple of videos, and program something. And yes, we complain about the fact that the colledge is a bad idea and they don’t teach you anything in there.

Okay, yes, it is true that some teachers in my college times were useless. I can clearly recall an old lady who in 2005 tried to explain to us how SQL worked on a 1989 Informix database. That was kinda ‘outdated’ knowledge. But besides that, we had pretty good teachers. And we were taught how to develop sturdy and operational software. We were given a theory of computer system design and I’m still referring to that data to this day, 20 years later.

Yet nowadays, the lack of knowledge of how the computer ticks and tocks is starting to turn backwards. When one does not know what is happening under the hood when he is running Node.js, he is liable to create superstitions instead of answers.

An image of two robots fighting
The battle of the Great God of Monolyth and The God of Microservices

But you know what’s the scariest thing? The scariest thing is listening to these newbies. As Neil Gaiman wrote, they create new gods. The Great God Microservice and his eternal adversary, the formidable Monolith. The fearsome goddess Monorepo, whom everyone starts praying to. All of them are ruled by the dark god of enlightenment NodeJS and his faithful companion Python.

We won’t spend much time trying to learn why our code is slow. We are not going to handle the fact that committing a new icon into our app’s repo bloats the repo by 300 megabytes. We just believe in what was said in some shady YouTube video that promises us JavaScript in 10 minutes, but we never fact-check that video.

“So what if I don’t know assembly? To hell with it!” says a newly spawned programmer. I don’t need you to know it so you can write programs in it. I need you to know enough of it so you understand what is going on in your software when it fails or core dumps. But instead of doing that, you are summoning your gods.

An AI generated picture that resembles some holy woman painted, but she has multiple hands, heads and fangs
The allmighty Goddness Monorepo. (Jesus Christ! I did not expect something THAT hideous when I was prompting the Midjourney)

One time I was at a job interview in one of the semi-big tech companies. They asked me a question:

— Your server stopped working, it’s under a 100% load. What will you do?

— Did this server work yesterday?

— Yes.

— Was the load normal?

— Yes.

— I won’t touch anything until I understand what broke.

Two lead developers who interviewed me choked on their coffee. One started to cry and said that out of 20 candidates at the interview, I was the only one who didn’t suggest scaling up the cluster or installing more instances. They were shocked that I said that without understanding the reasons, nothing should be touched.

And now, not only do we not understand anything, but we have also started to develop in the opposite direction.

Why is this code written in Node? Because Praise the All-Illuminating Node, the king of rapid software development.

The allknowing NodeJS.

Why does your program consume so much memory? Memory is devoured by the terrible monster Garbage Collect. I have no idea what to do about it, but everyone on Stack Overflow swears that this monster is fearsome.

Why does the interface lag on Firefox? I have no idea, for the great and invincible React has concealed an unsolvable problem in its sources. An issue was raised by the great bright knights of the Order of the Understanding; we are waiting for it to be approved and released into the great PR!

No one gets up and dives into the depths of their own code. Each program has turned into a monster, while developers are told “never go into node_modules!” Moreover, even this is no longer an effective development environment. On all our favorite YouTube channels, the Temple of the Most High Zero Coding is now being praised. In the TMHZ, sectarians say that you didn’t even have to code in the first place. You just had to take and put together pieces of the Allmighty Bright Framework! And the code will write itself.

And don’t tell me that technologies are constantly evolving. They evolve, but that doesn’t mean you should degrade.

This is the Monolith!

This is the only possible solution because Git said so!

No, the Monolith is a bad god!

It has long been defeated by Microservice!

So death to the Monolith!

Most discussions on technical forums resemble a medival battle.

The worst part is that people don’t understand that neither the Monolith nor Microservice is something given by the almighty. They are, damn it, two different approaches to development. And if you’re a good engineer, both will be an effective instrument in your hands. If you understand how they work and what happens in the silicon chip that drives these services.

This is now people prepare for a gentle technical discussion nowadays.

I knew a neophyte who joined the Church of the Almighty Meteor! He walked around frothing at the mouth about how there is only one righteous path of development, and this path lies in creating Meteor components. He rejected all other development methods and spent a year and a half writing a piece of crap that stopped launching about 20 minutes after the last release because Node bumped the version from 14.02.00008 to 14.02.00009.

Never pray for a framework. Never say that one language is better than another. It’s all just a set of tools used by the real deity, yourself. The program will or will not work because of your actions. A service is lagging because you wrote it incorrectly. Only your own intelligence will allow you to figure out why something fails.

You are the God in the world of computers because you create only by the power of your thought.

You use all available tools, including chatbots, and they serve you. If you forget this, you will just continue to create this fairy-tale world where programmers turn into sectarians, each praying to non-existent gods, screaming to defend these dieties.

There is nothing wrong with Node.js per se. It is wrong only when you perform actions that you don’t understand. Complaining won’t help you write good code. Only studying and figuring things out can help you be a good programmer. So don’t be lazy. Don’t turn programming into a religion. It is an exact science and has nothing to do with belief. Study!

--

--

Ivan Roganov

IT Expert. Consultant. Speaker. Morale booster. I make IT simple and understandable. Solve any problems related to the IT industry