If you are serious about it:
After you learn the basics (what is a string vs an int vs a float vs a loop vs an if statement), grab a pencil and notebook and go through the CS50 MIPS manual ASAP and complete all of the exercises without using stack overflow. After two or so years of initial learning, I never felt like a real programmer, and never felt like I understood the "whys" of what I was doing- going through this manual (it's free online) changed that: you will be forced to plan out everything on paper, and really think about what you're trying to do. I can't think of a time investment that I got more return on than my time going through that manual.
Try to make something that works in the real world as soon as you can (a web-page, a mobile app, a web-app, or whatever is most relevant to what you're learning).
Being able to create something that works - no matter how simple - can be a far stronger motivator that simply checking off a curriculum's requirements.
Always go beyond the curriculum. The free courses out there are so similar, that it is not enough to differentiate yourself against others who have done the same course.
You also need to do more than just 'code' or 'program' these days in $CURRENT_YEAR if you are starting out as a new programmer.
When you first come into this line of work you will see your work as synonymous with writing code. Nothing could be further from the truth. Code is a liability, software is an asset