2. What Do You Want to Create?
Most programming newbies quit within their first year. While there are many reasons for why someone would give up, perhaps the most important reason is that they feel overwhelmed by the learning curve and succumb to demoralization.
Programming is a vast field with hundreds of languages and areas to explore. Within each area, you’ve got dozens of different libraries and frameworks that you can use. And encompassing all of that, you’ve got higher-level paradigms and patterns that are applicable to different situations.
In short, you’ll never be able to learn it all, so it’s crucial that you decide what exactlyyou want to do. An amazing 3D graphics programmer could have zero experience making websites, while the best artificial intelligence coder may have no clue how to make mobile apps. And that’s fine!
Not only that, but certain programming concepts are more important for X yet not useful for Y. For example, MVC architecture is almost necessary for web programming, while the Entity-Component pattern is super useful for game developers.
The main point here is that your end goal (e.g. websites, games, etc.) will dictate your path of learning, so it’s better to know this from the start. Sure, you can always experiment and switch paths later, but programming is easier to learn when you’re coding something you actually want to create.