Lots of good technical starting points here. I don't want to prematurely discourage you, but before you get into any code, evaluate your problem solving abilities. If that is an area you struggle in, work on that first, or at least in conjunction with programming basics.
I've worked with engineers who have all the code skills, but when faced with a complex issue, struggled to break it down into it's simplest components and wound up with a messy, over-engineered solution.
Sounds a lot like hyper-focus to me too, but like most traits shared by ADHD and Autism, there are probably some subtle differences. Personally I find the inertia terminology to be more representative of my experience.