How I Landed My First Developer Job After Teaching Myself to Code

"Give me six hours to chop down a tree and I will spend the first four sharpening the axe." — Abraham Lincoln

This famous quote perfectly encapsulates the most important piece of advice I can give to any aspiring self-taught developer looking to land their first programming job:

Prepare, prepare, prepare.

As a 24-year-old who taught myself how to code and recently landed my first six-figure developer job after just 5 weeks of searching, I can confidently say that it was my intense preparation that made all the difference.

But before I dive into the specifics of how I prepared, let me give you a little backstory. Growing up, I was your typical student who did what society and the education system expected of me. When it came time to choose a major for college, I picked business because it seemed like a "safe" and "practical" choice.

But after 3 years of business school, I couldn‘t shake the feeling that something was off. I wasn‘t excited or passionate about what I was learning. It felt like a chore. Deep down, I knew that if I continued down this path, I‘d end up in a career that left me unsatisfied and unfulfilled.

That‘s when I discovered the world of programming and everything changed. I realize that coding was the creative outlet I had been searching for. I could build anything I wanted and directly see the results of my work. I was hooked.

So I made the scary decision to drop out of college and teach myself how to code. For the next 8 months, I spent every spare minute learning programming languages, building projects for my portfolio, and preparing to land my first developer job.

The Self-Taught Developer‘s Dilemma

Now, I know what you might be thinking. Is it really possible to land a developer job without a computer science degree? The short answer is yes, absolutely.

The Bureau of Labor Statistics predicts that employment of software developers will grow 22% from 2019 to 2029, much faster than the average for all occupations. The median annual wage for software developers was $107,510 in May 2019. And thanks to the proliferation of online learning resources, it‘s never been more accessible to gain programming skills outside of a traditional classroom setting.

That being said, the self-taught path is no walk in the park. It requires an immense amount of internal drive, discipline and ability to deal with ambiguity. Without the structure and deadlines of a bootcamp or degree program, the responsibility is 100% on you to learn the right things, build impressive projects, and ultimately convince employers to take a chance on you.

But here‘s the good news: it can be done. In 2019, Stack Overflow reported that nearly a quarter of respondents to their developer survey learned to code from online courses or self-study. And as more companies embrace skills and performance-based hiring, I believe we‘ll see that number continue to rise.

So if you‘re considering taking the self-taught route, know that you‘re not alone and that with the right preparation and strategies, you can beat the odds and land your dream developer job. Here‘s how I did it:

My 4-Step Strategy for Landing a Developer Job

1. Master the fundamentals and specialize

One of the biggest mistakes I see aspiring developers make is jumping straight into trendy frameworks and tools without building a solid foundation in the underlying programming concepts. Shiny object syndrome is real, but it won‘t get you hired.

Instead, I focused on deeply understanding the fundamentals – data structures and algorithms, object-oriented programming, databases and SQL, HTTP and APIs. I started with Python and JavaScript since they‘re beginner-friendly and in-demand, but the concepts are mostly transferable to other languages.

I worked through courses on freeCodeCamp, Coursera, Udemy, and Educative.io. I read textbooks like Eloquent JavaScript and Python Crash Course cover to cover, typing out all the example code. I built a strong foundation so I could easily pick up new languages and frameworks.

After several months of leveling up my fundamentals, I chose to specialize in full-stack web development using the MERN stack (MongoDB, Express, React, Node). I was drawn to the power and flexibility of JavaScript and the demand for developers who could build interactive web apps from front to back.

I dove deep into learning the intricacies of the MERN stack and it paid off – being able to showcase my specialization and discuss it in-depth during interviews definitely helped me stand out from more generalist candidates.

2. Build lots of projects

Learning concepts is important, but building real-world projects is what will get you hired. After all, employers want to see that you can apply your skills to create something valuable, not just regurgitate definitions.

