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:
- Google a coding question?
- Read documentation?
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.
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.
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.
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.
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.