The following is a speech that I prepared to give to my son's 8th grade class during career day at Alvarado Middle School in 2013. However, the school canceled the event because, apparently, I was the only parent willing to come in an talk about their career.

Career Day Presentation (that never happened)

I am a software developer. Twenty years ago I worked as a computer scientist at Lawrence Livermore Laboratory. Since then I have worked at several different technology companies around the Bay Area. For the last 7 years I have worked for a software company in Houston Texas. How is that possible you might wonder? Mostly I telecommute from my home office, but I occasionally travel to Houston when we start planning a new software release. The software I build is used to visualize data. I'm now going to describe how I first became interested in this line of work back when I was your age.

When I was in junior high school, there were no personal computers. I knew they existed because my mother used them where she worked. She sometimes brought home a teletype machine. This is just a dumb terminal connected to a mainframe computer. It did not even have a screen. Instead it printed on a roll of paper! You typed in commands that were sent to a computer over a modem and the response from the computer was printed on the paper. It was a tremendous waste of paper, but monitors were expensive and paper was cheap at the time. By the time I was a freshman in high school, personal computers were just coming out. I visited a friend who had an Apple IIe. It had a small monochrome screen with green green text on a black background, but I was completely amazed at what it could do. From that point on I knew I wanted to own one of those magical machines.

I went to the library, and found that I could borrow a small computer. By small, I mean really small. It was like a big calculator. It had a chicklet style keyboard and only 2k of memory. 2k of memory on a computer is not very much. By way of comparison, today's Smart phones have about 10 million times as much memory as that. Programs could not be more than 2000 characters - which is about 1 typed page. My first program was a loop that would print "hello Barry" ten times, but then I changed it to a 1000 times. For some reason this fascinated me. Today you too can go to a library and use a computer for free that is hundreds of thousands of times more powerful than that Timex Sinclair that I first used back in the early 1980's.

I begged my parents for a computer. Since my mother was a programmer at ATT&T Bell Labs and understood the benefits of computing, it was not a tough sell. They bought me a TI-99/4a. It had 16k of memory (8 times as much as the library computer). I used a tiny black and white TV for the monitor, and a cassette tape player for offline storage. There were no games or other applications for it. It came with only the BASIC computer language. So I learned BASIC on my own by reading the big manual that came with the computer. Since there were no games, I created my own. I spent hours programming it, but the time I spent programming was more exciting to me than any game I had ever played. I had seen computer games running on my friends Apple and I had seen Atari video games like pong or space invaders, but I did not have them at home - so I tried to create them. I wrote a pong game. I created a simplistic text-based Sim-City sort of game, Mastermind, and Risk among others. I created simulations like fractals and random circles that filled the screen. My mother learned BASIC too, and I was able to discuss my projects with her. There was never any doubt in my mind that I wanted to create programs for a living when I grew up.

I cannot emphasize enough what a brilliant move it was on the part of my parents not to get me a game console or a computer with lots of games on it. If I had had the games, that is all I would have done - play hours of senseless games that someone else created. This is a trap that most kids with a computer fall into today. It is hard not to because the games available today are orders of magnitude more compelling that what was around in my day. It's probably too late, but I urge you not to fall into this trap. It was an unbelievably transformative experience for me to create my own games and simulations. The act of creating something is far more satisfying than consuming someone else's product. In the process of programming, I came to realize the importance of mathematics, and started doing a lot better in math at school because I could see how it made my programs better. Creating even basic computer graphics involves an amazing amount of trigonometry and higher math.

My high school had a computer lab that was open after school. There were 4 IBM PCs and 8 Apple IIe's. There were no games on these computers. There was no internet. There were no graphics - only text. The lab was not crowded. I never had a problem getting a computer all to myself. My high school had just started offering computer programming classes and an AP computer science class. Everything was so new that the teachers were learning to program at the same time as the students. I was able to skip the introductory computer classes by taking a test because I had already learned BASIC on my own. Until that time, I was the only student to do that. I loved the AP computer class. I can remember I spent one whole Christmas break implementing 6 different sorting algorithms and comparing their run time performance graphically. It wasn't homework, I just really wanted to do it. This was my equivalent of playing computer games.

My first job in high school was at an insurance company stuffing envelopes and answering phones. I did some data entry work too. Data entry is when you take data from printed paper and type it verbatim into the computer. Its incredibly tedious (and I was a very slow typist). This is before scanners were invented. I saw that they had a need for a mailing list program and created one for them in a computer language called Turbo Pascal. All it did was print sorted mailing labels for their customers from a simple text database, but they were very happy with it and raised my pay. Years later when I was in college and came back to visit, I was amazed that they were still using the same program to help run their business.

Even today, after having programmed for nearly 30 years, I still love programming as much as I ever did. Although I spend all day writing software for my employer, I still work on my own computer projects in my free time. It's more than just a career for me, its a way of life. The technology changes rapidly and is always surprising, new, and interesting.

I can't say that any of you will find a similar calling in computer programming the way that I did, but the important thing is that somewhere along the way you find something. At some point in your life you will find something that you will find deeply meaningful to you and useful to others. Don't let that moment pass. Do whatever it takes to follow that passion and see where it leads.