A lot of job interviews start with a question like “How did you get started in software development?” and I never quite know how to answer that question. Get started? Which time? How far back should I go?
I originally started programming in high school. I took classes in Pascal and from there I taught myself C and C++ by making little games and doing feature development for an old DikuMUD I played. (If you’re not familiar with the concept, think of a text-only version of World of Warcraft. Do people still play World of Warcraft???) After high school, I attended Case Western Reserve University. I majored in computer science, and it was different than I expected. We spent a lot of time on the science of computing, processor architecture, linear algebra, and learning machine code.
After three years, I had learned a lot, but most of those things were not software engineering. I didn’t feel prepared to get a job. My classmates who were headed to the workforce had done internships and co-ops at places like Microsoft and IBM, but my family couldn’t afford the upfront costs of those opportunities. I didn’t know how to find a job with a lot of education and very little practical experience. I also wasn’t sure whether I still wanted to work in this field, and didn’t really understand the different types of careers available.
But I also had options from another field. I had taken Latin in high school, and took more Latin in college to fulfill my language requirements. Courses in mythology and ancient history filled out general education requirements. By carefully choosing electives, I was able to add a second major: classics. I enjoyed the courses. The language came easily to me. Latin was the only class I never had to study for. So with the advice and recommendations of my professors I applied to graduate school for a PhD in classics.
I was not really sure what I wanted to do with my life, but I was accepted into the graduate program at Ohio State with a full tuition waiver and a position as a teaching associate. I couldn’t turn that down, so I moved to Columbus. For three years, I taught courses in Latin and Greek mythology. I was not well suited to being an academic, but I learned skills that have been vital to my career: breaking down complex concepts, communicating them in accessible pieces, and fielding questions from an audience of strangers.
In my final year before I left Ohio State, I took on a summer job as a programmer at the OSU Medical Center. It was listed in the student paper and intended to attract an undergraduate. On paper I was overqualified, so they were delighted to have me, and for me it functioned like an internship. I was able to work with professional developers and build software products for the real world. I was reminded of everything I enjoyed about programming and developed the confidence to leave my graduate program and apply for software engineering positions. My somewhat unusual background led me to Accenture where I worked as a software engineering consultant and taught core Java principles to their new hires.