Passion is the antidote

Programming isn't always a personal venture, but perhaps it should be. A dedicated programmer should view programming as a home. And if we choose this attitude, we're better of if we would connect to already existing traditions and ask the Elders, but also ourselves, on what we need och doesn't need in our home.

In literature about tradition as such, there is always a core, even though different thinkers and researchers have differences in how to interpret this core. A central part of any tradition is sharing knowledge but also under what forms we share. Knowledge, sharing it and how it is shared is an important aspect of programming.

If words do have meaning, one can't claim to respect knowledge while at the same time sharing knowledge under circumstances under which knowledge is not respected. Just as fake conservatives enjoy speaking about tradition, some will always speak about the value of knowledge as important but act the opposite way. But I would guess this seldom occurs in IT.

Some traditions are bad, others are good. This is business as usual in the history of mankind. But we should always aim for preserving the good ones. Sharing knowledge is a great tradition and in the region in which I am active, we are fortunate to have lots of companies which do this.

One very important task of the senior developer, an aspect which makes the notion of seniority worthwhile, is - as a friend put it - to remember one's shortcomings as a beginner, to be patient and to pass on as much knowledge as possible to juniors. This is equally true for knowledge passed from junior to junior, and for senior to senior, even though the most important relation in this context is between one, with for the time being, lesser knowledge and someone with more. And I have yet to meet a senior developer that would not agree on this. To put it in the lingo of IT culture - such a senior developer would be the very opposite of the hacker.

One of the great thinkers in 20th political thought, Judith N. Shklar, when reasoning about politics and society, always made sure to begin not by asking what we want, but we want to avoid. A path we ought to follow. In the context of work, we want the opposite of a culture of toxins. How is a toxic culture best described? A toxic work culture is one where leaders not only continuously spreads poison in a Now - it can have many forms, irritation, anger, a condescending attitude, comments when they think no one else hears, that is harassments in general, verbal, sexual or in any another form - with consequences for the wellbeing of current employees but also spreads toxics aiming for the Past (former employees) and by doing so preserve a toxic culture onwards into the Future. The consequence is the same: people's wellbeing and performance ends up in the trash-can. Since we know toxic cultures, as a general phenomenon, are rare in IT and, at the most, only are worth to be mentioned in a side note we can leave this be. Now we can aim for passion, the very opposite of toxics. But before writing about positive values, it's always to recommend (following Shklar) to speak about its opposite. By describing Darkness, we are able to see Light.

Programming as Bildung

Why should we study old computer programming languages? The best answer is passion. I have a long term project: to understand a certain language of the Lisp family, Scheme. Currently, I have huge problems with parentheses, but it is so fascinating that I can't help myself. I need to understand it.

But there are also other reasons. The first is that we, from time to time, should question the notion of progress in the world of programming. What we do today sometimes echo the Old Days. This is true of functional programming, as many developers point out.

At a lecture made public by MIT Open University, Gerald Sussman states, with great rhetorical power, that Computer Science concerns neither computers nor science. This thought is also present in the Structure and Interpretation of Computer Programs.

This sentence pierced my notions about programming, what little I thought I knew.

Being a junior developer with no education in Computer Science (although some very basic education in programming), and having a true passion for programming, I love reading about these things.

A view great developers seem to share is that Theory matters. And it so much fun when you finally grasp a new concept. At the same time, I believe that anyone who studies Computer Science, algorithms, data structures and so on because of the instrumental benefits of theoretical models will end up unhappy. You need passion. Something true also of i.e. reading fiction; only do it if you love reading. And if you don't, find ways to unlock the resistance and you'll gain access to a treasure spanning thousands of years.

The main point of the first chapter of The Structure and Interpretation of Computer Programs, is that Computer Science is about processes, and how to best handle processes. Not just processes related to making applications, but in general. The study of processes is also the original definition of Computer Science, as I understand it. One of the key figures behind Xerox, inventor and computer scientist Alan Kay, still keeps making this point. It's about processes.

Alan Kay, being a passionate person (a true intellectual), reads widely, not only about topics concerning programming. This made him take an interest in children and how they learn. How do we best enable children to understand complicated processes? This is an important topic, and it's not only about children as Kay points out. The main point can be referred in different ways, but the key is a milieu where people feel safe, are able to play in a broad sense and are encouraged to be passionate by the use of encouragement and positive feedback. According to Kay such an environment would make us perform at our best while working on any project.

The model Alan Kay proposes is important when applied to knowledge-sharing. It's about the future of programming, nothing less. Bret Victor picked up on this, and has made several marvelous projects. If you haven't watched his talks, YouTube him. Together with some other people, he together with his colleges (adults as well as children) are making some very interesting stuff in a project named Dynamicland.

Most likely inspired by the work of Alan Kay among others (true for at least Victor), they create means to think differently about software. The whole purpose is to produce multiplayer situations, interact across domains and let playfulness govern the way we work. Something near the what the historian Johan Huizinga once stated, I would say.

Alan Kay also has another point. He criticizes the way we think about programming. Why is it that we programmers are so bad at processes? Isn't our subject? Other crafts surely make use of sophisticated applications to illuminate the process involved in producing new products. I often feel envy when one of my best friends, an architect, tell me about the tools he uses to aid him in the process of developing.

For a beginner programmer fluent only in JavaScript, although I've toyed with other languages, Scheme turns everything I thought I knew about programming upside down. That kind of experience makes me tick.

Just as we should ask what kind of society we want, we should ask questions about the culture of IT. What should ask, what kind of culture do we want? We want a home of hackers, something that is as of this date seems fairly simple to obtain - although this is not something we can take for granted. I think passion and surrounding ourselves with people who display true passion is the key.

I am a traveler. When I started to re-educate myself to be a programmer at 35, I thought it would be impossible because of my age. But it wasn't, a curious mind and passion are all you need.

Honestly, I am fairly confident that I will be a good programmer someday; with passion, it's only a matter of time before the equation of insight and knowledge sums up your way. But with true passion comes seriousness. And if you are serious, you should always strive for a better culture, a culture in which we may flourish.

I believe that programming has everything to do with the German notion of Bildung. Programming is about the materialization of ideas. But this means also provides tools for self-improvement, for environments that take the best from our tradition, inspire us and make us happy as individuals. Make us see Light, as the metaphor from the Enlightenment goes.

Let us pick up the torch and do away with any bad moral standards. Let's keep focusing on the Light. I will do my best to keep my passion. Because I truly believe that curiosity and passion are the best antidotes to Darkness.

I believe that the future of IT will be Bright. It's up to us, we developers need to that pass the torch under cultivated forms - just as most developers before us.

We also need to resist any temptation to be comfortable with our knowledge. We need to keep our curiosity, our passion, and pass this knowledge to new generations. It's important. Knowledge is important. But also how we pass it on, and the traditions we embody while doing so. This is why a positive feedback culture is of the essence.

Passion can overcome great hinders. Curiosity makes us tick. It makes us human.