Ahhh - distraction and roadblocks are the hardest parts. I had some luck, in the beginning, as both of those things go. I started off with the books on https://inventwithpython.com - there's two free books there that teach you Python by having you make games - seriously fun way to learn programming - especially if you're not an abstract math nerd (which I'm not). I also just tried to work through all the tutorials I could find in general. I was lucky that I had a close friend and a partner who were both really into Python (though neither was super advanced at the time), so I did have some people to ask for help. I also have ADHD (though I didn't know it at the time), and when I started on programming, I was OBSESSED with it - as in it was almost all I did, and you couldn't get me to shut up about it. That obsession lasted a few months, and in that time I was able to apply successfully to the Recurse Center (https://recurse.com), which was called Hacker School back then. So I spent 3 months around 60 people working on their own things and pair programming and giving workshops and presentations; we also had amazing programmers come in as residents for a week at a time. So it was a great outlet for my intense distraction tendencies. It also gave me a way to pick up many things I wouldn't have gotten to on my own. On the other hand, I literally had two weeks where I literally couldn't focus enough to work on anything - that sucked!---------Here's some things that might help:1. Immerse yourself - books, videos, podcasts. tutorials, programming tumblrs, twitters, etc. This will help with distraction - cuz at least you'll be distracted by other programming things. 2. Set goals or set a daily time to work on programming. You need to put in at least 1 hr a day, five times a week, in order to make some basic progress. If you're not already there, then progressively build up to it. 3. Write things out with paper and pen - both for planning and when you're stuck. 4. Rubber Duck - talk to a person or object, and describe whatever you're stuck on. Just the act of verbalizing externally will help out (your brain does extra cognitive processing when you do this)5. Keep a log of what you do/did each day - you're probably doing more than you realize. 6. Realize that progress doesn't happen linearly - sometimes you move fast, sometimes you can't move at all. Just keep putting in tons of effort and you'll get somewhere. 7. Go for a walk - this does great things for your memory and processing skills, as well as for stress - it's often when you realize the solution to whatever you're blocked on. 8. Journal or blog about whatever you're working on - you'll start to understand it better as you write, and you'll have a clear picture of growth. 9. Books are your friend - initially, I only relied on Internet tutorials - books often have a way better quality of information, and it made those internet tutorials way less confusing. 10. When doing tutorials: manually copy/type out the code first; look through the code you just wrote out and try to understand it; compare your observations and questions to the author's explanations and analysis. Then try to solve a similar exercise, or try to write that program from scratch, without referring to the tutorial. 11. If you don't have IRL programming friends yet, hang out in online programming spaces and make some friends that way. 12. Once you do have IRL programming friends, try pair programming (essentially 2 people work on the same task together, one person controls the typing - though you can switch) - it's probably the quickest way to learn. -------Final note: if you're having serious problems with focus or distraction, it's worth getting evaluated for things like ADHD or a learning disorder, etc. - my entire first year of progress was held back a lot by undiagnosed and unmedicated ADHD. It made many things really hard to understand, and often meant I was overwhelmed or couldn't focus. Good luck - hope this helps!!