From patterns and puzzles to programming

Tamar E. Granor
10 min readFeb 12, 2016

--

“I’m convinced that computer science grew so fast and is so vital today because there are people all over the world who have a peculiar way of thinking, a certain way of structuring knowledge in their heads …suddenly, when it turned out that their way of thinking correlated well with being able to make a computer do tricks, these people found each other.”
- Donald Knuth, explaining the computer scientist’s perspective

A while back, I read a blog post in which a woman explained how her mother had become a computer programmer back in the 1970s and I realized my path (in the 1970s and 1980s) to becoming a professional software developer might interest others. It’s clear to me that I’m one of those people the Knuth quote talks about, that I was born with a genetic mix that made programming a good fit. But opportunity and luck also played a role. Lots of people gave me opportunities throughout my life that led to this path. Of course, it was sheer luck that I was born at the right historical time for software development to even be an option.

Numbers and puzzles and patterns (oh, my!)

You can call the family I was born into either luck or opportunity. On my father’s side, at least three generations before me were college-educated, including at least two generations of women. My mother was a tenacious, capable woman, who’d overcome serious obstacles to become the first in her family to college; her experiences (a little bit of her story is here) also led her to become deeply committed in her community. So from the day I was born, I was surrounded by educated, literate people who had high expectations for their children, both academically and in how we’d live our lives.

As far back as I can remember, I loved numbers and patterns and puzzles. I have no idea when I first started expressing this love, but I do remember my father, a bacteriologist who should have been a mathematician (a story for another day), telling me interesting things about numbers and math way, way back. We’d talk about things like prime numbers and Fibonacci numbers and so forth when I was still in elementary school. I was that odd kid who loved the timed arithmetic tests that started with students folding a sheet of paper into a set of rectangles, each large enough to hold a single answer. I was also the navigator in our family, the one who remembered which way to turn to get home or how to get back to a place we’d been only once or twice. By junior high school, I identified myself as someone who was better at Math than at any other subject and who expected to be in the top math group and to be a top student there.

Going to Philadelphia’s all-girls academic magnet high school, colloquially known as Girls High, was a tremendous opportunity. By the time I entered, I was the youngest in my class by about six months (thanks to skipping one grade and accelerating through another). Being in a single sex high school at that age both protected me from being too much of a target for bullies and reinforced the idea that girls could do anything. Our principal was a woman; so were both vice principals. Of course, girls ran the student government, the athletic association, the school paper and the yearbook.

When I finished high school (with my brother already in college), my father was in the midst of a career change. But opportunity struck again, as Penn, my first choice school, assembled a package of grants and loans that enabled me to attend, despite my family’s precarious financial situation. Entering in the fall of 1974, my plan was to become a high school Math teacher. However, my first two education courses changed my mind.

In my sophomore year, I chose “Introduction to Programming” as an elective. I loved it; it resonated for me in the same way that all those puzzles and patterns and numbers had. It was something I could just do. If my memory is accurate, on each assignment that semester, once I’d dealt with typos (easy to make and hard to correct since we were using keypunch machines to type our programs onto cards), and syntactical and semantic errors (that is, misuse of commands or failure to initialize a variable or similar things), my code worked. I had no trouble laying out the logic for solving the assigned problems.

Choosing Computer Science

At this point, I got lucky again. Switching my major to Computer Science would have been difficult. Computer Science lived in the Engineering school. I was in Arts and Sciences; the courses I’d taken to that point wouldn’t begin to meet the Engineering school’s requirements. But Penn’s Math department had three major tracks. One of them was Math with a focus on Computers. One professor, Herb Wilf, was researching the use of computers to implement various mathematical algorithms. I promptly signed up for one of his courses for the fall of my junior year, and officially enrolled in that major. Dr. Wilf turned out to be a warm and caring teacher and became my advisor, albeit unofficially. (For reasons I never learned, all undergraduate Math majors had the same official advisor.)

The summer after my junior year, Dr. Wilf got me my first programming job, working in an Operations Research firm co-owned by one of his former graduate students. I spent the summer working on FORTRAN code to compute ordnance requirements. I got paid for doing something I found fun! (I had some qualms about the actual work I was doing. Raised in a staunchly anti-war family, working for the military, even indirectly, didn’t feel right. Since the chance to work in programming was such a tremendous opportunity, I swallowed my concerns.)

That same summer, I married my high school sweetheart. He’d just graduated from Penn and was starting law school at Temple University in the fall.

As my senior year began, the question was what to do next. I’d always assumed I’d go to graduate school, but I wasn’t equipped for nor interested in a graduate degree in math. Since I really loved programming, graduate work in Computer Science seemed to be the way to go. In that era, I was able to be admitted without an undergraduate CS degree.

In the summer between college and grad school, I wrote my first business application. It was for my husband’s family business and automated an accounts payable process that had scaled poorly as the business grew. I faced lots of challenges that summer from learning the Basic programming language to figuring out how to fit the necessary data onto the 8” 250K floppy disks used by the Wang 2200 mini-computer we’d chosen to understanding the underlying business process well enough to translate it to code. I loved every minute of it.

In the fall of 1978, I began my graduate work in Penn’s Computer and Information Science department. For the first two years, I took a full course load, getting a wide introduction to Computer Science from hardware to theory of computation. Because it sounded interesting (and because it met during the day, unlike most of the graduate courses), I took “Introduction to Computer Graphics,” with Norm Badler, who ultimately became both another mentor and my thesis advisor.

What I didn’t recognize as unusual then was the number of women in the department. At one point in my time there, the department had 15 full-time faculty members, and four were women. While that doesn’t sound like a lot, in the late 1970’s, it was surprisingly high. (In fact, a quick check indicates that the department has roughly doubled since then, and there are still only four women among full-time teaching faculty.) Whether it was because there were women on the faculty or for other reasons, there were lots of female graduate students, as well.

