In September 2020 I signed up for Free Code Camp and started learning HTML and CSS.
In April 2021 I doubled my monthly income from my previous job in landscaping, doing freelance web development and technical writing work.
In the span of 8 months - using mostly free resources - I went from being a complete beginner with code, to being offered more contract work than I'm able to take on.
If that sounds crazy to you - well, yeah. It's been crazy for me, too.
This journey has led to a pretty large audience growing around me on Twitter.
Hundreds of people have reached out to me to ask how I've done it.
My honest answer:
I wish I knew!
Believe me, if I knew the secret formula to break into the tech industry, I'd bottle it and hand it out on street corners in the hopes that everyone could enjoy the high compensation and high quality of life that a career in tech affords.
What I've attempted to do here is maybe the next best thing that I can offer:
To revisit the choices I made and the resources I learned from along the way, to the best of my recollection.
Will you be able to accomplish exactly what I have, if you try to recreate my timeline?
Well, no, probably not.
I won't mince words here:
First of all, I'm a straight white male with a nice smile who lives in California, USA. I have a liberal arts education.
Relatively speaking, it's pretty easy for me to get a haircut, put on a clean shirt, and be taken seriously as a "software engineer" mere hours after mowing lawns for minimum wage.
Second, I'm coming up on 35 years old.
I've been around the block. A few times.
I showed up to the tech industry with a fairly mature set of "soft skills" - I have many years of experience in other industries, and I'm good at what I know how to do.
I also showed up with a helluva lot of grit - which I think of as perseverance plus passion.
There comes a point about halfway through this story where my only choice is whether to sink or swim.
I absolutely could have failed. But I would have kept going anyway, because life didn't give me any other option.
My real hope in telling my story in conjunction with the resources I used, is so you will see that it didn't take as much as you might think for me to get to where I am.
If you just want to check out the learning resources, you can find a complete list of everything mentioned at the end the article.
Don't get me wrong: I'm a total n00b! I'm definitely not qualified to be your mentor, dear sweet stranger/friend I don't know yet DMing me on Twitter.
And I fully expect to feel that way for years to come.
I know enough to be useful to the right teams.
And more importantly:
I know how to learn, and I know "how to win friends and influence people", so to speak.
This is how I got here:
Feeling burned out and directionless in my paycheck-to-paycheck career, I started toying around with a crazy idea:
What if I taught myself to code?
Could I land a job in tech without a CS degree?
Where do I even start?
- most in-demand
- lowest barrier to entry
- CS students often learn Python but not JS so i figured it’d be a more level playing field
To be honest, I felt absolutely ridiculous to even be considering any of this. I was so embarrassed to tell my girlfriend about it, and she was understandably confused and skeptical. As was I!
I'd spent the previous five years working as a carpenter and landscaper while writing a blog about homesteading. Why would anyone ever take me seriously in tech?
Danny's story changed my life.
I'm not exaggerating.
His story lit a fire inside of me that I've been stoking ever since.
If you don't know Danny, do yourself a favor and listen to that podcast episode. You can come back to this later. It will still be here.
I was working full time in construction from 9-5 at this time, so I started waking up at 4 AM every day to work through Free Code Camp, as well as my first Udemy course:
Build Responsive Real-World Websites with HTML5 and CSS3 by Jonas Schmedtmann
I found that I really genuinely enjoyed the work, and I was eager to get up for my pre-dawn study sessions each day.
As soon as I could build a full landing page, I started daydreaming about how I might be able to sell websites to local businesses.
My first solo project was a re-creation of the site in Jonas's course, but redesigned with a local biz in mind.
Once I felt sure I wanted to keep going with this stuff, I bought my second Udemy course, also by Jonas:
Looking back through my Udemy account in May 2021, I am seeing that I only ever made it about 30% of the way through both of these courses. Don't beat yourself up over unfinished tutorials! Take what you need and keep going.
On October 1 I started working through The Odin Project. That program instructed me to set up git and GitHub right away - this is something I am really glad for, in retrospect.
TOP also encouraged me to sign up for Twitter and take on a #100daysofcode challenge.
That decision has turned out to be arguably the most impactful thing I've done throughout this entire journey. I cannot stress enough how huge the Tech Twitter community has been for my growth and my professional network.
One day while browsing Reddit to try to decide just how foolish and silly I was for trying to make this career change, I stumbled upon a thread posted by Leon Noel.
I signed up immediately.
This is another big decision I made early on that has had a huge impact on my overall trajectory.
You don't need to join 100 Devs specifically - though we'd be glad to have you!
But you do need to plug into some community, somewhere.
Don't try to do this alone. Trust me.
I was feeling good about my progress at this point with HTML & CSS, so I signed up for Team Treehouse to try to go deeper with JS.
I really liked the initial assessment they gave me, and was surprised to discover that I'd actually tested out of the first few sections of their JS fundamentals curriculum. I found their course style and frequent quizzes to be great for making sure I was really understanding what I was studying.
Now in addition to my 4 AM studying I was also in front of the computer most nights after work, too.
Around Thanksgiving (late November), Leon gave us a half-dozen website designs and said "have at it - do your worst translating these into HTML and CSS."
This was the first moment in my journey when I started to feel like I had legitimately accomplished something.
I don't remember when, but definitely by this point I had become aware of Brad Traversy - I'm not going to say he's the only tech YouTuber you need to follow, but if you only have time for one:
Leon continuously stressed the importance of networking to land a job in tech.
He assured us that knowing the right people would take us much further, much faster, than solely focusing on acquiring the skills.
I took this to heart, and started blocking off time for networking just like I did for studying. I began taking Twitter and LinkedIn more seriously as tools for connecting with people in the tech industry.
I wrote my first blog post about my experiences up to this point - a day in the life of a landscaper teaching himself how to code:
...Oh, did I mention I don't have running water or conventional electricity?
That's another story for another day. If you want to know more about what I was up to before I started learning how to code, you can check out this piece I wrote a few months later:
Leon also made it a requirement of the bootcamp that every student had to land at least one freelance website client.
I began emailing local businesses in my town to see if they’d buy a website from me, but didn’t get much of a response.
In early January 2021, everything changed in an instant:
I injured my foot, and had to resign from my day job in construction because it was too painful to be on my feet.
Studying suddenly became my full-time focus. I began putting in 8-10-hour days pretty much every day of the week.
The only feasible way for me to earn any money was to try to hustle for that first freelance client that Leon had encouraged us all to seek out.
In addition to coding and networking, I started reading up on marketing, cold email strategies, and how to generate leads.
After two weeks and hundreds of emails to local business owners in my region, I actually did it — I sold not just one but two websites in one day!
I couldn’t believe it.
These two sites would earn me more money than I’d make in six weeks of intense physical labor at my previous job.
But would the work keep coming?
You can read more about how I landed those first few clients here:
It seemed like a good idea to learn WordPress if I was going to venture down the freelance path. So I started in on this Udemy course while I was working on my first client site (which didn't need a CMS):
Become a WordPress Developer: Unlocking Power With Code by Brad Schiff
About this same time, I also started reading free resources on React. The first pet project I attempted on my own was a random quote generator that I strung together from a couple different blog tutorials that I tracked down. It was a total mess, but I felt like a genius nonetheless.
Searching for an alternative to WordPress, I eventually learned about Gatsby and Next.js.
This led me down a rabbit hole of reading and learning about headless CMSs and Jamstack architecture so I could use Next.js with my next freelance client.
I wrote about what I learned from these explorations here:
My experiences with this tech helped me to "level up" as a developer: I finally became comfortable digging directly into documentation instead of searching for tutorials. I started to see how docs could really make or break a tool for me, especially as a newbie.
At the same time, I continued cold emailing hundreds more biz owners, but couldn’t seem to seal the deal again like I had in January.
After several weeks of no sales, I figured that January must have been a random stroke of luck that couldn’t be repeated.
So I started applying for jobs at the end of the month.
I landed a few interviews, purely thanks to referrals from the audience that had grown around my Twitter by now.
Hold on, run that back, I think you need to read that sentence again:
I landed a few interviews, purely thanks to referrals from the audience that had grown around my Twitter by now.
That's the power of networking.
Unfortunately, most companies I talked to were rightly skeptical of my intentions: “it kinda looks like you wanna be self-employed, no?”
My work history involves a lot of off-and-on self-employment. I've worked in a few different industries, mostly to make ends meet while pursuing my true passion projects which have also spanned varied interests.
Even my sharpest resume makes it clear that I would probably prefer to be doing my own thing.
I also had effectively zero practical experience as a developer, and mostly couldn't get pass the initial sniff tests with hiring managers.
Up until this point I had my heart set on front end web dev, but now it occurred to me that I could be valuable to the industry as a technical writer.
I started reaching out to companies on Who Pays Technical Writers? and got some interest right away.
And just like that — back to freelancing!
I started being more vocal on Twitter about the services I could provide to agencies and tech startups.
Between my first freelance clients and a few articles published, I had a modest portfolio of real work in the tech industry.
Now folks were DMing me to inquire about hiring me for contract work. Or offering to introduce me to others looking to hire.
For the first time ever in my life, I actually had to turn down some work I was offered, because I already had too much on my plate!
After a couple months of almost zero income — being too busy was a really, really great problem to have.
In April, all told, I invoiced for almost twice what I earned in hourly wages in my last month as a landscaper.
I have a few ongoing clients for freelance work as a front end developer, technical writer, and developer advocate.
I really value being able to make my own schedule and choose the projects I want to take on. I don't know if I will continue freelancing forever, but it's a good fit for now.
I'm still doing a lot of studying, but now it's more along the lines of "JIT" (Just In Time) learning: instead of learning what I hope an employer will want, I learn what I need, when the need arises.
In the last few weeks I've deepened my understanding of React hooks, picked up Sass and GraphQL, and tinkered with half a dozen vanilla JS libraries, all for the sake of applying them to my work.
Am I getting rich off that sweet Silicon Valley tech boom?
But it's fun and stimulating work in an industry with seemingly endless growth potential, and I feel extremely fortunate to have gotten my foot in the door so quickly.
Dear reader, I wish you all the success in the world.
If you're hoping to start a career in web development, I can vouch that the resources I've shared here contain everything you could need to know.
And if you've taken a "nontraditional" path to get here like me, then I hope you know you are closer than you might think to achieving your goals.
- Free Code Camp
- Build Responsive Real-World Websites with HTML5 and CSS3 by Jonas Schmedtmann
- The Odin Project
- Leon Noel's 100 Devs Learning Community
- Team Treehouse
- Traversy Media on YouTube
- Become a WordPress Developer: Unlocking Power With Code by Brad Schiff
- My Freelancing Workflow, From Cold Leads to Paid Invoices
- Everything You Need to Know to Succeed as a Freelancer
- How to Set Your Price For Freelancing Projects
- My Networking Strategy For Making Meaningful Connections in Tech