If you're thinking software just isn't for you
Updated: Jun 14, 2021
Let me stop you right there. Is this your first job since you graduated? Maybe second?
If you're unhappy and it feels like this actually isn't a good fit. You aren't having as much fun as you thought you would. No one on your team is like you: they care about different things, find different things funny, do different things in their free time. So maybe you picked the wrong career. But you got a whole degree, or did a whole coding bootcamp, or put in the time to teach yourself to code, so why is it so different from what you imagined?
Let me tell you something.Your experience depends on a whole lot of factors other than whether or not software is right for you. It's statistically much more likely that you found yourself with a shitty job, not a shitty career.
Here are some things that might make your job shitty that have nothing to do with software not being right for you:
Your manager probably sucks
Sorry, most software engineering managers do suck because they were good engineers that were forced to be people managers even though they didn't want to due to the lack of willing and available people managers. Did you just get an unexpectedly bad review from your manager? You should never be surprised in a performance review! Not sure if you have a bad manager or not? I wrote a post about it to help you find out.
Your team culture might suck
Can't find a moment to speak up in meetings? Feeling privately offended by jokes that everyone else laughs to? Feeling uncomfortable disagreeing with people? These are all red flags culture-wise. You may have found yourself on a bro team.
The work you have to do sucks
If you've been doing nothing but fix bugs since you arrived, let me tell you right now that this is literally soul-crushing work and it's not that you "don't like engineering". Fixing bugs is not engineering. Other things that are soul-crushing: waiting anything more than 10 minutes after making a code change to be able to test your code; not being able to check in your code because the flaky UI tests take 1 hour to run and you have to re-run them every time one of them fails for no good reason; maybe you're working on infrastructure and your real (undiscovered) love is consumer software, or the other way around!
NONE of these mean that software isn't for you. They do however mean that your manager, team, or company isn't for you. Before you decide to switch career paths altogether, it couldn't hurt to try a different team at your current company or to switch companies altogether. It takes less time than getting a new degree!
My first job out of college was with the Visual Studio team at Microsoft. The people on my team were nice, but they were almost all middle-aged white dudes. They got me fixing some bugs. It was really really hard because I didn't know how the code was supposed to work. There were almost no tests at all, so I would get a bug ticket, reproduce the bug, then look at the call stack and try changing some things, then show my work to someone else and they would tell me, no, that part is working as expected. Find another place in the call stack to change something.
After almost A YEAR of this, I was still probably changing 1 line of code every two weeks, feeling really lethargic and unmotivated, but getting encouraging signals from my manager in our weekly 1-1s. Then came the annual performance review and he told me I wasn't meeting expectations. This threw me into a downward spiral/existential crisis and I became clinically depressed. That was in August and by December, when I went home for Christmas, the night before I was due to go back, I was crying and telling my mom I didn't want to go.
I told my roommate at the time that I was thinking of switching careers and he suggested I just try another team at Microsoft because it would be really easy to switch. I looked through internal job postings and was drawn in by one that sounded completely different from the rest.
Here's what most of them sounded like: "Do you want to work on a product that is used by BILLIONS of people????!"
Here's what this one sounded like: "On our team, everyone has a voice"
The post was about the culture, not the product. I reached out immediately because I wanted to talk to the person who composed this beautiful job description. We met the next week and I was 110% ready to apply.
When I joined, that's when I really started feeling like software could be right for me. The work still sucked (fixing bugs), but suddenly I was on a team with a handful of women and they were LIKE ME! They didn't code in their free time, they did artistic things. They said things that I found funny. And they were more senior than me. Suddenly I could imagine myself being successful.
I decided to leave Microsoft less than a year later because, although I loved my immediate team, I didn't want to fix bugs for 10 years before being awarded my first satisfying project and that was how it looked like it would go at Microsoft (very political). I went to Google and landed on an awesome team WITH AWESOME WORK!
In my first week, they asked me to build a new feature and I'm sure all the blood drained from my face as I panicked and thought about telling them I've never built anything in my life. After I built that feature, they gave me a bigger feature to build, and that's when I began to love engineering. In my third job. That was about 4 years ago and I'm still loving engineering more every year.
Every job, every company, is going to feel wildly different from the other. If this is your first or second job and you're still not loving it, that doesn't mean software is not right for you! Go find a team that fits you better. It exists!