How I Convinced an Employer to Take a Chance on Me and Pay Me to Learn to Code

Man learning to code at a computer

Three years ago, I was working as a high school math teacher. I enjoyed many aspects of teaching, but I couldn‘t envision myself staying in the profession long-term. I was fascinated by technology and dreamed of becoming a software developer, but I had no idea how to make the leap.

I was 32 years old, married, with a mortgage and a baby on the way. I knew I wanted to transition into a career in tech, but going back to school full-time for a computer science degree wasn‘t an option. My family relied on my income. I needed to find a way to develop coding skills while still working and providing for my loved ones.

The Challenges of Self-Learning to Code

In the evenings after work, I started teaching myself web development basics using free online resources. I learned some HTML, CSS, and JavaScript and built a few simple projects. But beyond that, I struggled to see a clear path forward to gaining the skills I would need to land an actual development job.

While there are countless online tutorials, courses, and project ideas out there, it can be really difficult to know what to focus on and in what order when you‘re learning on your own. Without guidance and feedback from experienced developers, it‘s hard to gauge your progress or determine if you‘re learning the right things.

Tutorials and courses can teach you syntax and the fundamentals, but they don‘t necessarily teach you how to think like a programmer or solve real-world coding challenges. It‘s one thing to follow step-by-step instructions, but another to plan and implement a project from scratch.

One of the biggest challenges I faced learning to code was fighting imposter syndrome and feeling that I would never be good enough to do it professionally. When you‘re learning in isolation, it‘s easy to get stuck in tutorial hell and feel you‘re not making meaningful progress.

According to the 2019 Stack Overflow Developer Survey, 85% of professional developers have a bachelor‘s degree or higher. Only about 15% are purely self-taught or learned through a coding bootcamp alone.

While there are certainly many successful developers out there without a formal computer science education, trying to break into the industry is much harder without a degree or prior experience. I knew I would need to find a way to get my skills to an employable level and gain some real-world practice.

Evaluating the Typical Paths to a Development Career

As I saw it, my options were:

  1. Quit my job and go back to college or university for a CS degree
  2. Try to pick up freelance web development work and learn as I go
  3. Attend an intensive coding bootcamp

Let‘s break down the challenges with each of these paths.

Option 1: Quit and Pursue a CS Degree Full-Time

Going back to school is a huge commitment of both time and money. As someone with a family to support, becoming a full-time student again wasn‘t realistic. Sure, I could take night classes part-time, but it would take many years to earn a degree that way.

I also questioned how relevant a lot of the computer science curriculum would be to the kind of web development work I wanted to do. While getting a CS degree provides an excellent foundation, much of the coursework is heavy on theory vs. practical programming skills. Web technologies also change rapidly – what you learn in school may be outdated by the time you graduate.

According to data from the National Center for Education Statistics, the average yearly tuition at a four-year public university was $9,200 in 2019. Add in living expenses, textbooks, and lost wages from not working and the cost becomes unmanageable for someone already in the workforce.

Option 2: Learn Via Freelance Web Development Work

The idea of building up a side business doing freelance web design appealed to me. As a teacher, I thought I could specialize in creating websites for schools, tutoring centers, and other education businesses.

However, getting freelance clients involves a lot more than just coding. You need to do your own sales, marketing, project management, and customer service. While those are all valuable skills, I really wanted to focus on developing my technical abilities. Building basic websites for small businesses wasn‘t going to teach me the programming skills I needed to qualify for full-time software development roles.

Studies have found that it takes the average freelancer 2-3 years to become financially stable. While you certainly can learn to code by freelancing, it‘s not the fastest or easiest path, especially if you‘re starting from a beginner level.

Option 3: Join an Intensive Coding Bootcamp

Coding bootcamps can be a great option for people looking to learn development skills quickly. The immersive, intensive nature lets you focus purely on learning for a few months. You get to code alongside other aspiring developers and learn from experienced instructors.

