Attention conservation notice: what follows is a
nice, quirky blogpost that pushed a few of my buttons.
"How I became a programmer". Several of us have
heard stories about this. The below is typical in
some ways and atypical in others, not least in
that this guy can write prose as well as code.
Some of the better quotes:
Shortly before high school graduation, quite out
of the blue, my dad called. Together with Major
Pruett, we conspired to keep me out of the Air
Force. Since I couldn't live at home anymore, I
eventually ended up in California with my dad's
parents. The nice thing about that was my
grandpa let me use his dial up VAX account so I
could fire up vi and take dictation in C.
Applications let users do things with the
computer, rather than to the computer.
And, of course, the domain name, and the blog name itself.
Heh.
Udhay, who is still mildly puzzled that he never turned into a coder
http://www.atomicwang.org/motherfucker/Index/A9267832-5BD9-475F-98E6-A8C269E91C4B.html
Here's a hypothetical for you: imagine some band
you really liked as a kid is touring the casino
circuit. You go to see them, and even though you
don't normally, you sit at a slot machine and
start to play. Suddenly the bells go off, the
lights start flashing, and shit goes crazy. You,
my friend, have just won the jackpot!
Now, slot machine jackpots aren't like winning
the lottery. It varies from machine to machine,
but assuming you're a working stiff, figure you
walk out of there with a check for your annual salary. What would you do?
We're talking about enough money to change your
life, but only just a little bit. You could pay
off your debts, but probably not your mortgage.
You could get a new car, but not a Lamborghini.
You could take a year off from work, but not retire.
What would you do? I knew a guy this actually
happened to, so I used to think about it a lot.
Then, a few years later, I got my own proverbial
jackpot. This is the story of what I did.
I did not have a computer growing up.
I was born in 1976, the same year as Apple, so my
dad was just the right age to get into the early
results of the home-brew movement. One of my few
memories of early childhood is of him coming home
with a Sinclair 2000 and a book of games. He sat
there for hours typing in the code for Space
Invaders, and we played it maybe 30 minutes
before turning the machine off and undoing all his work.
I often say that anyone can learn to program, but
you have to be born a programmer. My father
obviously had a fascination with computers. His
father before him was a gifted systems analyst.
There isn't a lot good you can say about my
grandfather, but if humans, like bloodhounds, can
inherit the ability to sniff out bugs, that's obviously where I got it.
None of this is groundbreaking. Ask any
programmer how they became a programmer, and
they'll start the same way. This is the beginning
of what I call the "standard story." I had a
computer growing up. I was in the computer club
in high school. I studied computer science in
college. I got a job programming for so and so.
My story starts in the same place, but makes an immediate and severe detour.
After my parents got divorced, anything having to
do with my dad was taboo. If you'll permit me the
digression, because this shit fascinates me, I
want to talk about the word "taboo." The native
English word, which is to say, the Germanic word,
is "forbidden." The modern German word, of course, is "verboten."
Our word "taboo" comes from the Tongan word
"tabu." In Hawaiian, being also Polynesian in
origin, the word is "kapu." In Malagasy, the
native tongue of Madagascar, they say "fady." I
speak a lot more Japanese than I do Malagasy,
Hawaiian, Tongan, or German. Yet, I can't think
of a word that means the same thing.
Aside from my Japanese heritage, things I
inherited from my father include my looks, my Y
chromosome, my handwriting, my fascination with
computers, and my size. After the divorce, when I
was in second grade, my mother and my redneck
stepfather saw to it that I was continually and
severely punished for all of these things.
All, that is, except for my size. That didn't
manifest itself until much later in life, and
it's not obvious I get that from my father. Aside
from having to know my mother's family are all
rail thin, you have to stop and think about what
the selective breeding of a warrior class does to
a person's capacity for growth.
If my parents had ever fed me it might have
become an issue. As it was, I was among the
shortest kids in my school until I turned 16.
That was when I got a job and started eating. Now
I'm 6'3" and weigh 300 pounds. My step-father was
a career alcoholic and would be pushing 70, so
he's probably dead. Certainly it's better for all
involved if I continue to believe that.
So, yeah, I was there with the rest of my
elementary school class, sitting in the school's
Apple II lab. I learned to program in BASIC and
Logo. I learned to use Bank Street Writer, along
with the admonition that if we didn't know Bank
Street Writer, we wouldn't be able to get jobs in
the nebulous future. I was there, but my life was
far too complicated for me to pay a lot of attention.
I was not in the computer club in high school.
Fate is like gravity. Its pull is weak relative
to the other forces, but it acts over great
distances. There's no reason why a nerdy Chinese
girl sitting in front of a 9-inch white screen
should have attracted my attention. Yet that girl
would be my senior prom date, and that computer,
the Macintosh, would become my career. If that
moment wasn't the force of fate asserting itself
over the distance of my childhood, then the
centrifugal and Coriolis forces don't exist either.
Even though I knew very little about computers
and wasn't in the habit of doing school work, I
recognized that she was writing a report. I had
access to a decent typewriter. Then I noticed
something. When she would get to the end of the
page, the text flowed onto the next line. If she
had a second thought and inserted, deleted, or
rearranged some text, everything just moved around to accommodate her.
I was baffled. I asked her a bunch of questions
about it, and she patiently, if suspiciously,
explained "word wrap" to me. Her expression was
as you would wear if some alleged human asked you
why you kept putting food in your mouth. I didn't
care. Word wrap blew my fucking mind. I had to
get myself a computer, but it wasn't going to be easy.
The problem was all my money was in an account at
the Bank of Mom. That was what my mom called it
when I got any kind of birthday or Christmas
money and she took it. It wasn't gone, she
assured me. It was in my account. While she could
take money from the account to fine me for
misbehavior, the Bank of Mom didn't issue
passbooks, checkbooks, or ATM cards, so making withdrawals was nigh impossible.
You might find this hard to believe, but when I
was a senior in high school, I was a bit of a
wise ass. These Army recruiters kept hanging
around the school and my best friend Matt Pruett
and I loved to mess with them. As a prank only a
high school senior could understand, we let them
sign us up for the ASVAB, the military entrance
exam. I got a perfect score, and Matt didn't do too shabby either.
Matts dad, Major Pruett, stopped the calls from
the recruitment office in short order. My mom on
the other hand, dragged me to talk to the Air
Force. What could be better than a job where
they'd feed me, house me, clothe me and, as long
as I signed the right papers, send my paychecks
to my mom. She also made no secret of her hope
they might finally beat the Japanese out of me.
Luckily Id gotten too fat to enlist, despite my
golden ASVAB score. Mom tried several
motivational tactics: begging, pleading,
threatening, and a hundred-hands face slapping
technique right out of Street Fighter. Finally,
she came up with an idea so clever I actually
have to give her credit. The Bank of Mom was
going to have a special promotion. You might even call it a gambler's sale.
Bolstered by a tax from my part-time job, my Bank
of Mom account balance was about $1500. While I'm
not sure it was entirely optional, my mom was
willing to make a bet. If I could lose more
weight in 30 days than she could, I would win and
double my life savings. In 1993, that was a
four-year education at the University of Hawaii.
At first I thought I could just start riding my
bike to places other than 7-11, but then I
noticed my mom doing a lot of bible reading.
She'd fasted before, but did she really have it
in her to consume nothing for a month but water
and Jesus? That was, at the time, the longest I'd
ever gone without eating, but finally, for the
first time in my life, I had a computer.
Windows is just plain hard to use. I couldn't
even load a game without having to dick around
with memory configurations and other bullshit.
Finally, I had no choice but to sit down and
learn every single thing about that computer. I
learned every piece of hardware, every piece of
software, every arcane DOS command, every modem
control token. I learned it all.
Since I'd enlisted in the Air Force, my mom
agreed to leave me alone for the rest of senior
year. I stayed up every night hacking away,
dialing in to bulletin board systems, endlessly
twiddling config.sys, writing batch files, and
playing video games. I did most of my sleeping in class.
I did not study computer science in college.
Shortly before high school graduation, quite out
of the blue, my dad called. Together with Major
Pruett, we conspired to keep me out of the Air
Force. Since I couldn't live at home anymore, I
eventually ended up in California with my dad's
parents. The nice thing about that was my grandpa
let me use his dial up VAX account so I could
fire up vi and take dictation in C.
When he wasn't around I would explore the
internet, something I hadn't had access to in
Hawaii. I discovered this technology out of
Switzerland that was so new, the "Internet for
Dummies" book I bought at Costco only had one
paragraph about it. It was call the World Wide Web.
I had this childhood obsession with "choose your
own adventure" books, and I had often sat with
paper and pencil and tried to write my own, but
it was too hard to keep track of all the links.
Since keeping track of links was what the web was all about, I learned HTML.
Eventually I did go back to Hawaii and to the
university, but I didn't study computer science.
All of my friends had gone into it, this being
the dawn of dot-com, so I had matriculated as
pre-med. I continued writing web pages,
eventually discovering BBEdit and switching to the Mac.
Later, when all my friends changed their majors,
I tried change mine to computer science, but the
university had a policy that everyone in the
major had to start with CompSci 101: This is
Called a "Mouse." I stubbornly refused to do
that, so I studied photojournalism and kept programming as a hobby.
My first programs were bots constructed out of
terminal macros. I used to call this real-time
300-bps chat board, called Saimin. There were
only five phone lines, and members were
automatically logged out after 30 minutes. It
became a challenge among the nerdier of us to stay logged in all the time.
If the system logged you out, there was a stall
that almost guaranteed someone else would get
your spot. Your only hope was to recognize when
you were about to be logged out, then drop
carrier and call back immediately. We'd mess with
each other's bots, trying to trick them into
logging out. The logic became more and more
complex as the battle of the bots raged on.
I did not get a job programming for so an so.
I dropped out of school and moved to Seattle,
where I started working for a major airline. The
work was physically demanding, but paid well.
This was a good, union job you could work until
the day some luggage went missing and they
eventually found you dead in your tug.
I bought a PowerBook and started programming
between flights. My work continued to center
around web technology. I learned PERL so I could
write scripts for CGI. I learned JavaScript so I
could write DHTML. I learned PHP so I could
survive the browser wars. I learned XML and Java,
so I could work on a project with a design-gifted coworker.
The project was an online training system that
ended up saving the company almost a million
dollars a year. After being at the airport for
five years, I was given a job developing training
software. This was my first real office job and
the first time I'd really been forced to use a
computer for anything other than hacking.
In the real world, they have these things called
applications. Applications let users do things
with the computer, rather than to the computer.
See, in the decade since getting my own computer,
I'd never used it for any productive task other
than word processing. I played games and surfed
the web, which are not productive, and I wrote
reports, web pages, and scripts, which are all word processing.
Now I had to make flowcharts and prepare
presentations. Using Keynote and OmniGraffle, I
could produce amazing results while my office
mates struggled with their Windows counterparts.
This disparity inspired me while working on my
own applications. More and more, I realized what
I really wanted to create were Mac applications.
My boss' boss had a nephew who worked at Apple.
She arranged for us to fly down to Cupertino to
meet him and take a tour of campus. The tour, if
you've ever had it, is very short. You walk to
Caffé Macs, have lunch, then hit the company
store. I expressed my desire to become a Mac
programmer, and asked for his advice.
He suggested I finish school, learn to use Xcode,
and ditch Java for Objective-C. At first I was
taken aback. Nobody likes to hear the truth
stated so plainly. But, it was good advice. I
started taking classes part time and bought every
book I could find on programming in Objective-C.
Some of you may remember that the airlines
suffered severe financial setbacks in a few years
ago. My airline had to shrink in a hurry, but
with unions, nothing happens in a hurry. Thus,
they looked to cut management. Since I wasn't in
the union anymore, I was considered management.
They offered us early retirement, which for me
was one year's salary and benefits.
Jackpot!
The first thing I did upon leaving the company
was go to Apple's Worldwide Developer Conference.
I found a cheap hotel in the ghetto, used my
flight benefits to travel, and got a student
scholarship, thanks to the fact I'd been taking
classes. Honestly, I thought I was pretty hot
shit. I had been the only programmer in my
department, after all, so I was de facto the best.
Student day kicked my ass. I couldn't keep up
with the example project, which was using
NSTableView with bindings. It took me all night
in my hotel room to finally get it working. The
presentations, including Wil Shipley's now famous
talk, were simultaneously inspiring and
discouraging. The whole week was like that.
It was like I was in high school, studying
Japanese. I was the top of my class, and I always
knew one day I would go to Japan and it would be
awesome. Then I get to Japan, and the good news
is, it's so much better than I ever imagined. The
bad news is, I don't really speak Japanese. Oh
sure, I can conjugate a verb or two, but when it
actually comes to real world, rapid-fire
Japanese, I'm almost completely incommunicado.
Confronted with a sudden, near-lethal dose of
humility, my mind hatched an insane plan. Acting
with cleverness and boldness unmatched before or
since, I started looking for Wil Shipley. When I
finally found him, I blurted out: I want to work
for you, with no pay, for one year. When I got
back to Seattle, I sold my condo, gave away most
of my things, and moved into Wil's basement.
It is with more than just a bit of amazement that
I look at the pictures of me, Wil, and Lucas,
standing on the stage at WWDC two years later,
holding our design award. The road from that
stage leading all the way back to my dads
Sinclair 2000 had been long and perilous, but
fate would not be denied. I was born a
programmer. The rest is just implementation detail.
I was born a programmer. The rest is just implementation detail.
--
((Udhay Shankar N)) ((udhay @ pobox.com)) ((www.digeratus.com))