I’m one class away from graduating with a computer science degree, and I don’t want to code for a living. It may be fair to ask, are you nuts? The huge salaries, the opportunity to make an impact on software used by millions, the respect you get from peers, the free office snacks. THE FREE OFFICE SNACKS! Are. You. Nuts.
Well, I may be (likely), but not for choosing something other than software engineering as my career path. It turns out that just because you got a CS degree, it doesn’t mean you HAVE to code. And before I go too far down this path, let me just clarify that this is not an attempt to bash software engineering at all. It’s an incredible career for so many reasons, even beyond those listed in the opener, but it’s not for me. Nope – instead, I’m going a different route. So, I’m guessing two questions are running through your head now:
- Why would you get CS degree and not pursue software engineering?
- What are you going to do instead?
So, you don’t want to code – why not?
We’ll get to that and more here shortly. I hope I can open your eyes to some opportunities available to those who love tech, but don’t necessarily want to eat 1’s and 0’s for breakfast, lunch, and dinner.
I think it’s worth mentioning that I really do enjoy programming. In fact, that’s why I decided to pursue my CS degree in the first place. I had a chance to develop some automation scripts at work and thought I was living in the Matrix. That led me to Harvard’s CS50 course, and I was hooked. I was going to become a software engineer and develop the latest and greatest websites, apps, and whatever else was needed to solve the world’s problems. But something changed about halfway through the program. I had just completed CS 290 (web development), and the glamour had worn off. I didn’t realize it in the moment, but after reflecting on the first half of my degree, I think I had been running on an adrenaline high that was fueling my pursuit of a new career as a programmer. It wasn’t that I didn’t still enjoy programming but doing so within the confines of someone else telling me what to do was getting old. I enjoyed my side projects, I enjoyed learning new technologies, and I liked reading about the latest tech, but I was beginning to doubt that software engineering was the career path I was meant to pursue after all.
After a minor moment of panic that I had sacrificed a lot of money, sleep, and energy for nothing, I started moving. I didn’t know where I was going, but I knew I needed to do something, and I wish I could tell you I had a well thought out plan that had goals and deliverables and milestones… I didn’t. Instead, I just started talking to people. I told them how I was feeling. Thankfully, I work at a tech company and had the ability to meet up with engineers who had been doing it a while. I started each conversation the same way, saying “Did I screw up?” It was vulnerable, sometimes pathetic, but through those conversations, I learned a lot about myself. It’s funny how others sometimes know you better than you know yourself, or at least can help describe you in ways that affirm what you had doubts about. I learned that some of my natural dispositions (outgoing, active, big-picture oriented, enjoying the gray over black and white) might be at odds with what I perceived a software engineering job would look like day to day. I had to find out if that was true or not, so I asked my manager and several of those engineers if I could shadow them for a while. It was the best decision I’ve ever made. I saw what their day to day looked like, which had always been a mystery to me. Sure, you can find 1,000 YouTube videos about what a day in the life of a software engineer at “insert impressive tech company name here” looks like, but was that reality? The answer turned out to be yes and no. Things I didn’t like after shadowing:
- The engineers didn’t have much say what they worked on. This might not be the case at all companies, but in our company that practices scrum, the engineering lead would assign a story to you, and it was your job to turn it around in 2 weeks.
- The engineers were disconnected from the larger picture. Occasionally they would get demos from the product team or marketing, but their job was to complete their story.
- A lot of time was spent reviewing other’s code and writing tests. This might be a huge plus for some, but it’s not for me. Seeing this in action helped me realize it, and further confirmed that programming for me is fun until it becomes something that is serious.
- Outside of the daily scrum meeting and code reviews, engineers spent their time with headphones on and fingers typing. You can make the role more collaborative if you want to, but I think it’s fair to say that software engineers typically spend more time in their own head rather than interacting with others.
Things I did like after shadowing:
- Solving problems with technology. I loved asking questions about how the work they were doing fit into the bigger picture. Why were they creating that specific feature in the mobile app? How did they decide it was the right idea to pursue instead of x, y, or z?
- The team structure. While the work effort was mostly individual, the whole team was working towards a common goal which seemed motivating to me.
- The deliverable. I was able to observe a sprint demo where each of the engineers showed off the result of their 2 weeks’ worth of sprint work. It was code come to life in a product, and oh how sweet it was.
I spent time pouring over these conclusions and asking my peers what they thought. To them, it was like a big flashing sign, like one of those that you see on top of every casino in Vegas, but instead of saying come gamble, the sign said “PRODUCT MANAGEMENT”. I spent time familiarizing myself with product management roles, learning more about what they’re asked to do and what makes a good one, and I walked away hooked. My takeaways from this for anyone else in a similar situation are twofold:
- If you have doubts, explore them, don’t run from them. Through your exploration, you’ll either confirm software engineering is for you and feel motivated to continue working towards that goal, or you’ll realize it’s not and you’ll gain a freedom that allows you to pursue another path without guilt.
- Lean on friends and peers to help you out. It requires being vulnerable, but it’s worth it. What was so obvious to others was difficult for me to see.
So, you don’t want to code – how about a career in product?
Product management, like software engineering, has the potential to be an extremely rewarding career. All of those benefits I listed in the opening sentence of this post – yeah, they apply to product management too. Wherever you find software engineers creating a product, you’re bound to find a product manager who owns the vision for the product. Product management might be right for you if:
- You love to communicate and collaborate! It requires someone who likes to interact with people, because you’ll be doing a lot of it. From demos and requests for feedback with clients, to casting a vision with marketing and sales, to answering detailed technical questions from engineers, it’s safe to assume that product managers are going to be spending a lot of their day talking to someone.
- You’re comfortable with gray areas. Is there a best way to layout this page of your mobile app? Maybe, but “the best way” is subjective for each user. Product managers must use all the available information they have to make the most educated decision possible every step of the way. At the end of the day, the success and failure of the product comes back to the product manager.
- You enjoy data. I touched on it above, but product managers must make the best decisions possible with the information available to them. Often times, that’s data. Don’t guess what the user likes and doesn’t like – know! Set up diagnostics in your applications that track where a user spends their time and for how long, and then draw conclusions, backed up by conversations with clients, that lead to an improved product.
- You’re naturally inclined to lead. It’s your job to get buy in from the engineering team so they feel motivated to create something great. It’s your job to show the client the value of the product that the development team created. It’s your job to inspire marketing and sales to pitch the product to the client in a way that makes them want it. All of this can be stressful, but it’s also very rewarding to have that level of ownership over what you do.
- You’re organized. There are a million things flying at you as a product manager. You must know how to compartmentalize all of it and continue working on the highest value items, not just the tasks that are set in front of you at that moment. If you have a knack for this, product management could be a great fit.
There are many other characteristics that make up a great product manager, but those listed above are what I’ve observed from individuals I’ve worked with. Of course, everyone has their own style and that’s great too! It truly is rewarding to see or hear from a client who says thank you after you and your team were able to solve their problem with technology.
Hopefully I’ve convinced you that just because you completed a degree in computer science doesn’t mean you have to step into a software engineering role. Product management offers many of the same perks as software engineering roles do, at many of the same companies, working with the same technology. If you’re curious about product management, there are SO MANY resources out there that will help you learn more about it. Reach out if you have questions and I’d love to learn with you!
Hi, this is a comment.
To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
Commenter avatars come from Gravatar.