Learning to code by following tutorials is no small thing, and yet there tends to be a separate learning curve when you're attempting 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 suffice it to say that a necessary step in your development as a developer is to venture out into the wild west of programming and build something that will expose you to the ins and outs of your chosen coding ecosystem.
Here are five tips from moving out of those tutorials and into making real progress as a developer.
1. Choose a Project
Whether you're coding from a book or engaging in 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, conversely, 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 that you intend to be doing, rather than coding in a browser or following a book.
3. Get Comfortable with Documentation
Here's a glimpse at a familiar workflow in beginning a new project:
Set up your IDE
Get stuck or forget the syntax for something
Google some half-formed question about the issue
Find the official documentation and a handful of Stack Overflow posts
Check social media for no reason
Return to the documentation and Stack Overflow to find your answer
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 various aspects of the particular project that you're working on. 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, and if it doesn't, someone has probably asked a similar question on Stack Overflow or elsewhere.
4. Ask for Help
One of the best things you can do for yourself an aspiring developer is to make friends with other developersin your field that 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, and my recommendation would be to work 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, and 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!
This post originally appeared on freeCodeCamp.