If you're just starting to program, you might quickly understand variables. A variable is like a plastic container you label salt, sugar or Honey Nut Cheerios - it's a container plus a label that you can use to store values while your program is running.
e.g. var x = "This is the X variable.";
Variables are simple. It's a mapping of a label to a value.
You may know the syntax, but you need to be able to use it effectively in a running program.
Then, there are loops. Those aren't hard. It's repetition. But, counting from 0 and other little things need to be practiced so you get the actual result and not just understand how it works.
The great thing about code is that you can get instant feedback. So, why not take advantage of that?
Putting lots of code together.
Less experienced programmers start to lose it when the code gets bigger. They start with small pieces and get them working. But, imagine if you were trying to build an actual house out of Lego™. Small projects are easier, but larger projects quickly become fragile. The structures don't have enough strength and integrity to bear a load. So, different materials like wood and steel are used and system architecture becomes an important component.
To get better at being a programmer, you have to understand the code and be able to build larger things that don't break. This takes practice. It takes testing. There are structures and tests you can put in place to ensure things are working.
There are unit tests and integration tests. The unit test is making sure the light-switch is working. The integration test makes sure it's not installed somewhere out of reach.
The point of this writing isn't to teach programming but to reinforce a small distinction between learning and practice. Learning is getting knowledge you don't have into your head. Practice is pushing that knowledge into your fingers.
With coding, you learn for syntax and you practice for skills.