Main Content

Thursday, 28 February 2013

baked byAngelina Fabbro

Portrait Of Angelina Fabbro

When you are not programming, you are still a programmer too

When you are not programming, you are a programmer still. It doesn’t leave you.

When you walk down the street after work and you leave your computer behind, your analytical mind stays with you. If you really want to get better at programming, start finding ways to solve the same kinds of problems you see in your code everywhere else in your life. Probably you are solving many of them already every day and you don’t even notice it. The last time you travelled to complete errands, did you try to take the route that you thought would take the shortest amount of time? Do you try to do your dishes while you have a load of laundry in to parallelize your household tasks? Have you ever followed an algorithm of pictographs to assemble IKEA furniture? Have you ever played a video game and tried to find ways to get the highest score? If we are aware of our penchant for problem solving, then we can embrace it. Good problem solving is at the core of good programming practices.

Always ask why about everything in front of you. I think this is something we are told to do as kids, but as adults many of us become a little arrogant and pretend we are beyond needing this skill. We become smart adults doing adult jobs and we pretend that we know enough and get lazy and we stop asking why to the little things we take for granted. Why do the doors on our office building push inward instead of pull out? Why is the elevator slow — how does it make its decisions about what floors to stop on? Why did the designer of that poster use that particular typeface to convey their message? Always ask why, why, why in and out of your domain. Ask why in some of the most unfamiliar situations and then try to use your reasoning and other programmer skills to come up with a solution. It doesn’t matter if you ever know what the right answer is, only that you’re making an effort to try and solve the problem for yourself. Have fun with it and be creative, and find friends who take pleasure in this pastime as well. You’ll end up having interesting conversations that lead you back to working on your problem solving skills.

Strive, with consistency, toward self-awareness. I mean this in a very practical and pragmatic way, not in a new age fluff kind of way. This is basically a different application of the previous point of asking why. In the previous paragraph, I explained that it is important to ask why about the world around you. Perhaps more important than that is asking why about yourself. Why do I like to play the piano? Why do I procrastinate the things I love sometimes? Why did I write an email I sent in the tone that I did? Even the act of selecting what to wear in a given day is a design problem waiting to be solved depending on who you expect to see and what role they play in relationship to you. Pretend you are an anthropologist specializing in the study of you, and ask why, why, why. You will understand your own patterns of decision-making, and eventually your own cognitive biases. You will understand why you do the things that you do and that will include why you program the way that you program.

When you question everything, you find the places in structures and organizations around you and within you that can be improved, and from that comes meaning and purpose when you are rewarded by that awesome feeling of solving a problem. When you come back to the computer you will have better questions to ask that will make you a better programmer.

This pastry box cupcake is dedicated to Natalie Goldberg, the inspiration of which is taken from the first two sentences of her piece “Be an Animal” in Writing Down the Bones — the best book on writing that I have yet to read.