Let's start with an advice: Focus your attention on 4 lines at a time. The main issue with programming is that when you get stuck and try to debug a thousand lines of code, you'll get stuck demotivated and you'll feel like Mike Tyson is punching you in the face.
Programming is hard. Programming is a struggle. It is a daily struggle. The more you learn, the more you'll have to unlearn. As soon as you become complacent, you'll lose your small hard earned 'lead' over other programmers etc... Just like bodybuilding or any other competitive field, there is always someone else building it faster and cleaner. You'll eventually get to the point where you'll be making decisions. But as a newbie, you should first learn by copying others, do not reinvent the wheel. You'll start by simply using a framework such as React, you'll then find yourself limited in what you can do, you'll then start learning the DOM api and relearn Javascript all the way up as it is mandatory in order to build better apps, faster. At some point, you'll start building your own apps from scratch without relying much from stackoverflow. You'll also start to see issues in some of the accepted answers in stackoverflow. At that point, you'll be able to justify and explain your technical choices. The more you'll learn, the better you'll become.
But don't think, it is a straight line, you'll plateau A LOT, yes a lot. And the secret, if it is one, is to keep pushing while you plateau, it is hard to get motivated but you'll have to keep pushing. The second app might be worse than the first. You'll forget a lot of things and think that you are not making any progress. But that's just an impression, the more you push towards your goal the more things will settle and you'll eventually become proficient enough to become employable.
Again, programming is hard and it is a struggle. You don't hit the gym to have fun. No pain, no gain, and programming is no different.
I'll give you one advice, programming is about taking an input, transforming it, and returning back an output.
input --------------------------> your_code_in_whatever_language_you_decide_to_use() ----------------------------> output
This is the reason why functional programming is gaining traction lately, as it goes from this simple principle and tries to make all the different operation in a program as pure transformations. Makes debugging easier. Ok, sorry I sidetracked, but I could talk for hours.