Learning to code by following tutorials works for many people. And yet there tends to be a separate learning curve when you're trying to move out of the tutorial ecosystem and into creating your own projects.

I've written elsewhere about how to escape tutorial purgatory and make progress as a programmer. But to summarize here, it's a necessary step in your growth as a developer to venture out into the wild west of programming and build something. This will expose you to the ins and outs of your chosen coding ecosystem.

Here are five tips to help you move out of those tutorials and into making real progress as a developer by building projects.

1. Choose a Project

Whether you're coding from a book or working through online tutorials, your first step upon leaving the safety of your nest is to choose a project that is specific to your field of interest.

If you're an aspiring front end developer, that might mean creating a basic website. If you're learning Python, that could look like a simple web scraper. Find something that interests you, and research examples to get an idea of what your project might look like when it's complete.

2. Set Up an IDE

If you've been learning from online tutorials which provide a console that handles all of the back end work for you, take some time to set up an integrated development environment (IDE) that is specific to your intended project and ecosystem.

The actual form of your IDE will vary greatly depending on your project. You could be cobbling together a workflow that includes a code editor, command line interface, version control system, and package manager. Or, on the other hand, you might install a game engine that has all of the stuff that you need built-in for you.

The important component of this step is to become comfortable coding in an environment that is standard for the type of work you want to do. This helps you move away from only coding in a browser or following a book.

3. Get Comfortable with Documentation

Here's a glimpse of a familiar workflow when you're beginning a new project:

  1. Set up your IDE
  2. Code
  3. Get stuck or forget the syntax for something
  4. Google some half-formed question about the issue
  5. Find the official documentation and a handful of Stack Overflow posts
  6. Check social media for no reason
  7. Return to the documentation and Stack Overflow to find your answer
  8. Return to step 2

Unless you're a super expert in your field, chances are that you'll get stuck trying to figure out a solution to some aspect of your project. The official documentation for the library or framework that you're using will likely have some sort of answer - even if it's an obscure one - for whatever's puzzling you. But if it doesn't, someone has probably asked a similar question on Stack Overflow or elsewhere.

Even if there are no answers out there for your specific question, there will be a breadcrumb somewhere that'll lead you to an approach for how to solve your problem.  

If you're trying to use ES6 classes in some obscure JavaScript framework, for example, you might not find the exact answer you're looking for. But there will be plenty of similar resources out there that can help you come up with a solution yourself.

4. Ask for Help

One of the best things you can do for yourself as an aspiring developer is to make friends with other developers in your field. They can look at your code and provide feedback about how to make it better.

For some people, the idea of sharing their work and having it critiqued is an anxiety-inducing experience. I recommend working as diligently as you can to overcome this emotion as it will stagnate your growth as a programmer.

When you're starting out with your own projects, it can be extremely helpful to have someone who's already walked the path to look at your work and offer constructive criticism. Even if doing so requires you to rewrite whole sections of code.  In many cases, you might be trying to recreate the wheel while other options already exist. There, you'll benefit greatly from learning best practices from experts that have experience in the field.

5. Identify Other Areas for Growth

One project usually leads to another, and you'll quickly identify areas in which you're able to grow as a developer.  This might mean that you'll move from front end development to back end, or vice versa, or hop from 2D game programming into 3D.

It might also mean that you need to keep building your skill set just to complete the initial project that you've chosen. There's no shame in learning C#, for example, then deciding to build the back end of a web app, and having to learn all about ASP.NET and Razor Pages before actually making any progress!

Happy coding!

If you enjoyed this article, please consider checking out my games and books, subscribing to my YouTube channel, or joining the Entromancy Discord.

M. S. Farzan, Ph.D. has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like Dungeons & Dragons Neverwinter and Mass Effect: Andromeda. He is the Creative Director and Lead Game Designer of Entromancy: A Cyberpunk Fantasy RPG and author of The Nightpath Trilogy. Find M. S. Farzan on Twitter @sominator.