This question keeps coming up in interviews, talking to family, and discussions with coworkers and other students. Often some variation of, “Why’d you decide to study CS / become a software engineer.” I’ve told the story so many times that I thought it would be worth writing down somewhere.
Growing up, my ambitions were very much outside of the world of software engineering. I enjoyed exploring my backyard and the ranch behind our house and especially liked finding cool-looking rocks. I remember going to the Nature Exchange at the Dallas Zoo to take the quartz and calcite I found in the woods and trade them for items like geodes and agate. As a kid, I thought this was the coolest thing ever and wanted to do rock collecting professionally once I got older. When I asked my school teachers what job that would be, they said the official field was named ‘geology’. So whenever adults asked me what I wanted to be when I grew up, I told them I wanted to be a geologist because it sounded fancy and official.
However, I eventually went to the library to research more about geologists and was disheartened to see that most geologists did things like surveying land to find oil, not just finding and displaying cool rocks and minerals like I imagined. Dejected, I set out to find a new future career for myself, and for the next few years, would often flounder when asked what I wanted to do when I grew up.
The first time I had heard of the term ‘Software Engineer’ was when I asked my dad what I should study in college. I remember he immediately pulled up a list of the top-paying careers directly out of college. Number one was neurosurgeon (or something similar), and as someone who had recently dissected a frog for middle school science class (and had a bad time doing it), I did not think that I could stomach cutting another animal open, let alone a person. However, the second item on the list was ‘software engineer’, and at an average salary of nearly six figures, it piqued my interest. As a big know-it-all at school, I had already readily adopted the role of a nerd and was interested in any engineering or technology. However, I still had no idea what a software engineer did, and would not find out for another few years.
What does a software engineer do, exactly?
Around the same time that the term ‘software engineer’ entered into my vocabulary, I had a formative week-long summer trip to my cousin’s house. It was a glorious week of playing video games, eating junk food, and little else. However, what astonished me the most was that my cousin found a way to play Pokémon games on his tablet - rather than the Gameboy it was meant to be played on. As an avid Pokémon fan at the time, I thought it was crazy that he could play so many different Pokémon titles on one device, with no cartridges, using something called an emulator. At the time, I had no such electronic device (other than a flip phone to call mom after tennis practice), but once I went home, I became determined to save up the money to buy one of these devices to play Pokémon on.
I started using the family computer to research the specific Android tablet that my cousins had - a device called the Motorola Xoom. I found it was a few hundred dollars, which was a lot to me at the time, but also discovered that there were other options at similar or cheaper price points. Before I committed to buying any device, I started to research the pros and cons of different devices. Looking through websites like CNET or The Verge was pretty boring as a middle schooler, but I soon found that people posted reviews and unboxing on YouTube, a website I had previously only used to watch origami tutorials and online comedians like NigaHiga.
The first video I watched was a Motorola Xoom video by a channel called TechnoBuffalo. However, the suggested videos algorithm soon sucked me in and I found myself watching hours of TechnoBuffalo videos on the craziest tech products I never knew existed. From there, I eventually found even more tech channels like duncan3303 (Austin Evans), MKBHD, Techfast Lunch & Dinner (Johnathan Morrison), UrAvgConsumer, ThatSnazzyIphoneGuy, UnboxTherapy, and more. The unboxing videos were especially cool for me because it felt like I got to share in the experience of opening all of the shiny, new pieces of technology that I could not afford on my own.
Watching all of these videos planted a new idea in my head, what if I could make a career unboxing and reviewing tech products, like all of the YouTube channels I watched? I thought it was amazing that they always got to try the newest devices (sometimes for free!). However, the more I considered it, the more I was sure that I did not just want to review and discuss the newest pieces of technology I wanted to make it. That left me with one last naïvely simple question, should I choose to work on hardware or software? I pondered this question for a while but eventually decided I wanted to work with software because it seemed like something I could start learning alone without needing any special equipment.
With this, I felt I was set for the rest of my life. I knew what career I was going to pursue (software engineering), what I was going to study in university (software engineering/computer science ?? I wasn’t exactly sure what the distinction was between the two at this point), and where I was going to go to college (a quick Google search showed that MIT was the top school for software engineers).
All of these decisions happened before I had finished middle school. I felt I had everything figured out and started telling all my friends and family that I would become a software engineer. This influenced what high school I attended, as there was a STEM-centered public high school in a neighboring district that I could enroll in instead of the local high school all my siblings went to. Thinking that it would aid my future ambitions as a software engineer, I convinced my parents to let me tour, and eventually enroll.
When I got to my new school, I was finally surrounded by people who were just as, if not nerdier than I was. However, what troubled me was, freshmen were telling me they had already started coding years ago. This gave me a reason to panic because how could I claim to be a future software engineer if I had not even learned how to code? What if I hated it?
The tipping point came when my high school crush told me that she had started messing around with XCode and Dreamweaver in her spare time, and I wanted to do the same to impress her. I soon opened up Dreamweaver (a software made for building websites) and created my first web page, something small with a couple of basic header tags. The feeling of creating a web page that showed up on my actual web browser was so insane to me because until then websites had seemed like a magical black box that only people much smarter than I understood. However, I soon realized I had no idea what I was doing and looked to learn website building in a bit more structured way.
A bit later, during the summer after my freshman year, one of the tech news websites I followed at the time announced a massive deal on the e-learning website Udemy, offering 10+ web development-related classes for something like $10. I went to my parents with a $10 bill and begged them to let me use their credit card to purchase the courses. Looking back, it was surprisingly hard to convince them to let me buy it, considering many parents I know nowadays have to bribe their kids to do any sort of self-paced learning over summer break. However, once they relented, I dove right into the most promising course on the list, one called Build Websites from Scratch with HTML & CSS by an instructor named Brad Hussey. I tore through the course, spending multiple hours each day working through the lessons to learn the basics of web developement. The websites I made throughout the course looked so official and I wasted no time showing them off to all my family member (and my crush) who all feigned interest in my extremely mediocre first attempts.
After I finished this project successfully in just a few weeks, I was ecstatic to see that a website I created was out in the wild and used by hundreds of people (and still in use today!) Thus began my long and illustrious web development career, entering in numerous high school web design competitions, and designing websites for myself, friends, and school projects to test out the cool new concepts I had found on my daily browse of Awwwards.com. When it came time to apply to colleges, I was still deadset on becoming a software engineer and applied only to computer science programs (although I got rejected from MIT).
When reflecting on my long and winding journey to software engineering, I am impressed at how many different people were formative to discovering the field I am now so passionate about. From my friends to my family and online course instructors and stack overflow users, so many people helped me get to where I am today, and I hope to be that helping hand to others as they embark on their journey to software engineering.