Every week, I get an email from freeCodeCamp with a story about someone who learned to code and got their dream job. Those stories kept me motivated while pursuing my own dream job.

Now that I’ve been hired after just 11 months of learning JavaScript ?, I wanted to share my story to hopefully motivate others down the road.

(Full disclosure: before starting HTML/CSS/JavaScript in January 2019, I had some basic Python skills from college. Nothing advanced, but a good starting point.)

The four biggest sources of my growth as a developer:

  1. freeCodeCamp
  2. #100DaysOfCode
  3. My mentor
  4. Online community

freeCodeCamp

This is where I started learning HTML, CSS, and JavaScript last January as a  total newbie. It takes you step by step, teaching you the basics.

I began at the beginning: by saying “Hello World” on a blank page. As the saying goes, “Getting started is the hardest part,” and simply saying “hello” made it easy.

I progressed through the Basic HTML and HTML5 tutorials and on to the Basic CSS tutorials. So far, so good.

I continued through the Responsive Web Design curriculum until I arrived at the projects.

This is where you get to put your new skills to practice. No projects — no gains.

I’ll be frank. It’s tough. But you also have an enormous community behind you to help you push through. Some quick tips:

  1. Start by looking at examples. A quick Google search will show you how others (newbies and pros alike) did their projects. Get some ideas here.
  2. Sketch it out. Paper and pencil are your friends.
  3. Follow the user stories. Each project comes with a set of required elements that provide you some structure (which is great for getting started).
  4. Google to your heart’s desire. Experienced developers don’t have everything memorized — you certainly don’t need to. Here’s proof.
  5. Find other tutorials if you get stuck. Can’t grasp a concept? Google it and find another tutorial. Get another perspective. Then come back to it.

I made my way through the first four Responsive Web Design projects alright, and then I got to the Personal Portfolio project.

I spent a long time here, trying to make it perfect. I essentially stopped progress on other things in life to dedicate more time to my portfolio.

I mean, this is how I’m going to showcase my work!

Photo by Veri Ivanova on Unsplash

I ended up learning Bootstrap to help with responsiveness, and I upgraded my HTML/CSS skills a ton. Putting skills to practice — that’s what counts.

And with that, I earned my Responsive Web Design Certification. Such a great feeling ?

#100DaysOfCode

I truly can’t emphasize how huge a role this challenge played in my learning. I wouldn’t have gotten hired without it.

#100DaysOfCode is a challenge for developers of all experience levels. (Pssst… that means you.)

TL;DR — you code for 1 hour every day for 100 days straight. Work on whatever you like. Just code. At the end of the day, log your progress on GitHub and Twitter.

And don’t worry — you can miss a day here and there. Life happens. The important thing is to get back to it the next day. Make it part of your daily routine.

It was tough. And it was great.

Photo by Tim Grouw on Unsplash

What do you work on for 100 days? I developed a website for my students from scratch. It grades their homework, logs their grades, tracks their attendance, and lets them send me anonymous messages. Considering I had never built a website before, this took the majority of the 100 days.

In this process, I gained experience with a ton of new technologies, like Node.js, Express.js, AJAX, user authentication, dynamic rendering, email protocol, HTTPS, and SQLite, for starters. And I learned each part for a real-life need.

Again for the people in the back — “for a real-life need”.

Doing things for the sake of learning is great, but that’s usually not an end in itself. Applying your skills to solve a real-life problem is where it’s all worthwhile.

If you haven’t taken on this challenge yet — do it. You’ll be amazed at how much you learn.

Did someone say “New Year’s resolution”?

(Fun story: my wife caught a cold during my #100DaysOfCode, so I also built a simple app using the Facebook Messenger API to automatically message her every 15 minutes to drink more water.

She hated it. I loved it ? )

My mentor

Naturally, I got stuck often.

And before you skip this section, thinking, “Well, I don’t have a mentor, so…”, you don’t need a personal mentor (though it’s certainly nice). There are tons of people online willing to help you out.

Where to look?

  1. Stack Overflow: this one’s probably obvious, but you’d be surprised how many questions are answered here. This is where I always start when I have a weird bug.
  2. Reddit: I just recently found a couple of subreddits that are great when you have a question that you can’t find on Stack Overflow. r/learnprogramming and r/learnjavascript are perfect for this.
  3. freeCodeCamp forum: another judgement-free place you can go with newbie questions ?
  4. YouTube: again, pretty obvious, and some channels will suit you better than others, but most of the time you can find a good tutorial for your next project! I recommend checking out a few different tutorials for a new project before getting started — never know whose teaching style will jive with you best.
  5. A mentor: last but not least, if you know someone who’s willing to answer your endless questions (like I had/have), trade brain power for coffee. More often than not, people are happy to see you learning.

I’ll admit, my mentor and professor (a Russian computer scientist — who would’ve thought?) was extremely instrumental in my success thus far, but I see lots of people online who don’t have a mentor and make do. I just got lucky.

Online Community

I got into Twitter purely for the programming community. People are so enthusiastic about learning to code and teaching others. It’s a huge source of encouragement and full of learning opportunities.

Personally, I like hearing from @WellPaidGeek, @ossia, @kvlly, @js_tut, @cassidoo, and of course, @freeCodeCamp.

I also subscribed to Medium’s news feed as well as Quora. Plug in a few of your interests and enjoy the articles that pour into your inbox. This lets you see what people are writing about and what’s happening in the field.

And importantly, Quincy Larson’s weekly emails from freeCodeCamp. I love those. (Sign up here!)


Photo by Hunters Race on Unsplash

The Interview

So how’d I land the job? A few steps here.

First, I went to my university's career fair. I brought a resume that showcased my personal projects, since I didn’t have any formal work experience, and I talked to ~6 companies.

One critical question I asked every employer: “What can I learn now to prepare me for the job?” They like hearing that, and I was sincere. I’ll learn whatever I need to.

After a few weeks, I got an email inviting me in for a full-time interview at one of the companies. I had no idea what the interview would be like, but I wanted to give it a shot.

It was pretty relaxed, lots of talk about my career change and my background. Then they opened up my GitHub repos in front of me and started with some questions about my code. I did the best I could.

What I made sure to emphasize:

  1. I like to be challenged.
  2. I want to build apps that help people.
  3. I love what I’m doing, and I’m motivated to pursue it.

I guess it went well ??‍♂️

Summary

Join #100DaysOfCode. Do projects that you can use. Join the online community. Apply to jobs (even if you don’t meet the job description — yet). And stay motivated.

If you’re learning to code and want to land a developer job someday, remember this:

I’m no outlier. Lots of people out there are learning to code, challenging themselves every day, and making their dreams come true. You can, too.