Self-Taught Software Engineer, Husband, Father
Are you ready to start learning?
Learning with Treehouse for only 30 minutes a day can teach you the skills needed to land the job that you've been dreaming about.Start A Free Trial
Your stories inspire us! Please find below a story from Michael, a Front End Web Development Techdegree graduate, originally posted on Medium and reposted here with permission. His ambition and tenacity remind us why we love helping students learn to code and land their dream tech jobs.
A few years before I became a Software Engineer, I had a federal government job in an office in Chicago, IL. I landed the job right after college and was extremely excited that all my hard work had paid off. Two years into my position, my wife and I had to move to Louisville, KY last minute for her job. My job couldn’t transfer me to another office, so I decided that my wife was more important to me and quit. However, before quitting, I decided I wanted to work with my hands for some time, thinking it would benefit me in the long run. I then chose to pick up the electrical trade.
While I was working as an electrician, I often worked long hours and constantly felt tired. One day, I fell asleep at the wheel on my way home from work, and my car flipped into the woods after hitting a tree stump that acted as a ramp, causing the car to overturn. Fortunately, I survived with just a back injury, but I couldn’t continue as an electrician. My wife felt guilty about my injury, because I had quit my previous job for her. But I reassured her that I’d make the same choices again, because I loved her.
After the car accident I decided to apply to an office job. So in December of 2019 I landed a job at a call center. The people were awesome and I saw a lot of potential for career growth. A few months after being hired, I was promoted to lead a team of 14 people and handle all the technical aspects in our department. During my time as a manager, I was temporarily laid off for a month due to COVID. During that layoff period, like many others, I began considering returning to school to ensure I had a more secure job.
I started exploring tech-related careers since I was already heavily involved in tech-related tasks at work. I’ve always had an interest in tech, and during college, I even contemplated switching my major to Computer Science. However, by the time I seriously considered it, I was too far into my chosen degree.
Luckily, my boss at the call center was really supportive when it came to helping me advance in my career. He asked me what I wanted to do, and I told him I wanted to be a Software Engineer. He said I should talk to our company’s Software Engineers for advice. I did just that, and it turned out to be a great idea. I spent about a year learning from them while still managing my team.
I eventually decided to join a coding bootcamp. Since I couldn’t attend a live one, I picked a self-paced program. I went with Team Treehouse because I saw a YouTube video by Chris Sean where he talked about becoming a Software Engineer.
In the video, he mentioned using McDonald’s Wi-Fi to attend the Team Treehouse bootcamp while he was homeless and living in his car. It was really inspiring, and I thought, 'If he can do it, so can I.'
After the bootcamp, I checked out things like React.js, Backend Development, computer science theory, and worked on LeetCode problems. During this time, I started feeling like I wasn’t ready to get a job as a Software Engineer. I was worried that employers might not take me seriously.
Light At The End Of The Tunnel
One day, while chatting online with an online gaming friend, I discovered that he worked as a Software Engineer at Comcast. I hadn’t asked him about his job before, because I figured he wanted to keep his private life to himself. When I mentioned that I was self-taught Software Engineer, he tested my knowledge and was impressed with what I had learned on my own. He mentioned that I was ready to land a junior role and that he worked with several Software Engineers who were also self-taught. I was so glad to hear this from him, so I decided to dive headfirst into coding every day for several months.
During this period, I also applied to 400 jobs, met with several resume specialists, and spent a lot of time networking on LinkedIn. I had a strong desire to become a Software Engineer and even considered returning to college during this time. However, I couldn’t afford the college tuition while supporting my family, so I continued to learn as much as I could online.
Six Months Later
At this point, I began to talk to tech recruiters more, because I had amassed a large enough network on LinkedIn and was very active on the platform. I had a few interviews lined up, and I attended all of them. Some asked me to complete LeetCode challenges, while others simply asked me syntax questions. I did not receive responses from many of the companies until a month after I had interviewed. During this time this is what went through my head:
- Am I a fraud?
- Did I answer all their questions perfectly?
- Do I deserve to be a Software Engineer?
- Am I going to fail my wife and son?
- Is it okay to be afraid?
- Is it okay to want to scream?
- Is it okay to hate this moment in my life?
- Will I be able to provide for my family as a man should?
- What did the employers think of me?
- Should I have just gone back to school to get a CS degree?
- Am I less prepared than a CS grad?
- Should I keep practicing LeetCode and working on projects?
- Should I give up on my dream?
One day near the end of the month prior to hearing from any company, I looked in the mirror and said to myself:
If you fail to land any of the jobs you interviewed for, it is not the end of the world. You will get up and try again. Others have made it in your shoes, and so will you. You must persevere and show others that it can be done. You must do this not just for yourself and your family, but for those who will come after you chasing the same goal.
After about a week of having my epiphany moment, I heard back from five companies. Three of them required me to move to a different state, but I could not afford it. The last two were remote, and one of them was USAA (my current job). I could not believe that five companies actually wanted to hire me as a self-taught Software Engineer. It was a dream come true for me. I had gone through a lot physically and mentally from when I left my job in Chicago. But in the end it was all worth it, despite all the obstacles.
Fast forward to today; it has now been almost two years at USAA, and I have learned a lot. I enjoy going to work every day and taking on the day’s challenges. I primarily work on Frontend Development, but a few months ago, I signed up for a Backend Development Bootcamp with Promineo Tech. The CEO of the company was a former Software Engineer at USAA, so I decided to enroll. The program was awesome and reignited my interest in Computer Science.
At this time, I’m studying Data Structures and Algorithms to master LeetCode. I find LeetCode to be a great tool for honing critical thinking skills. I encourage everyone to occasionally visit LeetCode once a week and solve one problem to keep their critical thinking skills sharp.
I waited for almost two years to share my story with anyone, I wanted to allow myself to grow as a Software Engineer and gain insights into the job itself. I believed that when I was ready, I would know, and I could then share my story.
I now leave you with these words of wisdom: 'You are not alone on your self-taught journey; many have come before you and become Software Engineers. If they can do it, so can you!'
Here Are Some Tips:
- Network as much as you can, either online or in person. That’s how you’re most likely to land your first job.
- Make your LinkedIn profile look good; you are your best advocate.
- Be patient with yourself; learning to be a Software Engineer is not an easy task. That’s why only 3-4% of the world’s population are Software Engineers.
- Find a support group, either online or in the real world.
- Feel free to go outside and breathe some fresh air. You’d be surprised how much it helps when learning to code.
- Set milestones for yourself and don’t feel bad if you don’t meet them. Adjust them and move on, life happens.
- Not everyone learns the same way, so if something works for someone else, it’s okay if it does not work for you.
- Quality is better than quantity when making projects for your portfolio.
- Upload your code to GitHub, and don’t just leave it on your computer.
- Never stop learning and asking questions.
If you’ve made it this far, I want to say thank you! Hopefully, my story will help you in some way.
Learn to code with Treehouse
Choose a pathway into tech today! Treehouse courses teach you how to create apps and websites, build a dynamic portfolio, and get a tech job. With Treehouse courses or the Treehouse Techdegree program, you’ll learn fundamental skills to help you break into the tech industry.