This summer, I'm learning how to design and code mobile apps. It's freakin awesome.
Awesome in the Kantian sense: standing on a precipice and looking down, gauging the likelihood that gravity will clutch your knees and yank you to a fast fall.
Yesterday I wrote my first computer program. I copied the code as instructed in the iOS SDK. Class was taught by our Xcode native guide Nick Hill. I hit "Build and Run" in Interface Builder. My program popped right up in the iOS simulator. Hello, World! I blinked a little. I went back into the code and turned it yellow. Blue. Cyan. I changed the font size and the x-position.
Then I realized that I'd been holding my breath for the better part of an hour. Code apnea. I sucked in a deep breath.
On the next exercise, I called the instructor over. I'm doing this wrong, I said.
No you're not, he said. I just haven't shown the class how to do that part yet.
It's 1978. I'm 10 and I'm working a couple of years ahead in math. I had been hungry for math earlier in grade school. Now I'm in a dark room next to a mimeograph machine, the purple smeary ink, the wet chemical smell of the paper. I'm doing "new math": pattern recognition. I think I'm stupid because this is supposed to be harder but it's basically kindergarten shapes. It can be done without thinking, without computing.
I put my pencil down, pull out a book and read.
It's 1980, the beginning of 7th grade. The algebra teacher walks up to me in the hallway and asks why I'm not in his class.
Shrug. I don't want to be in it, I say.
I want to pass notes with Becky McAllister, I think silently. Becky was the sort of girl, in retrospect, who peaked in junior high. To her credit nobody's hair feathered better and she wore purple mascara.
A couple of months later, the algebra teacher approaches me again. I deflect him again. My parents, who adopted me at birth and are among the kindest people on the planet, were middling-at-best students in school. They are shocked and pleased by my grades, and never ask questions.
I buy a smoky blue mascara.
Where it leaves you. How it comes back.
The little voice that wonders these things.
Learning to code for the first time at age 42, three decades after stopping my ears to all things mathematical, is like the blood returning to fingers so numb they are white stubs. I have this frozen-finger condition, Raynaud's Phenomenon. (Check out the lurid photos in the wikipedia link.) Depending on the severity of the onset, it can take several minutes of warming (in hot water, wrapped around a latte, stuffed in my armpit) before my fingers swell and turn livid, then bright red, and return to normal.
It isn't comfortable getting the blood to flow where it hasn't been.
That's why I'm grateful for the gentle code teachers who never make me feel stupid for asking questions Will Luers, Nick Hill, Nick Schiller, Jeanette Altman, John and Dene, Margarete and Hunter, and especially Michael Sasser, whose canny analogies translate entailed concepts into terms I can grok. Example: the difference between object-related code and procedural code. Procedure is the highway, object-related is the vehicles. Working with mobile apps, I'm thinking a lot about the touch modality. I'm thinking about the design and feel of objects in my hands, like the rounded edges and M&M-like candy coating encasing my white 3GS iPhone. Like the Legos scattered in our loft. I turn them over in my palm. I teach our 6YO procedural logic as we build. I'm alive to the sensory qualities of building.
I am now almost exactly 6 months into learning code. When I started, I knew nothing more than how to modify text to be bold or italic. I know much more now, but am still very slow to execute. I haven't yet made anything really pretty (but the mobile app I began coding today is already head-and-shoulders above a project I worked on 1 month ago).
How lucky I am to live in a cultural moment when near-pervasive access to tools, free instruction, and generous communities of practice make it possible to build beautiful things in HTML5 and CSS3. Wrap it in Phonegap and you're good to go. WYSIWYG programs like Interface Builder and TextWrangler lower barriers to entry.
My husband and I are in the living room reading when our 10YO night owl pops downstairs. We look up from our devices. The three of us banter. Our daughter declares to my husband, "You are a geek. And you," she says, turning to me, "are a popular wannabe."
"No, dear," my husband intones. "That's what she looks like on the outside. Down deep she is a geek."
My husband urges the girl upstairs.
I insert earbuds, go back to my screen.
["Mascara" image credit: http://www.flickr.com/photos/yoliee/]