David J. Paola

I learned Java without a computer

Really.

I can recall being with my family in southern ohio on a pontoon boat, on a lake in the woods. There was a strict “no technology” policy enforced ruthlessly by my parents. Of course I hated it, and the next best thing I was allowed to do was bring my programming books with me.

“Teach yourself java in 21 days” was an incredibly well-written book. I read this book so much and so often that the flimsy paper cover lost its plastic and ended its life with a barely recognizable cover in the ACM office at UIUC. I believe it’s still there.

But what’s remarkable to me is that I didn’t have a computer when I learned the guts of my java knowledge. This was probably 8th or 9th grade. I’d played with VB for a year or two, and before that made my own little html/css/javascript web pages on angel fire in middle school. It’s fascinating to me to look back and see how my programming skills and knowledge accumulated. It was, almost 100%, for fun. All of it. I’ve had several discussions about “why” people want to code. And holy hell, are people different. Some people want jobs. Some people chose CS when they got to college because it looked neat. Some people learned from classes, others from digging into open source projects. Some people attended lectures, others read books. Some people loved the idea of building something functional out of nothing. Others just want to make some money. Some want to be famous hackers, others are content bit twiddling in their basements.

I remember fuzzy things about my Java learning experience. I first read an antiquated Java 1.1 book that probably cost $3 on the bargain shelf at border’s, and then finally acquired the 21-days java 2 book. I remember the first time I understood what GridBagLayout meant, and I absolutely remember the first time the “interface” idea caught on, with respect to java’s class ideology. Class inheritance? Lightbulb moment. How event handlers worked? Done.

All of these lightbulb moments occurred many miles away from the nearest computer. That fact hasn’t detracted from my ability to acquire new programming skills and understand different ways of thinking about code. I’m certainly not saying it’s helped, but I suspect it has.

It’s been so long since I “learned” how to program that these memories are starting to surface.