Currently, I’m at the tail-end of completing my computer science degree. Upon graduation I will be working as a software engineer at a trading company. I’ve wanted to reflect on what drove my interest in software development and how I got here.
After completing my first degree in business, I worked for four years in finance in NYC. I got to a point where my job felt repetitive and monotone – I wanted to make a change. Thinking back to my time in college, I fondly remembered my experience in the few computer science classes I took. With that memory in mind, I began to research software development as a career path.
Various aspects of a career in software development stood out to me in contrast to my role in finance. Firstly, software development takes place everywhere. You can find jobs as a developer throughout the country and throughout the world. Not only that – you have a huge flexibility in terms of the type of industry you’re working in. My role in finance was the exact opposite. You could essentially only find jobs geographically at a few key financial centers working at major financial firms.
Another aspect that stood out to me is the huge diversity in the types of roles across software development teams. Given the massive number of companies and teams in the industry – you could prioritize any of pay / work-life balance / exciting projects / culture and find roles that closely align with your priorities. In my prior job, these aspects were all fairly uniform across the industry.
Among other aspects besides being generally interested in the work, these were the key ones that stood out to me. I jumped into a post-Bachelors program in Computer Science at Oregon State University to start working towards making a career transition.
I’m now close to starting my first job in the field. With time, my interest in software development has only grown. The skills and processes of the field are particularly attractive to me.
Firstly, I thoroughly enjoy the process of building things. Building things in this field is easy. You don’t need to buy expensive materials. You don’t need to perform grueling manual labor. Instead, you simply open up an editor and start typing (but hopefully you did some planning and design in advance). The ease of this building process also makes it simple to iterate and improve quickly. And generally (there are some big exceptions here), the cost of failure is much lower than other fields. If you build a bridge poorly and it collapses – you’ll never work in your field again. If you make a syntax error in your code, it won’t compile and you can quickly correct the mistake. This lower cost of failure (in most cases) cultivates more experimentation and gives you some peace of mind.
Additionally, problem-solving is an essential and pervasive skill in software development. I find solving new, unique problems highly engaging. Whether it’s designing a complicated system, tracking down an elusive bug, or implementing a new feature – there’s no shortage of interesting problems to solve. It’s very satisfying working through a complicated problem and finding a great solution.
I had one internship which validated my impressions of software development, but I am excited to soon be jumping in full time. I know like any career it won’t all be sunshine and roses, but many of the core aspects of the field make it feel like a perfect fit for me.