The questions I am often asked about my career tend to concentrate not on how one learns to code but how a woman does.
Let me separate the two words and begin with what it means to become a programmer.
The first requirement for programming is a passion for the work, a deep need to probe the mysterious space between human thoughts and what a machine can understand; between human desires and how machines might satisfy them.
The second requirement is a high tolerance for failure. Programming is the art of algorithm design and the craft of debugging errant code.
Now to the “woman” question.
I broke into the ranks of computing in the early 1980s, when women were just starting to poke their shoulder pads through crowds of men. There was no legal protection against “hostile environments for women.” I endured a client — a sweaty man with pendulous earlobes — who stroked my back as I worked to fix his system. At any moment I expected him to snap my bra. I considered installing a small software bomb but understood, right then, what was more important to me than revenge: the desire to create good systems.
I had a boss who said flatly, “I hate to hire all you girls but you’re too damned smart.” By “all” he meant three but, at the time, it was rare to find even one woman in a well-placed technical position. At a meeting, he kept interrupting me to say, “Gee, you sure have pretty hair.” By then I realized he was teaching me a great deal about computing. It would be a complicated professional relationship, in which his occasional need for male dominance would surface.
So, on that day of my pretty hair, I leaned to one side and said, “I’m just going to let that nonsense fly over my shoulder.” The meeting went on. We discussed the principles of relational databases, which later led me to explore deeper reaches of programming, closer to operating systems and networks, where I would find my real passion for the work. My leaning to one side, not confronting him, letting him be the flawed man he was, changed the direction of my technical life.