How I Got Into Software Engineering (And You Can Too!)

I’ve spoken about this twice now at a fantastic program here in NYC, BridgeUp. They help girls continue their interest in STEM, finding a place that is supportive of their love of science. They educate, help them grow, and send these girls off to college having already completed some college-level courses, ready to tackle any programming assignment their professor throws at them. It’s because of this fantastic program, and the reactions I got while speaking at it, that I decided to write this post here.

Women used to be more prevalent in computer science. In fact, we were the majority. Ada Lovelace published the first computer program, and is credited with being the first programmer. Not the first female programmer, the first programmer. The original “computers” were the women who did rapid calculations on the battlefield, helping commanders position and aim artillery.

Eventually we automated those tasks, and those “computers” started working with the silicon kind. Women dominated computer science. From inventing the first programming languages to sending us to the moon.

But women were pushed out of the industry when it became a consumer good. Suddenly, businesses needed computers. They needed programmers. And the men who were bosses felt more comfortable hiring men for these high paying positions than women. Eventually, they pushed women out of the industry almost entirely. When computers started entering the household, they were advertised to young boys. In just a decade or two, hundreds of years of computing were lost to the boys.

Growing up, a young girl might not want to go into STEM. She might not think it’s a welcoming place for women. She might be scared off by stories of Uber or Riot Games. When she looks for role models, she’ll find few in the modern era.

But there’s hope. Women’s contributions to computer science, both in the past and today are gaining attention. Programs to reintroduce women to computers have been successful. Role models for young girls pop up every day. Sometimes, I think it’s important to just see a woman coding, just let those young girls know that their gender does not define their role in life. Biology does not dictate who they are, what they can do, or what they’re allowed to like. Video games are fun. Computers are fun. Programming is fun. That fun does not require a person to be of the male gender.

So, with that, I think it’s important to talk about how we get started in programming. It’s not enough to show young girls that they will have other female peers, but also light the path from curious about programming to software engineer.

So here’s my story.

My First Role Models

Spider-Man. Definitely Spider-Man. Oh, alright, my parents, of course. I mean, sure, Spider-Man had a cool cartoon series, and he did teach me that ability is responsibility, but it was, of course, my parents who were my guides on morality. They also guided my career process.

My parents wanted me to be a lawyer. Unfortunately, I ended up a decent person anyway. Don’t feel bad for me, I still lead a half-decent life as a software developer.

When I first joined my dad for a take your child to work day, I saw he used computers at work. Real computers! I had a toy one I made out of a crayon box, and I had seen plenty on TV, but never had a real one. I suppose it shows my age a bit, but the first computer I had in my household was an NES, which I loved. Anyway, I came home that day and decided I wanted to work with computers.

Now that’s not to say my mother had no influence. A mother teaches her daughter who to be in life, how a woman should behave. I was fortunate enough to have a strong woman as a mother. I mean that quite literally, she had some surprising biceps. My mom taught me to stand up for myself, to take what I needed, but to always be kind.

There were many other influences. My grandfather, from whom I inherited my love of books and craving for knowledge. Many teachers who challenged me and encouraged me to seek out information outside of the curriculum. Even the books I read inspired exploration.

It shouldn’t be anyone’s surprise that, despite never taking a computer class, I taught myself how to program in high school. Often, if you want to learn something, you have to go out of your way to learn it. Information won’t always be crammed into your head forcefully, as it is in school. Real learning is something you have to seek out and practice.

High School

I was a bit of a loner in high school. Never felt I fit in much of anywhere. But I did have a few friends. One of them introduced me to a game. This particular game had a level editor and scripting language. You could use these to craft an entirely new game yourself. I started playing a little, and, after a while, became an expert in the scripting language. Eventually, I made a full game.

But, with an imposter syndrome that would affect me for my entire life, I didn’t think myself a “real” programmer. I wasn’t using a real programming language, I wasn’t programming from scratch, so I thought I wasn’t really a programmer. I wanted to learn a real programming language, like C++.

