Not long ago, I had a phone call with my brother. The reason for the call was that he wanted my opinion on him changing his major. The call was not about the act of changing majors, but specifically about him changing into software engineering. He wanted to know if this field would provide him with the opportunities he was looking for. I told him about my experience of going to school, doing freelance, and working a full-time job.
Our conversation got me thinking about how I started my coding journey and would have loved to have some sort of insight into what I was getting myself into. Throughout most of my journey, I was figuring things out for myself. I didn't have a mentor while I was in school, nor did I make efforts to join any coding clubs that were offered. Heck for a while I wasn't even serious about getting a developer job, as I was perfectly content being a gymnastics coach. I didn't have any path for myself.
That all changed for me after I met with another developer for coffee. He was doing some work for my physical therapist and thought it would be good for us to meet. I showed him a few projects I had done in school, which were random things done in Java and C++. He gave me insight into what working as a developer was like and the kinds of things that could be built. He then presented me with two areas to focus on learning. The first was learning how to build web apps with C# and .NET and the second was learning AWS. That guidance changed how I viewed software development and lead me to get my first junior position less than a year later.
What I wish I had known
What I didn't know was how tedious and rigorous some interviews could be, let alone the process of getting an interview in the first place. I grossly underestimated just how much goes into finding a job in tech. My wife recently went through interviews for nursing and made me realize just how much harder technical interviews are. She would have two, maybe three rounds of interviews before an offer. In contrast, developers have three or four technical interviews, and that's without take-home assignments and other non-tech interviews. Getting a job in tech is hard and I had no idea how hard it was until I started applying.
I also had no idea how brutal some workdays could be. Coupled with the fact that this field changes so rapidly and you need to be learning and developing your skills, you're left feeling both physically and mentally drained. There's a problem that you haven't solved yet, your seemingly simple ticket turns into a week's worth of work because it's more complicated than anybody realized, and your nice weekend was interrupted by a production outage. Things happen and can take everything out of you.
Bad days can leave you feeling exhausted and not good enough. Burnout is a real thing that I've been through a few times. You will have days where you feel defeated but also days where you feel like you're on cloud nine. Those good days are more than simply good days and they far outpace the bad ones.
You will be presented with opportunities unlike any other. You have the chance to create or redefine entire industries. You're not just writing code, you're solving problems. This gives you the potential to impact thousands, if not millions, of lives. On top of that, this field gives you the ability to live life how you see fit. Do you want to work a traditional 9-5? You absolutely can. Do you want to spend every second of your existence working on a project that'll change the world? Have at it. How about traveling the world while working on freelance projects? Be my guest.
I love the challenges and opportunities this field gives me. I love what I do because I'm helping others. I'm having a direct and positive impact on those around me. I'm also building a life for myself that I never thought possible for me.
The truth about software development is that it's unlike any other field in existence. You can create something out of nothing. All you need is a computer and a desire to learn. You may not like everything you do and it may take some time to find what you're interested in. Be patient with yourself. It's okay that you don't know everything. Be curious and ask questions. Don't be afraid to take risks and step outside your comfort zone. This is a marathon, not a sprint.
You got this.