The short answer is I hit a roadblock after college. I finished my degree in music education, but I knew (a little too late) that I didn’t want to go into teaching. I went into music education, because I loved performing, working with kids and I loved my music classes. But during student teaching, I could tell that being a classroom teacher was definitely not what I wanted for my career. I should first say that teachers don’t get nearly enough credit for what they do; even as someone who only experienced a tiny glimpse of life as a teacher, I know it’s one of the hardest jobs. My decision to pursue a new career was scary, but the prospect of doing a job I didn’t love for the rest of life was more frightening, so I went out into the unknown…
I took a series of personality and aptitude tests and met with a career counselor. And those tests pointed me in the direction of software developer. I had never considered software development as a career before and really didn’t understand what the job was like in a practical sense. All I knew about software development was the old stereotype that I’d spend my day alone sitting in front of a computer screen. Part of that is true, I do spend a lot of time in front of a computer screen. But I was completely wrong about being alone. Good software development requires collaboration. The best solutions are found when working with other people. In my work now, I love it when I get to collaborate. I get to learn from someone, hear new ideas and understand another person’s perspective. I’m always a little surprised when I read a set of specifications that seem completely black and white and the person I’m working with interprets them differently. Then we can go back to the client and better clarify how something should work. I remember when I met with my career counselor, she told me I may not be happy in software development, because you mostly work alone. So, I was a little nervous to pursue it, but luckily I’ve found that is not the case at all. Yes, I do probably still spend a good half of my day working by myself. But it’s definitely not a lonely career. Collaboration is necessary to being a good software developer.
I started taking programming classes at a community college and I quickly found that I loved programming. It reminded me of the way I felt studying music theory. I loved studying music theory, because I was learning about how music is structured and how it works from the inside. Now, I was learning how programs - programs that I interacted with as a user - worked from the inside. It was fun and even as it got harder, it was still interesting. I actually enjoyed my assignments. At this point, I was convinced; being a software developer was the right career for me.
As I’ve continued to learn software development and do it at a professional level, I’ve found two other important things about myself that are key elements in working as a software developer.
- I love to learn. As a software developer, I need to keep learning constantly to stay up to date. When I look back at other jobs I’ve had, my job satisfaction has always been directly correlated with how much I’m learning. If I’m not learning anything, my satisfaction starts to go down. If I am learning, I’m happy. As a software developer, there’s always something new to learn or a new problem to figure out.
- I love bugs. I feel a little guilty admitting it, but when I find a new bug on a system I’m working on, it’s a boost of adrenaline. Of course, bugs can be a huge pain. And I have experienced that too. But there’s still something so exciting about something unexpected happening that you can’t explain and then finding the exact set of circumstances that can reproduce the problem. And then, you learn from it. And you code better. When I started programming, I didn’t understand why code was written with bugs. Why can’t everyone write their code perfectly? Of course, in a real running application, there are so many dependencies. One change to one part can make something unexpected happen. Learning that bugs will happen and how to address them under pressure is one of the most valuable skills I’ve learned as a developer. It’s taught be to be humble and open minded and recognize the value of having a supportive team.
So, why do I want to learn software development? I want a job where I’ll be learning, working with a team and solving problems.