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 <i></i>think<i></i> 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).<p>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.<p>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.
Your job is not "code writer".<p>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
Don't be afraid to fail.<p>Failure is only when you cannot reflect on what went wrong and learn from your mistakes.<p>No one became an expert programmer overnight without 1,000's of mistakes unless you are a very gifted individual. (personal opinion)