Early in my graduate career, I began teaching undergraduates and found I loved that, too. Norm noticed my teaching skills and began to send teaching and other opportunities my way, which helped pay the bills, as well as build a resume.

After two years of courses, having passed the written preliminary exam required for PhD status, I had to choose a Masters’ thesis topic. (Department policy required completing a Master’s degree before being formally admitted to the PhD program.) I’d been teaching the Pascal programming language, and had loved the course I took on compiler design. One of the known limitations of Pascal’s compiler was that it had no garbage collection (the task of making memory no longer in use available for re-use). I decided to write a garbage collector for Pascal, and spent the next year doing so and writing a thesis about it.

By the time I finished my Master’s, I knew that I didn’t want to continue in that direction for my PhD. Norm invited me to work in his computer graphics group. Graphical user interfaces (GUIs, such as Microsoft Windows and the Apple Macintosh) were just starting to come into use, and the question of how to build a graphical UI was pretty hot. I spent the next five years exploring this question, and working on what we then called a “User Interface Management System” (UIMS) and would now call a “graphical development environment.” (My contribution to the field was demonstrating that you could separate the syntax of controls from the semantics of the actions they perform. The UIMS would provide the syntax to draw the control and make it operate, and allow the interface designer/developer to specify the application actions to perform. It seems obvious today, but was a new idea then.)

Work-Life Balance

Early in my dissertation work, I took a break for the birth of our first child. The department was incredibly supportive and in doing so, gave me another great opportunity. I had taught “Introduction to Programming” for several years; for the year my son was born, my assignment was coordinating the multi-section course, which was taught by graduate students. I spent the summer before giving birth preparing all the course materials, including assignments and grading criteria, and even recording a teacher training video. This gave me much-needed flexibility in that first year of my son’s life.

Several years later, as I was finishing my degree, I didn’t think a tenure track university position was the right choice for me. First, while I’d enjoyed my thesis work, I didn’t feel that I had the knack for finding interesting research questions. (In retrospect, I think that’s actually a common feeling for graduate students.)

More importantly, when I defended my thesis, I was 8 months pregnant with our second child. Having worked almost straight through (albeit part-time) after the birth of the first, I knew I didn’t want to do that again, and that I needed to make a career choice that would allow me to be the kind of mother I wanted to be. I’d watched the female professors in the department (only one of whom even had young children) and it seemed to me that the trade-offs were more than I’d want to make.

Finally, since my husband was a partner in a family business, and we both had parents and siblings in the Philadelphia area, picking up to move somewhere else wasn’t really an option.

So I took the next two years off to be a full-time mother and part-time community volunteer. My volunteer work included serving with my husband as Presidents for the young couples group at our synagogue.

Going pro

In the fall of 1988, with my older son in first grade and my younger son starting part-time pre-school, I was ready to get back to work. The question, of course, was what to do. Since my favorite part of my graduate work had been writing code, I decided to give software development a try. My plan was to work when both kids were in school (which, for that academic year, meant two mornings a week).

I let my friends know that I was hanging out my shingle as a programmer, working from my home. A good friend from the couples club, who worked in IT, told me that I really should look at this database language called FoxBase. I took her advice and started working on a project for my husband’s business as a way to learn it. (Like many IT projects, that one was never finished, but working on it got me up to speed.) Another woman from the couples club got me my first outside client, her boss. He had an existing FoxBase application and needed someone to make changes. He, in turn, recommended me to others.

Once I entered the world of professional software development, a combination of hard work and opportunity helped me become a leader in my professional community. All the teaching I’d done in grad school helped, too. I got involved with a CompuServe forum for FoxBase programmers, both learning from it and answering questions for others. That led me to writing magazine articles about FoxBase and its successors, FoxPro and Visual FoxPro. When a local user group for FoxPro developers was created, I attended regularly and eventually volunteered to give a presentation.

Answering questions online, writing for magazines and speaking at my user group eventually led to several new opportunities: chances to speak at FoxPro conferences, an invitation to edit a new magazine about FoxPro, and my being asked to write a book about the first version of Visual FoxPro. That first book was well-received in the community and led to about a dozen more. My visibility also led to my becoming involved in speaker selection for some FoxPro conferences.

Like Penn’s Computer Science department, the FoxPro community was friendlier to women than other parts of the tech world. There were many women working with FoxPro, including some of the community’s leaders. In fact, even the leadership at Fox Software included several women. Having a critical mass of women may be why I never encountered the kind of misogyny that many other women in the field have.

Still coding after all these years

My decision in the late 1980’s to work for myself from home put me well ahead of the societal curve. More importantly, it enabled me to raise my sons the way I wanted to. Like all working parents, I had to make trade-offs between work and family, but I had more control over those trade-offs than I would have had with what I tend to refer to as a “job job,” one with fixed hours working for someone else in an office setting. It also enabled me to continue volunteering in my community, paying forward the opportunities I’d been given.

My father, who had been very unhappy in his first career, used to say: “Find something to do where each morning you say, ‘Yay! I get to do that today.’” I was lucky to find such a thing while still in school, to figure out a way to get people to pay me to do it, and to be good enough for them to keep paying.

After more than 25 years as a professional software developer, I still love the feeling I get when I figure out how to use code to solve a problem or when I find the key to fixing a nasty bug. As long as that remains the case, I suspect I’ll keep at it.
Parts of this essay are adapted from a presentation given to Penn Graduate Women in Science and Engineering in 2012.

--

--

Tamar E. Granor

Software dev/writer: suburban Philly. Founder: http://actsofconscience.com, Past Pres, Hebrew Free Loan Society of Greater Philadelphia. Twitter: @TamarGranor