From day one of my learning journey, I prioritized building projects and leaving a trail of "green squares" on GitHub. I started small with basic command line programs and static websites. As I leveled up, I gradually increased the size and scope of my projects until I was building full-stack applications with authentication, databases, and deployment.

Some of my notable projects include:

  • A MERN stack social media app with user profiles, posts, likes, and friend requests
  • A Python machine learning model that predicts housing prices based on historical data
  • A blockchain-based decentralized file storage platform secured by smart contracts
  • An e-commerce store with Stripe payments, user authentication, and an admin dashboard

By the end of my 8 months of self-study, I had a portfolio of 15+ projects that demonstrated the breadth and depth of my skills. And that portfolio was crucial for catching the eye of recruiters and convincing them to give me a shot.

Here‘s a look at my GitHub contributions during that time period:

Martin's GitHub contributions

If your GitHub doesn‘t look something like this, keep building!

3. Prepare relentlessly for interviews

"Victorious warriors win first and then go to war, while defeated warriors go to war first and then seek to win." – Sun Tzu

Landing the interview is half the battle – performing well in the interview is what will seal the deal. And the key to acing technical interviews is practice, practice, practice.

As soon as I started applying for jobs, I also began practicing for interviews. Every day, I‘d spend 1-2 hours working through coding challenges on HackerRank and LeetCode. I‘d practice thinking out loud, explaining my approach, and writing clean, efficient code on a whiteboard.

I also prepared for the behavioral and cultural fit aspects of interviews. I compiled a list of common questions (e.g. "tell me about a time you failed and what you learned") and wrote out my answers, focusing on telling concise stories that highlighted my strengths and growth. I researched each company I interviewed with and prepared thoughtful questions to ask them.

When it came time for the real interviews, I was cool and collected. I had put in the practice reps and could confidently showcase my technical problem-solving skills and discuss my experiences. And that preparation paid off – I aced 4 onsite interviews and received 3 job offers.

4. Network and build an online presence

Finally, I attribute a lot of my success to the network and personal brand I built. I knew that as a self-taught developer, my resume wouldn‘t be enough to get my foot in the door. So I took matters into my own hands and created my own opportunities.

I started by attending local meetups and hackathons in my city. I met other developers, learned about companies that were hiring, and got my name out there. I also reached out to experienced developers for informational interviews to learn about their career paths and get advice.

At the same time, I worked on establishing a strong online presence. I built a personal portfolio website showcasing my best projects. I started blogging weekly about my learning journey, techniques I used to overcome challenges, and reflections on the industry. I became active on tech Twitter, engaging in discussions and sharing my learnings.

Slowly but surely, I built up a network of peers and mentors. And that network ended up being integral to my job search – my first interview came from a referral from a friend I had met at a meetup.

Even more valuable were the relationships I built with experienced developers who became my mentors. One mentor in particular was crucial in my journey – John, a senior software engineer at a FAANG company who had also transitioned from a non-traditional background.

John provided invaluable guidance on everything from which technologies to learn to how to negotiate job offers. He referred me to my first freelance client. And when it came time for interviews, he ran me through mock technical interviews and gave me detailed feedback.

I can‘t overstate the importance of finding mentors like John. If you‘re serious about breaking into tech, start building those relationships now. Find people who have walked the path you want to walk and learn everything you can from them.

You Can Do This!

If there‘s one thing I want you to take away from this post, it‘s that landing a highly-paid developer job without a computer science degree is 100% possible in 2021. I‘m living proof.

But it won‘t be handed to you – you have to be willing to put in the hard work to learn the skills, build an impressive portfolio, prepare for interviews, and create your own opportunities.

If you commit to sharpening your axe and adopt a relentless preparation mindset, you will chop down the job search tree faster than you ever thought possible. It worked for me and I know it can work for you too.

So what are you waiting for? Start your self-taught developer journey today. Sharpen your axe and go chop down that tree. I‘ll be rooting for you!

Similar Posts