So you know the fundamentals, the basic structures of programming. But now you're stuck. You're asking yourself, "I know this stuff, what do I do next?" My answer to you is: Build something! And you don't have to build something massive. The goal is simply to play with what you know and have a bit of fun with it.
I'm not going tell you what to build. My intention is to provide you with a few suggestions to help you approach the task of coding something from scratch.
Suggestion 1: Start small.
At first it can be tough to break problems down into parts solvable by code. So start small. You start by asking yourself a question like, "If I had a list of music artists, how could select the name of my favorite one?"
You can then start asking yourself questions about the parts you need to solve your problem. You may conclude that you want to write a for loop that checks for a particular artist. Or you may decide that you want to create a function that can take a list and an artist that can find different artists and search through different lists.
Once you've have the idea for the core functionality of what you want to build, dig in!
Suggestion 2: Just build it.
Make it your goal to finish what you've started. Don't start worrying about the 'right' way to do it. This is very tempting at times but it distracts from the true purpose of this process: To exercise your particular creative problem solving process.
And remember, hitting snags is a good thing!
We often think that success is when we are able to get something right the first time we do it. But this attitude minimizes the very real learning benefits of making mistakes and 'failing'. It's important to know that an error in the browser or in terminal can be considered a 'fail', but that error is a path to more information about the problem you are tackling than any successful attempt alone can offer.
Suggestion 3: Refactor and Refine
When you get to a place where your project handles the core functionality that you set out to create, then you can go about refactoring and refining it. Start by asking yourself questions like: "Is this code clear?" and "Is this code concise?". It is also the time to use what you have learned in the course of building your solution to clean up and refactor it.
Another option you have at this point, depending how challenging you feel the original project was, is to add another feature to your application. And you can repeat this series of adding a new feature and refactoring it to your heart's content. It is up to you!
There you have it! I hope this helps you along on your journey.