An opportunity presented itself. As it happens, I was in the Future Business Leaders of America (FBLA) at my school. They taught business skills, which I thought would be useful, seeing as I wanted to run my own video game company. I learned how to master a good handshake there, among other things, like debate, speech, marketing, managing costs, and more. They also held competitions on various skills useful in business. One of them was computer programming. So, with no knowledge of C++, I entered a nationwide competition to prove my knowledge of it.

This is the big part. If you’re going to take one tip from me on starting a career in programming, it’s this: I bought a book, and I read it. Over a decade and a half later, I still have the same advice to give. Buy a book, and read it.

I lugged around a gigantic C++ book for a month, reading it at every chance. I’d write down programs on notebook paper and go home to type it up on the family computer. After a month, I took my first test to make it through regionals. Passed with ease. I kept studying though. I took second place, and was one of three from my region to go on to states. A few weeks later, I took another test. I only took 10th place that time, so I didn’t get to go to nationals.

But, hey, in two months, I went from knowing no “real” programming languages to taking home a shiny glass trophy in a statewide competition against hundreds of people, many who knew C++ for years. Not bad!

College

In college, I went in without a major. I was interested in business, theater, and computer programming. So, no declaring a major. But I signed up for a variety of classes: photography, acting and theater, economics, accounting, and more. When I did declare a major, it was business administration. I wanted to be the CEO of my own gaming company.

I’m not the CEO of my own game development company. In part because I took a programming class. My first one ever! It was primarily focused on Java which was close to C++ in a few ways. I aced the course, of course, but I learned another programming language out of it. I still write Java to this day.

I loved the course. I loved learning programming languages. Creating something from nothing was a fantastic feeling. Also, I hated accounting. So, I traded in my business major for a computer science major. However, the two had no classes in common. So, as a result, I had to be perfect in my studies. If I even failed one class I’d have to take an additional year of school. No room for mistakes. I didn’t have the money for that. I didn’t even have nearly enough money to me in school for four years. Honestly, if I had the money, I would have stayed in school much longer. But, I knew I had to quickly enter the job market, get a job, and pay off my debt. So, I made sure I passed everything. Though, I’ll admit, I could have done better. I often found myself distracted in school. You know how college is, after all.

Professional Career

I graduated all the same. I even got a job quickly after school. I lived with my parents for a little over a year, until the small company that hired me had to downsize. The newest employees were let go, and I had to find another job. I then went to work for MapQuest, AOL, and, eventually, iHeartRadio, where I am now.

My advice, if you’re thinking of getting into programming, is to ignore every voice who tells you not to, even if those voices are your own doubts. They will mostly be your own doubts.

Buy a book on programming. Mobile programming is popular, and you can learn some intuitive languages. Pick up Swift and Objective-C for iOS development, and Java and Kotlin for Android. You’ll likely write mostly in Swift for iOS, but it’ll be useful to have Objective-C knowledge as well. For Android, you will likely do better to learn Java first. Kotlin is close to Java, and most Android development shops will still use it. If web development is more of  your interest, JavaScript is the way to go. Of course, these are all starting languages. You’ll likely learn many more over your years as a developer. Python, Haskell, Go, C++, C, Bash scripting, you’ll learn it all. But don’t fear it. You don’t have to learn everything at once. In fact, I know many developers who know only one programming language and make six figures as an engineer. There’s all the time in the world to learn, and you don’t have to pause your life along the way.

Buy a programming book. Crack it open. You’ll find it’s easy to follow, you’ll quickly learn programming. If you’re looking for certification, you can find a number of training programs that end in a microdegree or certification. Many development shops will take you without a degree though. Our philosophy, largely, is that, if you can code, you can code for us. So, apply for a job, find your way.

It all starts with that first step, and I promise, while each step will bring you higher, they are just steps, equal in difficulty the lot of them. You can rest on your way, you can sprint, you can take them at a leisurely pace. A mountain seems insurmountable upon first look, but getting to the top is the same no matter what: just take a few steps. The hardest step is always the first one.