Debugging your mind: A programmer’s guide to spirituality

Post navigation

Spiritual literature is full of mysterious concepts, and confusing statements. You wonder what these folks are talking about, it sounds so absurd at times. However, when you hear it in terms of what you understand already, it is often demystified in a good way.

As a software engineer who stumbled upon spirituality quite accidentally, I want to explain spiritual journey, right from awakening to nirvana, in programmer’s terms! Just for fun! You will be surprised, the programming concepts can very well be used to describe spirituality and spiritual experiences.

So all the programmers out there, programming has trained you well to understand what these yogis, monks and spiritual gurus usually talk about.
I apologize to all the great spiritual teachers who have expressed spirituality in much more artistic and poetic way, because I am expressing it in cut and dry and very technical terms in this writing.

Mind is an operating system.
If brain and body is the hardware then mind is the software. It is an operating system for the biological brain. The mind has been bootstrapping itself for many millions of years through evolution. Just like there are many levels of abstraction in an operating system, from root level basic input output handlers to sophisticated programs that run on forefront, mind has many layers as well. Let us start walking down from the top most layer to the lower layers.

The top most layer is the layer conscious thought. Our thinking processes, the running commentary on what is happening around us, our judgments, our verbal communications with other humans. This is the layer which deals with words and languages. See this analogous to the sophisticated program in high level language like C or Python.

But just below the conscious thought layer, there is layer of sub conscious, which deals with images, impressions and feelings. This layer emotes. It generates emotions. We are subject to this layers effects significantly but not so much aware of how it works. It is our “gut feel” or “intuition” which not necessarily can be expressed in clear words.

Below the emotions there is sense perceptions layer. This is the mind which is closest to the body, processing basic senses like touch, smell, sight. Very much like the input, output processors and interrupt driven event handlers.

Mind is buggy

You might know this already. Mind is buggy. It has all the ailments typical code has that hasn’t been touched or maintained for a long time.
Inefficient and faulty decisions, memory leaks, infinite loops of self sabotaging behaviors, it is all there.
What would you expect from a program which boot strapped itself for millennia and hadn’t been refactored, and reengineered? Not only that, when there is an error, it is often thrown back to the outside world with complaint and suggestion to change the outside world.
Mind, like any program, when in trouble, throws up it’s hands and says to the outside world “What you presented me with, caused a problem, do something different going forward.” It cannot fix itself. Sure we can train computers to self learn and self correct to certain extent but there are always situations where the outside presence of programmer is needed.
The mind similarly needs to be debugged. Mind, to some extent self correct and learn but it has it’s inherent limitations. Like Einstein said, “You cannot solve the problem with the same level of consciousness that created it.” You need something outside your mind to truly refactor and reengineer it.

There is a “watcher” who can debug the mind

Just like there is debugging environment for a computer program, there is debugging environment for mind.

Discovering the witness or watcher of mind can be quite a shock and surprise. Imagine that you are sitting in front of the computer for hours, totally engrossed in the program that is running in front of you, you are watching it intensely on the screen but suddenly there is a power glitch and the screen goes dark for an instant and at that instant, the dark screen reflects your own face to you. You suddenly come face to face with yourself. You were so engrossed in the computer world that you had forgotten yourself totally until that moment. That is how you discover the “watcher” or in spiritual lingo, “the witness”. The moments when you suddenly catch glimpse of the witness within are called satori, or sakshatkar (which in Sanskrit, literally means “witnessing”). Discovery of the witness is considered start of spiritual awakening.

You can debug the mind by simply watching it

This is when fun starts. You start to witness the mind as it goes about it’s business. It is analogous to watching program in a debugger. You see your routines unfolding right in front of you. Watching your mind feel something like this. Lets take example of typical morning subroutine. You woke up in the morning and you hear a thought, “Oh, what is the time?”. Eyes see the time on wall, it registers “8:30 am”. You feel slight muscular cramp in your abdomen followed by voice in your head saying, “Oh my God. 8:30 already! I am going to be late.” You feel your body getting up, heart pounding, followed by narrative in your head “I am in so much trouble. My whole day is ruined. When I am going to start waking up on time? Mom was right, I am so lazy. If it was not for that late night party yesterday….” On and on the voice can go while the body is making poor decisions to get itself ready.

The difference between running through the routine and debugging is that there is now witness within you which watches this routine unfold as if scientist making an observation or programmer seeing program in debugger. You no longer are the voice but you are also the witness of the voice.

When a pattern of behavior is watched completely, defects are fixed automatically

The watcher watches the mind unfolding without any judgment or any interruption. The watcher does nothing really. But just the presence of such watcher changes the mind’s program for better. This is so much better than the computer programs. Fixing a bug in software is work, always work. But fixing a bug in mind can be mysteriously effortless.
It is as if some part in the mind realizes false belief, ineffective routines and then just cant energize it further. The defect in mind, no matter how old, how complicated can dissolve in the presence of the watcher. Almost like the powerful wicked witch of west dissolves simply in a bucket of water in the tale of Wizard of Oz.

If it is so easy to debug the mind, why are we having so much issues with it to begin with? If that is your question, read on!

Watcher is like a muscle, you need to practice it to get better. Meditation is one such practice. When you meditate, you are letting your watcher get stronger.

“I” is just a variable!
As you get better at debugging the mind, you start realizing something very interesting.
You realize that, “I” is just a variable. Yes! Anybody who has programmed, has probably defined a variable named “i”. Like “integer i” and then we loop it in a “for loop”,changing it’s value from say, 1 to n.
The mind has a similar variable which is also called “I”. It is pointing to something of value that is continuously changing, evolving :You! There is no independent existence to the variable “i”, it is only used for convenience of putting our logic together for a program. It has no existence beyond the language compiler.

That is very much like what it is for the feeling of “I”. It is a variable, we use as part of our languages and you can assign it a value. We use it to point to a collection, consisting of our body, our memory, and our numerous thought processes. Each of which can independently change and collectively they create a feeling we call “I” also known as ego.

Most of the times we have assigned a very finite and specific value to “I” and therefore we feel very finite and specific. Like we say, “I am so and so, so many years old, living in such and such place etc”. We make the “I” finite and specific and we do need to make it finite and specific for practical purposes but, we don’t have to.

We can very well assign “I” a value of “0” and feel the “nothingness” a Buddhist monk feels or we can assign “I” value of “infinity” and feel the “super consciousness”.

More so, the ability to set appropriate value for “I” at runtime, is the ultimate freedom, the “enlightenment”, “nirvana” or the “moksha” of the spiritual world.

That’s it my friend ! That is the of mechanics of spirituality. As rational as it can be. However, when you start experiencing the journey, the experience is rich, poetic and endless.

Do you feel confused? Surprised? Intrigued? Enraged? Do you have lot of questions? Good ! See if you can watch your mind go in turmoil trying to make sense of this.

It is very important for us as species to install watcher and to debug the mind, refactor it, scale it to the next levels of evolution as soon as possible. Because human mind have been running unchecked for a very long time, it is buggy and it is making self sabotaging decisions. It is leading life on this planet to a total and fetal system crash. Pressing the reboot button is going to be very, very costly or worse yet, may not even be an option.