Why I Program

Posted on Aug 13, 2020

We believe that programming can be, and should be, an intellectually rewarding activity; that a good programming language is a power conceptual tool… - The Art of Prolog

Why do I program? I like the intellectual simulation of solving a problem or designing something. So much of the time as a developer you end up building the same thing over and over. API endpoint for this or a message processor on a queue for that. Maybe this is just the pattern I’ve fallen in over the years. There is room for improvement or building better services but that isn’t enough sometimes. Where I find joy is in solving the problems or learning something new.

This is important for me to recognize. There are a lot of aspects of my job that I enjoy. I enjoy the people. I enjoy design. I enjoy helping making decisions. I enjoy the customers. I enjoy the problem solving.

With so much to enjoy why do I find myself frustrated and down sometimes? Because of the need for control.

I’ve recently been on a journey to look inward and understand more about what brings me joy and what are my motivations. I have a wife, two children, a dog, a house, a great city to live in, and so much more. All of this brings me so much joy on such a personal level. That being said I don’t want to share all of those feelings in a post about work though it is important to note that the primary driver of everything I do is for my family.

In work I have found myself at high peaks and in very low valleys. Often these valleys can’t be avoided. Hard deadlines. Bad requirements. Testing issues. All contribute to low moral amongst a team or organization. Yet recently my valleys have been more frequent and much lower. When I feel this way it is because I feel like things are out of my control in my career. When I don’t feel like I’m in control of my career at work I try to take control by applying for a new job. But the jobs that I’ve enjoyed the most (including my current one) were found not in the desperation of regaining control but rather at my peaks.

The problem I am now realizing is this need for control over many aspects of my career. I feel like if I’m not in every room making every decision I am not in control.

In reality I shouldn’t need to be in control at all, I should just feel the need to solve problems. The need of control leads people to dejection and frustration, anger and resentment, superiority and discontentment. The need to solve problems creates collaboration and exploration, joy and enlightenment, humbleness and contentment. My problem was control, my need was to solve problem

I needed to focus less on myself and more on others (in all aspects of life), to solve problems and help others. To do this is to change the mental model of leadership from that of commands and dictations to one of aiding and growing. I am at my best when I am helping people. I feel best when I’m building things with others. Leading is not about making all of the decisions but helping in building something.

This model removes this pressure to race towards the top and instead grow where you are. A plant that shoots up fast does not establish a good root system and quickly falls over or dies in drought. Rushing upwards only brings you to a new level of incompitence.

The notion of “rising to the level of incompetence” was new to me when I heard about it on Revisionist History. Realizing that each rung up the latter brings you from a level where you may be an expert to one of inexpertise was a little frightening. Here I was hoping to grow quickly to make decisions that I would not be adequately prepared to answer. I’m realizing that instead of rushing towards incompetence I should be working and focusing more on my education, learning, and helping others.

Which brings me back to why I program. I love the learning. I love the adventure. I love the problem solving. These are things that bring me joy in work. When I am joyful at work I find myself being helpful. In being helpful I let others grow. In letting others grow my company grows and opportunities to become incompetent will present themselves to me and hopefully then I will be prepared.