Discipline

In ancient India, a code of life developed that has had remarkable continuity over the millennia.

One of the concepts that came to be is the yajna. The idea behind the yajna (worship) was multifold. One’s life often revolved around the yajna.

On one hand is the personal discipline that came about with the daily nityayajna. On the other hand are the community based yajnas that involved bringing the entire community together.

The latter were events such as the soma yaagas. These brought together the entire village or town in a worship and celebration that lasted days. One of the interesting aspects of this is that the performers of such yaagas are required to be honored members of the community who are debt free.

West to East

Beginning with the Aeneid of Virgil, the older Greek myths of Troy etc were incorporated into the Roman belief system to ensure a continuity from ancient Greece to the Roman empire.

As the ancient period came to an end, the power center of the Roman empire shifted from the Italian peninsula to the eastern Greek areas.

The mythological artifact known as the palladium was believed to have been moved to Constantinople which became the new capital of the eastern Roman empire.

Components

When dealing with multiple components in a software system, one has to be cognizant of how these components interact with each other.

In addition to such an understanding, it is also crucial to run system tests which go run system-wide tests that check all components and how they work together.

Thus ensures the system as a whole functions well.

Transitions

When a civilization faces severe internal problems, the downfall becomes almost inevitable.

This was the case with the Sassanid Empire, which, during the seventh century, was tottering under military defeats, famine and other problems.

This primed the empire, known as Iranshahr, to be conquered by the Muslim Arabs.

Fields

Ancient Indians had devoted their time and effort in a number of areas.

In the scholarly field, the three main areas were those of dharma, brahma (spirituality) and rasa (aesthetics).

Dharma relates to the worldly system of morality and laws. Brahma relates to the spiritual path by pursuing which one attains liberation. Rasa is the unique system of aesthetics that has influenced the elaborate systems of art.

Tests

In programming, having tests for as many corner cases as possible and having healthy level of code coverage is invaluable.

This ensures that code changes do not break existing functionality.

This is known as regression testing.

Views

Indian philosophy has had many schools. These are known as darshanas (viewpoints). There are various classifications of the schools. But they all appear somewhat arbitrary. The schools include:

  1. Samkhya (enumeration)
  2. Yoga
  3. Nyaya (logic)
  4. Vaishesika (atomism or pluralism)
  5. Purva Mimamsa (prior Vedic exegesis)
  6. Uttara Mimamsa (later Vedic exegesis), also known as Vedanta
  7. Bauddha (Buddhism)
  8. Jaina (Jainism)
  9. Charvaka (Materialism)

Historically, the Yoga and Samkhya schools influenced each other and can be seen to merge into one school. Similarly, the Nyaya and the Vaishesika schools influenced each other. The same goes for the Purva and Uttara Mimamsa schools.

Among these nine schools, Yoga and Vedanta accept the existence of an Ishvara (Deity). The others are ambivalent about the subject or explicitly deny such an existence.

Mapping

Mapping one thing to another is a key aspect of thinking.

Finding analogies and parallels has been a hallmark of thinking since ancient times.

It also applies in the world of programming where concepts are fuzzy but become clear when attempts are made to map to familiar concepts.

Reviewing

Performing code reviews is one of the parts of a programmer’s job.

It can be seen as an exercise to improve one’s knowledge and skill set by looking at code written by others.

The more code one reads, the better ones own coding ability becomes.