From Where Come Thoughts?

by Peter Shikli
23 April 2001

In the work that I do, my firm often comes across software written by others. Sometimes it's to clean up a mess, often just to enhance it. Always, we're trying to understand what such legacy code was supposed to do. Sometimes, we even try to understand what the programmer was thinking.

Software is, after all, a type of thought. It begins by summarizing a small part of the world we live in, and formulates a course of action relative to it. Our minds do this and the result is often the words that represent the course of action. Software does this without the cloudy understanding and ambiguous course of action that English permits. Software forces us to have precise thoughts, and that allows us to study its different types, its components, its essence.

A simple type of thought is one of recognition. We recognize a rock in the roadway ahead of us. A few thousand lines of software in a heat seeking missile recognize the exhaust plume of a jet plane. A few thousand lines of code and a millisecond later, the missile sets its course of action. Through training and repetition, our mind selects our course of action, to swerve away from the rock. We remark that we did it "without thinking", but of course we did, or we would've hit the rock.

If we complicate our thought model with the if-then-else logic trees common to software, such as at right, we can come up with some rather sophisticated software. Add some iterative capabilities, software that loops over and over until it hits upon an acceptable answer, and we can develop software that keeps a supercomputer busy for days. At the point where we write some code with adaptive capabilities that approximates learning, ie. code that writes more of its own code, we have truly advanced software. However, even such software would not have reached the power of the software that operates a cockroach.

That is why software and its tools are not up to the task of reverse engineering and replicating human thought. Software has come far, yet we must go so much farther before it can shed light on that path.

So we follow the path in the other direction and try to find the very first line of code that initiates our thinking. In the ubiquitous world of the PC, "What are our boot instructions?" That is hard to find since our machinery is operational and the software running the current activity is likely to be fairly far down any logic trees.

One technique of software analysis is to categorize blocks of code by type of function they perform and delete irrelevant functions from consideration. This is because it's easier to identify what we don't want rather than what we want. We can look at all the software that answers "Can I eat it?" and disregard it. All those functions are irrelevant compared to the question that precedes it, "Do I need to care about eating?"

Thoughts that satisfy basic needs such as hunger or sex can be disregarded because the code that drives us toward such well defined objectives is in place and just being executed. It rarely gives us a clue as to what originated the code. Evolution seeks to explain the existence of such drives after the fact, the rules by which additional code seems to have been developed after some "boot instructions" for life were already in place.

Thoughts that satisfy advanced needs such as our desire for beauty and wonder may give us better glimpses into the source of our original code, or at least give better clues to our identities. But that can also be wishful thinking. All we know for sure is that whatever software we have that responds to such eclectic needs are far more complex than any software we have ever written. Yet another path too dark to travel given how little light software can shed. For the moment then, we can disregard need-driven thoughts as either executing hard-wired code originated long ago or so complex that we're not yet competent to analyze it anyway.

We can disregard another type of thought, thoughts in response to various stimuli. Whether as simple as swerving to avoid a rock, or as complex as solving a calculus problem, our brain's software is largely executing existing lines of code. Stimuli-driven thoughts may be considered similar or derivative from need-driven thoughts because they are responding to needs such as self-preservation or intellectual curiosity, but the driving need is often general and far removed from the stimulus. Hunger is a drive but the smell of freshly baked bread is a stimulus.

Analyzing the connections between them is a field in itself but once again too complex for software to help. All we can say is that if a given stimulus almost always elicits the same thought, we can disregard it as not containing elements of the "boot instructions" that originated our software. In that regard, stimulus-driven thoughts and need-driven thoughts are the same.

Exceptions exist. We deny our hunger or even our self-preservation because of a belief we hold dear. Some flash of insight, and we don't swerve to miss the rock, but aim the car so it passes harmlessly between our wheels. Likewise, we solve the calculus problem in a way that pushes the field of mathematics with an original thought. In software, we call these "interrupts". Code that is executing properly must occasionally have a way to be paused for an urgent request from the operator or some other device. Such an interrupt can be as trivial as a request to stop writing to memory until more room can be made. It can be as drastic as a reboot when the entire software program is hung. This last interrupt may be analogous to the human software's nervous breakdown or a decision to leave family and comfort to pursue a totally new life.

