Computing, design, society, humanity.

Primary Menu

You are a Turing machine

As part of my graduate school search and application progress I came across a talk by Dr. Manuel Blum about being a graduate student. What stood out most to me was the part where he tells us how we’re all Turing Machines:

You are all computer scientists.
You know what FINITE AUTOMATA can do.
You know what TURING MACHINES can do.
For example, Finite Automata can add but not multiply.
Turing Machines can compute any computable function.
Turing machines are incredibly more powerful than Finite Automata.
Yet the only difference between a FA and a TM is that
the TM, unlike the FA, has paper and pencil.
Think about it.
It tells you something about the power of writing.
Without writing, you are reduced to a finite automaton.
With writing you have the extraordinary power of a Turing machine.

Like Dr. Blum tells us: Think about it for a moment. We have the extraordinary ability to not only read and think, but also to record our thoughts and our learnings. But what’s just as important is that writing and recording is not a passive process. The very act of writing our thoughts requires us to go through them again, organizing and editing. In fact, I would say that if you’re involving writing at some part of your thinking process, you’re doing it wrong.

While writing is a way for you to cycle through your own thoughts and self-edit, talking about your thoughts and ideas is just as powerful a thinking technique. I’ve found that having the chance to bounce ideas of someone can be a godsend when I’m stuck on a hard problem.

I had a chance to go through both of these processes today. I’m building a programming language as part of my honors thesis, but I was having some serious doubts as to the point of it and the way I was implementing it. When I showed up for my weekly meeting with my advisor, I didn’t really expect to walk out with a solution, but that’s what happened. We talked about the goals of the language, concurrency vs parallelism, applying the scientific method and a number of other small details.

If I had just walked away with that, my problem would have been solved. But I decided to take an hour to sit down and write it all down. The result was the first Parley Blog Post which captures the main ideas behind Parley. I should have been blogging about Parley from the start (and I think that would have helped me be a bit farther ahead than I am now) but late is better than never.

Writing is important. It’s helpful and it helps you think and organize your thoughts. But it’s also time-consuming. Let’s face it: writing takes time and most of that time we’d rather spend doing something else (probably writing code). As with all important things in life, if you really value it you make time to do it. However, it helps if you’re a really fast typist (and have a good keyboard). The good thing is that if you’re writing out your thoughts and using it to improve your thinking process, you don’t have to keep it to yourself. Thanks to our networked world, anything that you write can be instantly shared with almost anyone you want. That means that not only are you doing yourself a favor by writing stuff down, if you post to a blog or mailing list you’re also helping other people out. We’re already at the point where the sum total of human knowledge is far far more than any one person can comprehend so it becomes increasingly important that when people to find something or reason about something that they put it down for people after them to easily find.

In conclusion: you are a Turing Machine. Writing things down is a very effective way to improve your thinking and communicating your thoughts to other people for effectively no extra cost. Since writing stuff down takes time, it’s also in your best interest to learn how to type.