TL;DR – Read the summary section at the bottom of the page.
NOTE: I may add to or update this post as I gather more information from other sources and reminisce further about my past. Just a warning if you come back and reread this piece and happen to notice that part of it changed… memory, like so many other forms of truth, is a fluid thing.
What’s My Point?
The cause of teaching people how to read programming languages and to write code is one that is near and dear to my heart, for myriad reasons. Whenever people talk about gender divides or racial divides or class divides in computer use, it’s a discussion I want to get involved in because I want everyone to be literate. I truly believe that literacy and education are the path to a better world, and I want to take the necessary steps to make that world happen. Mass literacy and mass publishing of books brought us to today’s world of wealth and the state of enlightenment we live in; I have to believe that things will get even better when everyone is empowered by computer literacy, when everyone can understand and write and publish code that performs important tasks for them – the revolution that Gutenberg sparked with his printing press will be as nothing compared to the one that Tim Berners-Lee has launched with the world wide web. This is why I care deeply about the issue of inclusiveness in the tech industry and why it’s important for me to write this blog post.
A conversation on Twitter about the latest controversy of who can or cannot be a Silicon Valley tech founder led to me becoming introspective about my own beginnings as a coder. I’d like to think that I have achieved a high point in my career as a software engineer (with much more awesomeness to come, I hope); I’m not a startup billionaire, but then again, neither are you (probably). But I have to think that I have arrived where a lot of people who are starting out with programming would like to be – doing cool stuff that I really enjoy, getting to work alongside brilliant people, having the opportunity to use amazing technology and building stuff that solves real problems.
But what was my path to get to this point? I can still easily recall my college days, but if I’m to revisit my life experience to discuss how to reach thirteen year olds to get them interested in reading and writing code (and I believe that we need to be thinking even younger than that), I have to go back to my earliest days with a real computer and consider all the factors that came before then to lead me to that point: my socioeconomic situation, what my parents taught me, what I learned in schools… all of it. So I started writing this ridiculously long blog post to examine all of this, to understand what all of my advantages were, to reflect on my personal history, and to maybe figure out what things led to me getting excited about writing software.
Where Did I Come From?
I’m a third generation Italian American; when my paternal great-grandfather immigrated here, Italians were just the latest bunch of “off-the-boat freeloaders” (untrue by a long shot). Our whole family is solidly working class, a blue-collar bunch of butchers, police officers, utility workers, factory workers, homemakers, hairdressers, and cooks in schools and restaurants. My dad’s younger sister was one of the first in the family to go to college, and my sister and I were part of the first generation to all make it to college. All of us attended public schools for primary and secondary education.
My parents ran a successful dual income household; they were solidly above the median income range, and over the course of a decade, from 1975 to 1985, they were able to raise their income from two times the median to about three times over the median. The mid-eighties were a very successful time for them both. They owned a home, built equity, and gave my sister and I a very comfortable middle class life, though I spent a chunk of my early childhood as a latchkey kid and I didn’t see them as often as I would have liked. But they made up for it with lots of family vacation times, and being very communicative and present when we did have time together. I was lucky to have that big extended Italian family and the constant presence and support of many aunts, uncles, and cousins.
Did I Learn To Code In School?
I was also lucky to have parents who stayed very involved in my schooling, right from the beginning. In 1980, I was having trouble in 1st grade – the teacher was constantly punishing me for not paying attention in class, and kept calling my parents in for conferences to tell them how remedial I was. My mom basically asked my teacher: “Is he bored?? Maybe he’s not dumb, maybe he’s really smart!” and then requested that I be put through testing. The test results showed that I was reading three or four grade levels above where I should have been; the teacher who scolded me now beamed with pride and showed me off to other teachers, her “prize pupil”. Unfortunately, the New Haven public school system did not have a program for “gifted & talented” students of my age at the time, so they literally just had me attend classes in advanced grades… Not exactly easy being around kids three years older than you, being teacher’s pet and having that teacher goad the older students by telling them you’re a better reader than they are despite being three years younger.
I began reading at an early age, sometime between three and four years old. I literally picked up every book I saw and just read it. My maternal great-grandfather started my comic book collecting habit shortly thereafter (he always called them “funny books”). Those late seventies / early eighties comics had all sorts of fantastic vocabulary in them and they fired my imagination. My mother always allowed me to buy books anywhere, anytime. I ordered books through the mail at school, I grabbed them off the shelf at supermarkets… and no other kind of book captured my attention more than the Choose Your Own Adventure genre (the analog version of hypertext), both the original series and all the knockoffs that came after them. I still have tons of them in my bookshelves!
My schooling changed when my parents moved us to the suburbs in 1983. At Jerome Harrison elementary school in North Branford they placed me into the “Creative Learning Program” – independent study classes I attended in addition to the “standard” curriculum. My teacher in those classes exposed us to all kinds of puzzles, games, and lateral thinking strategies. We did things like building ELDs (Egg Landing Devices) from common materials, and dropping them off the roof to see if the egg survived the landing. We also did “future problem solving” where they taught us how to think critically about big problems; how to decompose them into smaller problems; how to brainstorm solutions to the smaller problems; and how to present those solutions before our peers, accept criticisms, and refine them.
I don’t exactly recall whether it was CLP that introduced me to logic puzzles, but I feel like that’s where my love of logic, word problems, and riddles started. I think it was also where I was first introduced to GAMES Magazine. Logic puzzles were a great way to sharpen my deductive and inductive reasoning abilities; and GAMES was unique in that it was literally a publication that devoted every page to some form of game or puzzle or thought problem, and I soon became a regular subscriber.
So a lot of this so far really wasn’t about computers, just the context of how I was raised and schooled. I really appreciate you reading this far! We’ll get into the tech stuff now…
Like many others in the tech industry today, I grew up with personal computing, having a computer in the home. Generation X was the first age group raised from infancy with home computers. The very first electronic thing I ever played with was a Coleco Telstar Alpha game system – a PONG clone.
Not too long after that, my parents got my sister and me an Atari 2600, and we spent many hours blowing each other up in Combat. We were lucky enough to get devices like these because our parents had the means, and they were early adopters of new technology, which was likely also a lucky break on my part.
In 1984, my parents decided it was time to buy a full on computer – and they decided that was going to be a Commodore 64. It wasn’t my idea to get one, but they felt it was time that my sister and I had access to something more “useful” than a Nintendo Entertainment System. We never owned any kind of Nintendo system in our household; in fact, my parents completely believed the television news stories that claimed that kids who played video
games were becoming transfixed zombies, and they generally thought it was ridiculous to sit in front of a screen to play games. They recently told me they felt that would have been a waste of my talent, even though they figured the C64 probably wouldn’t be used for much beyond just word processing and playing games. They never thought I would actually program it… But that’s exactly what I did.
The very first thing I wrote in code was an interactive fiction adventure in BASIC that I called “ISLAND” inspired by games like Zork! and my beloved CYOA books. It had a Big Ugly ASCII Graphic and EVERYTHING. Told from first person perspective, your goal was to escape the island – in the latter stages of the story, you stumble upon a mysterious complex filled with strange equipment and eventually teleport yourself to freedom off the island. Suck it, J.J. Abrams!!
It was pretty simple code, it had GOTOs and some IF statements to check input and what not. To be honest, I don’t recall how I actually figured out how to do even that much – it might have been from reading code in RUN magazine, or from reading stuff from “Games Commodores Play” or maybe even from a CYOA genre book called “Save The Venturians!” where you could only proceed through the tree fiction by inputting BASIC code and running it.
Unfortunately, that was my programming high point for a very long time. I lost a bit of interest in programming and just used the computer for things like Bank Street Writer and Donkey Kong for the next 5 or 6 years. Without mentorship or any readily available resources that could take me further, my computer programming skills never grew beyond that bit of expertise. There were a lot of missed opportunities; at one point my parents asked me if I wanted to go to computer camp – but I was really too afraid to leave home and be by myself with a bunch of strange kids (bullies tormented me as a child, that trauma has followed me all my life). North Branford Intermediate School had gotten a bunch of C64s, and were actually teaching a “computer class”… Unfortunately the teacher only taught us touch typing, and never how to code. I remember him pacing proudly around the classroom, hands holding his jacket’s huge lapels, saying “A S D F! Colon L K J!” over and over again… I guess the public school couldn’t afford someone who actually knew how to program?
I often wonder how differently things would have gone for me if I had gone to a private school for high school. My parents offered me that option when I was in my freshman year back in 1988, but I chose to stay in the public system. They told me recently that the school would even have accepted me for no tuition… For all I know, I would have bloomed earlier learning among a larger group of intellectual peers the way that I did when I got to college. I might have even gotten into an Ivy League college. In any case, I never even thought of myself as being capable of writing code of my own until midway through my sophomore year of college, despite my prior experiences with computers at home.
Summary – Recipe For A Coder
I condensed this whole history into what I think may be the salient points of “how” and “why” I became a software engineer:
- My family was supportive, early tech adopters, upper middle class
- I was a voracious reader (and a creative writer, and Grammar Nazi editor)
- Video games & interactive fiction were always a part of my life
- I got extra attention & schooling in public schools that others did not get
- Others introduced me to advanced puzzles, logic, & problem solving at age 9
- My first programs were interactive fiction I wrote at age 10
- I did not take more opportunities to further my programming skills and education, and that may have delayed my growth until college
What do you think? Are any / many of these things missing from today’s education? Did I miss something in the summary, or do you think there are other factors I am not taking into account? Thanks again for taking the time to read a couple thousand words of self-reflection!