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.


Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically each day to your feed reader. If you don't have a feed reader, you can always have these articles delivered to your email inbox every day. Click here to sign up.

Trackbacks & Pingbacks

No trackbacks/pingbacks yet.

Comments

People still prototype and “debug” diagrams on paper, though…

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..

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. :)

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! :D

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.

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

just got my pc last aug 2006 ;-)

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.

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.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-Spam Image