Making the switch - Part 3


This is a continuation of a blog post series to talk about my path from mechanical engineering to software engineering. If you have not already done so, check out out part one and part two. I do not believe there is a perfect execution of a plan. There is always something that stands in the way, does not work out, or flat out does not make sense anymore. The only thing that matters is that you take the leap and try. Reflecting on my career change I realized I could have done several things differently.

First, I would have attempted to get over my confidence issue by working harder at solving problems. There are several tools available to test your development skills. While I know this is not a perfect assessment of whether or not you will be a successful software engineer. For someone with little to no experience, you feel the mental shift that occurs when solving the increasingly difficult problems one by one. Another way I could have increased confidence is to find someone in the industry that is interested in being a mentor. Having someone who lives this world to talk to is could have been a huge benefit to my overall confidence in the transition. They would have been able to advise on places that are looking to fill entry-level positions. Or assisting in code reviewing, pair-programming practice, book suggestions. The list goes on and on. Finding that mentor and having them challenge me would have probably pushed me into the industry faster than I did on my own.

Second, apply early and apply often. For job postings that are remotely close to your skill set and interest, apply. I didn't do this. I was too scared of the rejection. But what is the worst that will happen when I applied? I either get no answer or an answer of "no". Was that any different than when I had the confidence to apply for positions? HECK NO! Is rejection such a big deal? I have learned that rejection for a position is not that bad it can be a great motivator to keep pushing the boundaries. To continue with incremental learning and success. After all, I would have never reached my goal if I was not determined to try. The counter-argument is that the consistent rejection could have demotivated me from continuing. However, with each rejection, there is an opportunity for some learning. This would be the time to reach back out to the HR/recruiter contact to understand what made the other candidates stand out over you. I can understand this is a difficult question to ask. Plus, how do you know you are getting honest feedback? You don't and you never will. But, you will know that you tried your best. There were flaws and you lost to the competition. That is okay, pick yourself back up and try it again. At times is a volume game, eventually, the stars will align and that first gig will be yours.

Lastly, I would explore different education options. If the career has taught me anything, there is no one path to becoming a software engineer. Attending a university may have been a little excessive at the time. Given the financial commitment to maintaining continued courses. There was a potential this career path was not for me. From an investment perspective, I could have easily attended one of the online development code camps for a fraction of the cost. This approach would have done two things; build confidence in my skill set and allow me to test the career path. If I did end up enjoying the career path I could have always gone back to obtain a master's degree.

To this day, I think this transition has been the best career decision I have made. Manufacturing has taught me quite a bit that I was able to transfer into my subsequent software engineering roles. From my experience in manufacturing, there is no equivalent to shipping well-built software other than seeing and hearing the joy in the customer when demonstrating the implementation.