As I enter my senior year of college studying computer science, I've had a lot of time to think about what kind of career I want. I've reflected a lot on my decision to become a software engineer. I've held various jobs doing web development for my school and completed internships with SimpleNexus, BlueHost, and Amazon. These have all provided me with great experience and only strengthened my desire to dedicate my career to software engineering. But it wasn't easy to decide to major in computer science. It was an even harder decision to stick with it. Today I'll write about the challenges I faced while trying to decide on my career.
I definitely didn't always want to be a software engineer! In high school, I had a wide variety of interests (and still do). At one point I was certain I wanted to study psychology, and a couple years later decided I wanted to study math. Math was the plan for probably a year or so, and that's when I discovered programming. My dad did a lot of Perl coding at his job. Out of pure curiosity, I decided to pick up one of his books on Perl and see what I could learn. After going through the book, I started learning Java through YouTube tutorials before following the Khan Academy courses on web development.
I was hooked! It was so cool to me that I could envision some cool functionality in my mind and translate it into working code. I had decided that this would be the career for me and enrolled in college to study computer science.
I signed up for a couple of intro CS classes at my university, excited to learn even more. This is when things got tough! One of the intro classes required us to program microcontrollers with C and Assembly, and it was a nightmare! I spent so many late nights in the computer lab feeling completely and utterly defeated. I had no idea why I was doing that to myself and seriously thought about trying to find some other major that wouldn't be so frustrating. It was baptism by fire, to say the least.
Despite my tough classes, I got good grades and stuck with the program. I'd say my decision to stick with software engineering has been largely influenced by the internships I've held. In the "real world", I didn't spend any time writing parsers in C++ or solving linear algebra problems like I had to do in my classes. My managers never asked me what a Turing machine was or if a graph had any strongly connected components. Of course, this theory has its applications, but I have so much more fun building useful things. I've seen this in my elective classes too. I'm done with all the theory-intense core requirements and now get to take classes that are more focused on creating interesting projects. That's what I love doing more than anything, and that's why I've decided to be a software engineer.
As one of my previous managers liked to say, "Computer Science is to coding as linguistics is to speaking English". By comparing my schoolwork to my internships and other jobs, I've seen how useful this comparison is. I like coding way more than complicated CS theory. Luckily there are plenty of jobs available where I'll get to do lots of the kind of coding I enjoy.
To me, there's nothing more exciting than discovering a problem that's solvable with software and then creating the software to solve the problem. For example, I wanted a super-easy way to coordinate meetings with people across the world, so I created ZoneTime. Right now, I'm studying Chinese. I've felt that a lot of the sites out there with Chinese resources are lacking key features that make it easy to search for and study Chinese characters. Therefore, I've taken up a side project to create my own site that gives me exactly what I want.
That's what's so special about being a software engineer. It's creativity, freedom, and power all wrapped in one. And you never stop learning. Tech changes every day, and I don't want to be stuck at a job where I stop learning. That won't ever be a problem in this field. There's always something new to learn, and that is so amazing. Who knows, maybe my curious brain will take me down some other path in the future. But for now, I've got a lot of code I need to write first.
Question: Why did you decide to be a software engineer? If you don't want to be a software engineer, what do you want to do instead?