When learning how to code, I kept hearing the same advice.

“Tutorials are great, but building projects is the best way to learn. Just go build stuff!”

But… how?

As a beginner, this is like hearing, “No more lessons. Just go skydive!”

When starting out, the idea of building an app from scratch is daunting. I felt overwhelmed when I tried, and I gave up. So I continued taking only coding tutorials — and my learning soon plateaued.

I was stuck.

I began to figure out how I could get to building projects, but not ones that seemed so complex that I’d lose all motivation to keep going. Eventually, I found ways to ease off my tutorial training wheels and start building my own apps. And later, when I got my first job working as a developer, people asked for my advice on learning how to code. Here it is.

Building projects is the best way to learn — but you don’t have to dive straight into creating a project that feels impossible to start, let alone finish.

There are fun, tangible ways you can shift from just taking tutorials to confidently building your own projects.

Here’s 3 ways that worked for me.

1. Add new features to your tutorial apps

Tutorials were (and are) a big part of how I learn to code, and they allow me to learn from some of the best programmers. Yet, at the end of project-based tutorials, I would often realize that although I had a finished app, I hadn’t built it so much as I had simply watched the instructor and copied their code.

My sister, a senior developer at Eventbrite, suggested a simple but powerful exercise.

“Take the application you’ve built in your tutorial, and come up with one small feature you can add to that app. Then build it — on your own.”

I took a React tutorial where you code up an app, then I added a button to the app. Next, I decided to add a search bar to the app and figured out how to build that. Then I came up with another feature and built that. This works well because I was starting with what I already knew (how the app worked so far), and slowly building on top of that knowledge. Doing so felt difficult, but achievable. The more I built stuff, the more my confidence grew.

After doing this for awhile, the idea of building my own app didn’t seem as intimidating. I started a new project and broke it down into several ‘features’, all the little steps I needed to take to complete it. I started by building just one small thing, as I had done before.

Andrew Mead’s JavaScript courses on Udemy have sections called ‘Build it’ challenges, where he walks you through building an app, then challenges you to add a feature to the app you’ve just built. He then shows you how he would go about building that feature. You build almost as often as you watch the tutorial. Regardless of whether you take his courses, do this for every tutorial you take.

Add new features to your tutorial apps. See how much faster you learn when you’re always building.

Starting a new project made me feel like I was at the bottom of a mountain, wondering how I could even start. But adding new features to tutorial apps felt like taking challenging, but doable, steps uphill. And eventually, when at the bottom of another mountain, I knew how to get going.

Tip: Don’t worry about if the new features are messing up the layout or structure of your app. When I stressed about this, my sister would point out, “You’re worrying about step 20 when you haven’t completed step 2.” Once you’ve built so much that you’re drowning in all your cool projects, then you can worry about things like that. For now — get to building!

2. Build Google Chrome extensions

As a beginner, I was itching to build and finish something. Yet, when I did try to build new projects, I felt discouraged realizing I could work on an app for weeks and weeks and still be nowhere close to completing it.

Seeing yourself progress helps you stay motivated when learning something new. I needed to challenge myself and do stuff that was hard for me. But I also knew I needed to see myself set and hit the goal of starting and finishing a project, however small. I couldn’t stay in tutorial land forever, as great as it is.

Will Sentance, the CEO of Codesmith and a teacher at Frontend masters, was asked, “How do you build something feasible — that doesn’t take forever?” His answer?

Build Google Chrome extensions.

This is a fun, quick way to get to building as a beginner.

I worked through these tutorials that showed me how to create a Chrome extension in just ten minutes or just 20 minutes. Then I took what I learned and I built my own very simple extension. I was hooked. As Will Sentance explains:

“You get to practice JavaScript without having to build and design an application from scratch — it just plugs into something you already use.”

As Sentance points out, these little ‘apps’ in JavaScript give you enormous power. You can build extensions that add functionality to any pages you’re on, and the possibilities for what your extension could do are endless.

Google Chrome Extensions have been a great way for me to not only learn but to actually complete projects that I can use and show to friends, in a relatively short amount of time.

After I first built an extension, I realized I had done what had gotten me fascinated about coding in the first place — I had built something useful from start to finish. And instead of taking weeks, I was able to do this in just a day or two. I quickly saw my progress, which made me want to learn even more.

By building extensions from start to finish, my motivation as a beginner quadrupled. And that motivation took me from beginner to junior developer.

If you’re learning a language besides JavaScript, try to find smaller apps you can build quickly from start to finish.

Tip: Sentance points out you should always build extensions that solve a problem you face. You’ll care about finishing your extension so much more if it’s the solution to an annoying problem you have. Get distracted by Facebook too much? Build an extension that hides your Facebook feed.

3. Build projects with a friend


I’ve met so many new programmers who feel overwhelmed or lost in the middle of a new project they’ve started.

The best way I’ve found to fix this is to start a project with a friend.

When building with a friend, a new coding project no longer seems so scary. All of the unanswered questions you have become part of playful conversations as you share your ideas and knowledge. You bond with your friend as you struggle through problems together and then celebrate when you solve them.

freeCodeCamp founder Quincy Larson has said, “the worst way to learn to program is to learn alone.” When you’re working alone, it’s easier to give up when you feel lost and unsure of what to do next when building a project.

But when you’re lost with a friend, it becomes a fun challenge to work together to figure out what you need to do. You hold each other accountable as you work towards your goal.

These are some of the best ways I’ve found to go from just taking tutorials to actually building my own projects. Once I got started building, the speed of my learning began to skyrocket. Start building things as often as you can — and see your coding journey begin to accelerate.

Building things is the best way to learn. I just wish I had started sooner.

Don’t make my mistake. Go build stuff.

Feel free to share with me what you’ve built or what you’re working on in the comments below. I can’t wait to see what you create.

To keep in touch with me, sign up for my newsletter where I share tips on learning how to code.