I've noticed, programming isn't always about writing the code. It is visualizing what it is you are trying to make. Think of it like a board game. You have to learn the rules, learn about what makes each piece unique, playing the game, winning and losing. In this analogy, the rules would be the syntax, each unique piece being unique would be the libraries available for it. As playing the game is actually doing programming. And winning and losing goes hand in hand with the programming itself. What I mean by that is, you will run into issues with programming and that is fine, you can't expect to write the code perfectly every time. Not even professional programmers do that. That's why they have application and game testers, to find the bugs that they didn't see while programming and testing themselves.
Just an anecdote that is kind of a side note here, I will always say I hate programming but fun. The reason I say this is because, programming in itself inherently is difficult to master. Not saying I don't like a challenge, but wrapping your mind around certain concepts is very difficult due to you needing to change the way you think. Overcoming challenges is the main driving force behind immersing myself in programming.
Just an anecdote that is kind of a side note here, I will always say I hate programming but fun. The reason I say this is because, programming in itself inherently is difficult to master. Not saying I don't like a challenge, but wrapping your mind around certain concepts is very difficult due to you needing to change the way you think. Overcoming challenges is the main driving force behind immersing myself in programming.