Much can be learned from understanding these software interrupts. They are invoked at a more fundamental level than whatever software is running. If the software is an application producing reports from a database like MS Access, for example, an interrupt is invoked at the Windows operating system level. If we wish to send an interrupt to the operating system, it will be at the machine level. For the human software equivalent, these interrupts also seem to come from a more fundamental process within our minds than what drives our daily lives. Whether they're flashes of brilliance or stupidity, they seem to originate outside our regular need-driven or stimulus-driven thinking.

People are taught to cultivate these interrupts, to encourage "out of the box" thinking, to jump out of the rut of life and stimulate breakthroughs. We realize these interrupts may generate the ridiculous and illogical, which we can harmlessly discard, but that they also generate the creative insights found only this way. People should strive to be receptive to these interrupts not just because of what the interrupts can accomplish, but also because they are windows to the source of the software and thoughts that drive us. Many volumes have been written about encouraging and leveraging these interrupt-thoughts, going by names such as intuition, creative insight, and flashes of genius, but the best we can do is position ourselves correctly and wait attentively for their arrival.

While awaiting such inspirations, we can also ask ourselves if there is a way to strip away need-driven thoughts and stimulus-driven thoughts. If there would be, we would be left with different kinds of thoughts, thoughts programmed into our minds before we had needs or stimuli. Such fundamental thoughts may go a long way to sketching the origin of our need-driven and stimulus-driven thoughts.

The trick then becomes how to strip away such need-driven thoughts and stimulus-driven thoughts. We can't just sit in a room and wish it. The next thought will probably have something to do with our many needs or the many stimuli around us. We can begin by removing stimuli -- find a quiet, dark room. Perhaps sensory depravation tanks were popular because of how far they could go to strip away stimulus-driven thoughts.

Stripping away need-driven thoughts is harder still. We know we can't turn off our needs by satisfying them. New ones pop up, as wealthy people are often the neediest of all. Now we come to a recommendation even more important than the earlier one to encourage interrupts to our software. If we learn to be satisfied, fulfilled such that even the hard-to-satisfy needs like our search for meaning and our need for self worth are covered, then we may be able to put need-driven thoughts out of our mind.

Although profound, simply suggesting that is akin to suggesting we have a good life. Nothing very practical to go on. But we do have some down-to-earth guidance here. From the ancient religions to those practiced today, all recommend meditation, and offer some proven steps to pull it off. Whether chanting, leading an ascetic life, introspection, or prayer, the meditative experience as recounted by Buddhist, Hindus, Jews, Christians, and Moslems are as similar as the same song sung by different singers. They all speak of transcending our needs, of blocking out the noisy stimuli of the world.

And then they speak of what happens when we meditate successfully, the inner peace and the clear understanding of who we are. Could this be because they have found our "boot instructions", the code that defines us and orchestrates all the code to follow by stilling their need-driven and stimulus-driven thoughts? Could they have thus found where thoughts come from? Could it be the soul as they all claim?

If not, the origin of all thoughts is some random number generator, something that finds a moment of empty space in our thoughts and quickly fills it with a random thought. If we could still our need-driven and stimulus-driven thoughts, such sparks of random thought would be common enough that we would recognize the pattern. Or even more curiously, we could induce long periods without thought. Neither outcome is what those who meditate report.

They speak instead of profound understanding, of establishing communication with a higher power within themselves. They speak of uncovering code more fundamental to operating themselves than need-driven and stimulus-driven thoughts.

If they are on to something, and not suffering from some mass self-hypnosis that has worked over the ages, some programmer had to produce the first line of code they have discovered -- even if the software is magnificent enough to write many more lines of code for itself afterwards. Wouldn't it be a hoot if God were the inventor of the software language and each of our souls writes such original code, code that reflects the will of our soul and propagates so many need-driven and stimulus-driven thoughts to follow?

Questions without answers, of course, but we now have another reason to learn to meditate. To find out what thoughts we have when the need-driven and stimulus-driven thoughts are stripped away. Will we peer into the source of our thoughts and see our inner essence, or will we just see the random flashes of a thought machine on autopilot?

Worth doing either way.


More ramblings like this: www.shikli.com/blog


Peter Shikli is CEO of Bizware Online Applications. You can view his bio and contact him at pshikli@bizware.com.

Copyright © 2000 - 2009 Peter Shikli. All rights reserved.
Website problems: webmaster@bizware.com