Before I start, I just want to say this may not be the best for everyone. This is just the way I learned and I taught some others. I feel like this is a good path to follow if you want to learn programming but don't know where to start. I won’t be going into the specifics of what classes to take or what projects to make but I’ll try to help get you on track to learning programming by yourself. First, choose a language. To be completely honest, it doesn't really matter at this level. Every single language out there can help you teach the basics. If you are just learning the basics, I would recommend a high-level programming language. Higher-level languages are easier to understand and are less complicated. If this is your first language, you probably don’t need to learn things like memory management and you don’t need the best performance. If you want some recommendations, start with Python. In terms of how to learn, try to find a good course/youtube series. For Python, the freecodecamp 4-hour long video is great for the basics. If you have any problems with programs, start using Stack Overflow, it’s a great resource and will help you a lot in the rest of your journey. In my opinion, OOP(Object Oriented Programming) is the next step. The basics of OOP is that everything is an object, from the program that you write to custom classes you make. While this is not a necessity, it adds some structure to your programs that you can use to make your code shorter, more readable, and make more sense. The language I think is the best for OOP is Java. I learned Java from a great course on Udemy but I can’t seem to find it anymore. It may be hard with what’s going on with COVID-19, but if you are between 6th and 12th grade, consider starting a FIRST robotics team, specifically FTC. In short, you design and build a robot, then program it to do different tasks. As the lead programmer on my team, I learned a lot and got to reinforce the basics. At this point, you should have a pretty basic understanding of programming, and you should understand how to work with your language of choice well. From now on, you will mainly be integrating your programs with the real world. Whether this comes in the form of console applications, IoT devices, or a GUI interface, you will mostly just be trying to find ways to use your programming language with other interfaces. If you want to use APIs or try to interact with the real world, it will be the easiest with Python. With the giant community and countless unique packages, there will be a package for anything you want(no seriously). From here you have many different options. You can decide what project you want to do and you can learn what you want to learn. ​ If you have any questions about specific things like questions regarding how to get started or help with a specific project, feel free to ask me about them in the comments and I can try my best to help. ​ tl;dr: learn a high-level language, maybe learn OOP, start making projects, if you have problems, use stack overflow, and you'll learn a lot along the way ​ Good luck and happy coding!