Writing code on paper is good for your brain

The reason I did that was because I had no money. I could never build one. Chips back then were… like I said, to buy a computer built, it was like a downpayment on a good house. So, because I could never build one, all I could do was design them on paper and try to get better and better and better.
Steve Wozniak

I was in a similar situation during my freshman days in college. It was my 1st programming course and back then I didn’t own a computer, my relatives and friends don’t have one, and nobody in our block has heard of it.

Our department has a computer lab that offers cheaper rates but you have to compete for slots with upper class students. Somehow, these juniors, seniors (and beyond) have already occupied all the computers seats every time I had a free time to work on our programming assignments. There were 2 or 3 computers within the university premises but the rates are too expensive for me. But of course, I had no choice because I need to finish the programming assignments.

Well, I actually had a choice. Similar to what Woz did, I started writing computer programs on paper. I really can’t explain it but I think writing code on paper can make you a better programmer.

In high school, my cousins and I would go to my aunt’s office after school. Each one of us would have a free typewriter to play with. Sometimes, my aunt would ask us to type very long documents and she would buy ice cream when we’re done. When our school offered computer typing courses using WordStar, my experience with typewriters proved to be very useful.

Whenever we have programming assignments, I would write the whole program on paper first. I would sit down near our window with a bunch of papers, a pencil, and an eraser. I used the back of old letter-size papers from my aunt’s office. I would spend the whole day debugging and re-writing my program. I have no text editor, no compiler, no debugger to use. I would test my program by writing variables in columns, then in each row, the values of these variables while my program is running in my head. When I’m done, or at least, confident that my program is “working”, I would head up to the nearest computer shop and type my program. Since I’m a fast typist, it took me less than 30 minutes to write my program. Of course, it doesn’t run perfectly on the 1st try but I only needed a few more minutes to get it working. For the next two semesters, I employed this strategy.

On my 2nd year, my aunt bought a computer and by that time, many of my friends own Intel 486-based computers. I can now program 25 hours a day for free.

My motivation back then was to save money. I never really expected that running programs in my mind would help me become a better programmer. I still advice people to try it once in a while. Well, I never known someone who actually tried it. I guess if someone hears me telling this, he would wonder what the f*** I am talking about. “Of course, you need a computer to write a program.”

I never write actual programs on paper anymore. But I still have a lot of scratch papers in my study table drawer.

9 thoughts on “Writing code on paper is good for your brain

  1. Same here, I had practically lots of yellow pads scribbled with codes. For me at least, the procedural programming was easier(?) to write down now and code/debug later. Event driven/OOP just makes it a lot difficult to do writing the code in paper, much less debugging it in your head..

  2. I remember the time when we were working on trees and various sorting algorithms. It seems so easy while looking at the diagrams but when it comes to implementation, it gets messy and running the program in your head even while you’re on the bus – it’s a different experience. Ahh, the good old days.šŸ™‚

  3. Ahh.. yes, I know exactly how you feel about that. I usually tell candidates, they don’t have to worry about not memorizing functions and methods when they code. Deep down inside, I was thinking, where are the good ones, who don’t even need a book to produce quality codes?

    Why would anyone raise an eyebrow at ‘I code on paper’?? šŸ™‚ After all, its still the reason why I carry around a small notebook. I just can’t get over writing codes on paper. šŸ˜‰

    But, alas! Gone are the days!šŸ˜€

  4. Pseudo-codes, yes, I write them on paper–they’re too tacky to write on a text editor.

    But actual programs, no. It bugs me to write a single closing bracket on a single spacious line on paper. I can’t help but think of the tree that died just to give me that single clean line on my paper, and there I go writing a lone closing bracket on it. Poor tree.

  5. bump!
    I guess i also did that and still doing it in public vehicles eheheh~

    just got my pc last aug 2006šŸ˜‰

  6. I still do this nearly every day. It comes in useful when you hard drive crashes or you just have an idea flash past your mind. Using paper I can think out ideas in a completely different mode than when I’m coding. I also step back when running into tougher bugs and pull out the pencil and paper. I find that I think about things differently when working that way.

  7. hi greg,
    I jst read your article and it made me smile..why, bec, i think we’re have had the same experienced. yeah, i used to write codes on paper before on my college days bec i dont have a pc at home. i know its really hard to go in college taking a CS course w/out a pc at home. then. the only chance that i can put myself first,,is jst simply to write a codes on the paper..then later, on the terminal..its a good old memories.

  8. I went on vacation in Madagascar once.. I was “not allowed” to touch a computer. Being an addict I had to code.
    I wrote a complete palm application on a leather clipboard. Cleaned and cleaned my scratches until the whole thing felt done. When I got back to Canada, I typed it out and after a few hours, I had a real running time sheet app.
    I’m currently writing an android app on paper.. Not sure how much I’ll get out, but I do like the exercise. I end up having to really know the API/Libraries.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s