However, there are some significant costs and risks to be aware of. According to Course Report, the average tuition price of coding bootcamps in the US is $13,600. On top of that, you need several months worth of living expenses to cover the time spent studying and job searching after.

Leaving my full-time teaching job to attend a bootcamp would have put an enormous financial strain on my family. If I had to borrow money to pay for tuition and didn‘t get a good development job soon after graduating, we would have been in a really tight spot.

Course Report‘s data also shows that the average time to find a job after graduating a full-time coding bootcamp is 83 days. That‘s nearly 3 months of opportunity cost and lost wages to factor in on top of the bootcamp tuition.

The other issue was timing. Many in-person bootcamps have set class dates and you need to apply well in advance to secure a spot. The next cohort for the program I was interested in wouldn‘t be starting for another 5 months. I had already begun self-learning and didn‘t want to put my goal on hold for that long.

So after ruling out these 3 conventional paths, I had to get creative. Then a realization hit me – what if I could find a company willing to pay me to learn on the job? If I could create my own informal "apprenticeship", I could gain development skills and experience without the high costs and risks of school or a bootcamp.

My Unconventional Approach to Landing a Development Job

I started by researching companies in my local area that had job postings up for junior developer positions. In particular, I targeted smaller companies and startups, figuring they might be more open to an unorthodox arrangement.

Instead of formally applying online, I emailed each company directly. Since I was proposing an unusual situation, I wanted to connect with an actual person vs. going into an automated applicant screening system.

In my email, I was honest about my background, my skill level, and what I was looking for. I explained that I was a math teacher trying to transition into software development. I described the steps I had taken to start learning to code on my own through online resources.

Most importantly, I made it clear that I was willing to work for a very modest salary (think 30-50% of typical junior developer pay) in exchange for the opportunity to learn and grow my coding skills on the job. I pitched it as a win-win – the company would be getting an enthusiastic, highly-motivated junior team member in exchange for investing in my training and development.

Here‘s an example of the kind of email I sent:

Subject: Math teacher turned aspiring developer looking for an apprenticeship opportunity

Hi [Name],

My name is Sarah and I‘m a high school math teacher looking to transition into a career in software development. Over the past year, I‘ve been learning to code in my spare time. I‘ve completed a number of online courses and tutorials in HTML, CSS, JavaScript, and Ruby and built some small web projects.

I‘m writing to see if [Company] might be open to hiring me in an entry-level developer role with the opportunity to learn on the job. I don‘t expect a typical junior developer salary – I‘m willing to start at a lower wage in exchange for gaining hands-on experience, mentorship, and growing my coding abilities.

I‘m a quick learner, great communicator, and passionate about becoming a professional developer. I may be newer to coding but I‘m driven to succeed in this field. I believe my analytical problem-solving skills from teaching math would translate well to a programming role.

If an apprentice-style position could work for your team, I would love to discuss more. I‘m happy to provide code samples, go through a technical exercise, jump on a call, or even come in to meet with you. Please let me know if you think there could be a fit.

Thank you for your consideration!

Sarah Jones
[email protected]
555-123-4567

To my surprise, I received positive responses from several of the companies I reached out to. A few invited me for intro phone calls to discuss my background and goals. Some said they didn‘t have the capacity for an apprentice currently but wanted to keep in touch for the future.

One founder replied saying that while they weren‘t actively hiring, they were impressed by initiative. He said there could be an opportunity to carve out a junior development role for me. We met up for coffee and had a great conversation about my math teaching experience, the programming skills I had been learning, and how I could add value to their small team.

He discussed the possibility of me starting in a hybrid role, where I could help out with some non-coding tasks like writing documentation, doing QA testing, and providing user support to free up the senior developers. This would allow me to contribute right away while gradually taking on more coding tasks as my skills improved.

