Midlife Crisis: a period of emotional turmoil in middle age characterized especially by a strong desire for change. Except for the part about “middle age,” I feel like I’ve been going through several of those a month ever since middle school. “Emotional turmoil” is basically my middle name (seriously, just check my birth certificate.) But even though I haven’t had a “real” midlife crisis (fingers-crossed I never do), I would say I’ve definitely had a couple mid-college-life crisis. I had my first one right before I switched my major from chemistry to computer science.

My second mid-college-life crisis I had was after my first internship when I realized that software engineering wasn’t for me. Let me explain: I still enjoyed programming, I still loved tech, I still wanted to be a computer science major. I even liked software engineering in short bursts (i.e. I loved my internship), but realized that as a long term career option, it wasn’t for me. This is an epiphany I’ve seen many of my CS peers go through as well. After an internship or two we become disillusioned with the software engineering career, and we all start wondering what jobs there are for a CS major who don’t want to program all the time.

Personally, I came to this conclusion for several reasons: I didn’t want to spend so much time staring at a computer (I know, I know – you’re wondering why I chose this major) and wanted more human interaction. But primarily, the reality of most software engineering jobs didn’t line up with what I had envisioned for my career in tech. I always viewed programming and any other skills I learned as a CS major, as tools to solve problems and provide services in the world. For me, being able to tackle those challenges and grapple with them was always numero uno. However, in many software engineering jobs (especially entry level jobs), I felt like someone else had already made decisions about the problem or service and I was there to create a tool to their specifications. Yes, the tool-creation was fun and interesting, but it wasn’t what I wanted to do all the time.

Hence, my mid-college-life crisis. As is typical in these situation, I started questioning all my life decisions—especially the one to major in CS—and quickly spiralled into a mini existential crisis. That all ended when I realized that, even though the tech world seems to strongly push CS majors towards software engineering, there are a lot of other career choices for someone who doesn’t want to do that.

First off I thought about being more selective in my work environment and more strongly considering the products/services being created by a company. I knew that really believing in what a company is doing and working with people you enjoy being surrounded by was going to make a huge difference in how much I enjoyed a job. But besides factors like that, there are actual, different jobs such as product/program manager and project manager, which are tech jobs where a technical background is a huge asset (if sometimes not a requirement). There was also the option to switch into the management track within the tech world. Often time people (read: snobby people) will look down on developers who move into management because apparently you took the “easy” way out, but don’t listen to those haters because managers are important and dealing with people is not “easy”.  Personally I ended up going with a software engineering job that had a consulting bent to it. I found that the consulting aspect gave me the element that I felt was missing in “plain, vanilla” software engineering. However, for the future if I ever want to branch off even more from the “ typical software engineering” path, I know that there are even more varied options, such as startups, freelance work, teaching, civic technology, tech policy, and even technical writing. The beauty of having a technical background in computer science is that instead of restricting your future career, it only opens more and more doors to different professions.

Happy Thursday :)

Add new comment

The views, opinions and positions expressed by the authors and those providing comments on these blogs are theirs alone, and do not necessarily reflect the views, opinions or positions of UT Computer Science, The University of Texas or any employee thereof.