I can only share with you what worked for me. Everyone learns differently. The only thing without a doubt that holds true for everyone learning to program is that you must deeply want to learn. Need to learn. If you go about passively learning then you'll get frustrated and give up as soon as it starts get tough. A few hours a week isn't going to cut it.