A few days later, I received a job offer for a role they were calling a "Developer Apprentice". It came with a salary that was about 40% of what a typical junior developer would make in my area. But it was still significantly more than I had been willing to accept.

The offer included a structured learning plan, a mentor on the team to pair program with, and quarterly reviews to re-assess my salary as my skills and contributions grew. They said they were excited to help me transition careers and believed that investing in me would pay off for the company in the long run.

Fast forward 2.5 years and I‘m still with the same company, but now as a full-time software engineer. In my time as an apprentice, I took on a variety of projects like:

  • Building internal web tools to streamline manual processes
  • Creating an API integration to connect our app with a 3rd party service
  • Developing new user-facing features based on customer requests
  • Writing automated tests to improve quality and reduce bugs
  • Researching and prototyping a machine learning model to enhance our product recommendations

It was really invaluable to be able to learn these skills in a real-world setting, with guidance from senior developers. I was able to gain practical experience across the stack, from DevOps to the front-end.

The apprentice role allowed me to add value to the company while leveling up my skills at a pace that worked for both me and the team. After about a year, I was able to transition to a regular junior developer title and salary. I‘ve since been promoted again to a mid-level engineer position.

Advice for Others Considering an Unorthodox Path into Tech

Before I wrap up, I want to share some advice for anyone else out there who is looking to transition into software development without following the conventional paths.

First, don‘t underestimate the power of self-learning and building projects on your own. While you likely won‘t reach an employable skill level through tutorials and courses alone, having a solid foundation before you look for apprentice-style opportunities is key.

Be strategic about what you teach yourself and the projects you create. Look at a bunch of job descriptions for entry-level developer roles and make a list of common requirements and nice-to-haves. Target your learning around those core skills.

Make your projects reflective of the kind of work you want to do professionally. Avoid generic to-do list apps or "clones" of popular websites. Instead, come up with unique ideas that solve real problems or showcase your creativity.

When you‘re ready to start reaching out to companies, research ones that have a reputation for being open to non-traditional candidates and investing in employee growth. Read through their careers page, check out their developer blog if they have one, and look up their team on LinkedIn.

Craft a compelling outreach email that focuses on your enthusiasm, willingness to work hard, and any transferable skills from your prior career. Provide links to your best projects and offer to discuss your qualifications further or complete a code challenge if they‘re unsure about your technical skills.

Consider also tapping into your existing network to see if you have any connections to folks working in tech, even if they‘re not developers themselves. When I first started reaching out to companies, I asked several family members and friends if they knew anyone who worked as a software engineer or at a tech-focused company. I ended up getting several warm introductions this way.

Finally, be willing to make some sacrifices and take a pay cut in the short term in exchange for valuable learning experiences and mentorship. Focus on finding an environment where you can grow your skills, not the highest possible salary right off the bat. You can always negotiate a raise or move on to a higher-paying role down the road once you‘ve increased your experience.

According to Hired‘s 2020 State of Software Engineers Report, the average salaries for junior and mid-level developers are $93,000 and $123,000 respectively. Even if you start at half that rate as an apprentice, you have a good opportunity to catch up in earnings as you gain experience.

Conclusion

If you‘re willing to put yourself out there, get creative with your job search, and bet on your ability to learn quickly, you can land a sweet gig as a paid coding apprentice like I did. It might not be the conventional path into tech, but it‘s a way to break into the industry without going back to school or shelling out for a bootcamp.

Once you have that first developer role under your belt, you‘ll be in a much stronger position to level up your career. Take the initiative to seek out stretch opportunities, advocate for a promotion when you‘re ready, and keep your skills sharp.

Landing my apprentice role took some luck and good timing, but I‘m confident that I would have made the career change one way or another. If you‘re driven to learn and willing to take some risks, you can teach yourself coding while getting paid.

To all the aspiring career-changers out there – know that there‘s more than one path into the tech. Ignore the doubters and trust that you have what it takes to make your dream a reality.

Similar Posts