Can you become a Software Engineer through an apprenticeship? Yes!
Today's interview is with Vincent, an American who became a Software Engineer after self-learning and completing an apprenticeship. He is going to go over his route into tech without a CS degree and how you can learn to code and get hired too!
Hey, so can you introduce yourself?
I’m currently a Junior Software Engineer at a major UK travel provider. I work primarily in C#/.NET Core, mostly creating APIs for our backend architecture. I joined the company as an apprentice after about a year and a half of self-studying, but felt an apprenticeship was the perfect opportunity to attain that ever-elusive first job in tech.
I really like where I work at the moment, and there’s been a huge push to modernize legacy systems with newer versions of .NET Core and implement new APIs with event-driven architecture via Kafka. It’s been a great learning experience for me so far.
I currently live in Leeds, UK, but I grew up in Buffalo, NY, USA. I’ve lived in the UK since 2018 and have loved my time here so far. I owe my career change to the UK and their adoption of apprenticeships as a new way for people to retrain into a different field, which is something the US could really benefit from given the cost of university in America.
Why did you learn to code?
Lots of factors ultimately lead me to this path. I realized whilst working as an office administrator that I craved something more challenging, where I’d be solving problems day-in and day-out. I am also not the type of person who thrives in a traditional office environment, so the opportunity for remote work was a massive benefit. I also love to travel, so the potential of working from anywhere in the world really excited me.
Money was certainly an attractive aspect of the tech industry, but what solidified my decision to learn to code was the innovation and inherent need to continually hone your craft. The nature of software development means that it often feels like solving puzzles, and the learning you gain from that is so rewarding. It lacks the tedium and repetition of some other types of jobs, and the fluidity of technology promises to keep this the case in the future.
How did you learn coding?
Starting to code without a formal background in the field can seem overwhelming. Experimenting with different languages and figuring out what suited me best was really important. At first, I pursued Python, but quickly realized that maybe it wasn’t for me after ending up mired in syntax errors. I’d be lying if I said I never had moments where I gave up programming altogether, but I always picked it back up.
After my challenges with Python, I tried HTML and CSS via FreeCodeCamp. While this was a bit more manageable, I found that the guided approach was restricting my ability to solve problems for myself when it came to implementing a design on my own.
Frustrated, I went to Google once more and came across The Odin Project. Everything I read about it was really positive, in particular that it really left it in your hands to figure things out. I got stuck in, setting up a dual boot on my laptop with Ubuntu, and I was off.
I looked around for some more help on JS, and went through most of Andrei Neagoie’s Zero To Mastery Complete Web Developer course. This really made a lot of things click for me, and it was here where I really came to a deeper understanding of programming.
After getting through the Fundamentals course, I moved onto Ruby, which was a new challenge in itself. By this time, “thinking like a programmer” was starting to come more naturally to me so I didn’t struggle quite so hard in this part of the course. That’s not to say it was easy, but I was starting to understand how to break a problem down and solve it step by step.
If I had to do it all again, I’d probably have started with a video tutorial like Zero To Mastery. I’m definitely a visual learner, so seeing something done and then being given a small task at the end after following along was a much better approach than reading text. I would strongly encourage anyone going down this path to take a test online to figure out their learning style as it will save you a lot of frustration and self-doubt!
How has your life changed since learning to code?
My life has improved dramatically since learning to code and getting my first job. I work 100% remotely which provides me with a lot of time to spend with my wife and my dog and doing things I love. My salary has increased by over 40% compared to my office administrator job, which has provided my wife and I with a lot more financial freedom and security.
I’ve done a number of different jobs prior to learning to code: office admin, warehouse work and ESL teacher to name a few. I no longer dread another boring day at work as my day is usually filled with challenging and engaging tasks. During quieter periods, we’re encouraged to do self-learning during work hours and learn new things that interest us as well. This job is certainly the first one I’ve ever had where I’ve been excited to go to, and be at.
On top of all that, I’ve made a lot of really great friends who I often meet up with and will continue to do so if we ever stop working for the same company.
What does a typical day as a Software Developer look like for you?
I usually start work around 07:30AM (definitely a morning person) and see what’s on the board that needs doing, or if I’m mid-task I will continue on with that until about 09:00AM to prepare for our daily stand-up at 09:15. I then work from 09:30 until about 12:00, either working on my task or helping colleagues with anything that might come up.
After lunch I’ll work until 4:30PM and I’m done for the day. I probably spend about 30 minutes in organized meetings per day, but sometimes will spend longer in calls with coworkers pair programming. We have planning meetings every 3 weeks where we plan out the work for the upcoming sprint which can be a long meeting but it’s always really beneficial to map out the work coming up and get a feel for the work ahead.
As I’ve mentioned already, I work on the back end, primarily using C# and .NET Core. We’ve also been building more applications using Kafka, which has been a really interesting technology to learn. I’ll also assist with writing BDD integration tests in Specflow when development work is lighter.
How did you get your first web development job?
I was applying to pretty much everything I thought I might be able to do, and got a call one day from the apprenticeship provider to continue on with the next step of the application process. I actually forgot which job I had even applied for and had to ask!
He was very understanding of course, and I set up a time to meet with him and do a quick video introduction for the company to review and decide whether or not to interview me. I was then invited to interview at an online assessment day as it was during COVID lockdowns, and went through a number of tasks and interviews.
In the interview I had to showcase a project of my choosing, which was my Odin Project Ruby capstone project, a CLI two player Chess game. They were really impressed with my work, particularly the fact that it was extensively unit tested and I had considered a lot of edge cases, even on some of the trickier rules like castling and en passant. I was offered the job that same day and began at the company I currently work for in July 2021.
What are your career goals for the future?
In my free time, I’m continuing to learn Ruby on Rails and branch out more into some front end frameworks like React, and the new and shiny Blazor. I’d love to be a staff/principal developer some day, or move more into solutions architecture. I really like the “big picture” aspects of large applications and plan to learn more about this side of software engineering.
I don’t currently have any plans for “the next big thing” app wise; mostly just enjoying the learning process and seeing how far I can go.
I’m also training to mentor new apprentices in our company, so for any aspiring developers please feel free to reach out and connect on LinkedIn.