Train to build amazing applications…but don’t forget to build!

You want to learn to code. Your game plan is set up. HTML, CSS and JavaScript are the first things you’ll learn. To do so, you’ll use FreeCodeCamp, Codecademy, YouTube and more. You’re doing the tutorials in parallel and completing all the exercises. You follow along with the tutorials’ code in your favorite text editor. You are truly learning to code. Or are you?

Imagine you decided to get into boxing. You’d start off with some light exercises. You’d hit the heavy bag and master the speed bag. You’d shadow box and jump rope with the best of them. However, are you truly learning to box? Without sparring, making mistakes and learning from those mistakes, would you be confident enough to enter the ring against a real opponent?

Reading and watching code tutorials day after day in hopes of landing a position in software is like jumping rope and hitting the speed bag in hopes of becoming a great fighter. Sooner or later, you must get off that tutorial treadmill and get in the ring. You must start building a project of your own. You need to get your hands dirty, learn to constantly Google as you code, learn to read documentation and learn to find and squash nasty bugs in your code. How many tutorials do you watch or read that teach you how to:

Practically none. This is learned as you build on your own (following video tutorials does not count). You need to fall and scrape your knee to learn exactly what it is to build a working application.

Find an Opponent

You’ll need a project idea proportional to the knowledge you have. For instance, if you only know HTML and CSS, perhaps creating the next privacy-invading social media website is too worthy an opponent to fight. A more proportional opponent would be a tribute page or a product landing page.

Optimally, the project will be something near and dear to your heart. You will be excited to enter the ring, round after round, to fight. However, if you need inspiration, check out FreeCodeCamp for project ideas.

Jump into the Ring

It’s time to start the project. This, in itself, is intimidating enough. You need to find a text editor (try Visual Studio Code), initialize a git repository, install necessary libraries & packages, and more. You need to create a development environment that you are comfortable using to create your projects. The first time is the most difficult but you will be happy you learned this vital step. And this knowledge you will only gain by going through the pain of environment setup.

Shameless plug: I created a YouTube video in which I set up my development environment using create-react-app.

Never Stay Down

While you build, you’ll be knocked down…a lot. You’ll go up against relentless bugs, incomprehensible errors and badly-written documentation. You’ll want to stay on the mat until the count of 10 but you can never stay down. Luckily for you, this fight can continue as long as you need to win. As long as you work on your project every day, you’ll wear your opponent down and finish that project. Additionally, you have help along the way. Twitter, /r/webdev,/r/freecodecamp and the FreeCodeCamp forums all have amazing communities that are more than willing to help you as you bring this project home. Utilize those communities.

Shameless plug: If you have a question about web development, please feel free to tweet me at @AryanJabbari. I tweet often and am happy to help.

Climb the Ranks

Congratulations! You won your first fight. You created a responsive web application in HTML and CSS. You brought in help from Bootstrap or Bulma. But it’s time to train for your next fight. It’s time to hit the speed bag and run the tutorial treadmill. You need to get ready for your next fight: JavaScript. You need to watch tapes on JavaScript and do exercises. And, when you’re ready, you need to climb in that ring again.

Never Stop Fighting

There are always be projects to build and frameworks to learn. Keep your skills sharp by alternating training (watching tutorials) and fighting (creating projects). Your career is bound to take off.

Good luck!

I’m currently working on a Web Development Starter Kit. It will be a pack of content that’ll set you on the right path to leave that 💩 job and learn the foundational concepts needed to be a web developer.

For an email on when that’s released, join my mailing list!