Anyone familiar with any research in the area?
This will cost money.
0. Tell people what you want to create . Via those people (or the internet) try to find someone who could create that. Find some master CS student or a final year bachelor CS student.
1. Ask that person to become your teacher, and vet if he's a good enough one on one teacher. The first thing that person should do is create a tailor-made curriculum for you. Pay them about 12.50 to 15 euro per hour (in Europe, can't say about the US).
2. Once he made that curriculum, vet it with someone else who also has the skills. Incorporate feedback where you see fit in consultation with your teacher/coach.
3. Now the curriculum is set. Follow it religiously, even when it gets boring at times (note: it's really key you vet your teacher at curriculum/teaching capabilities).
4. As you're following your curriculum, there will be moments where you get unbelievably stuck. Struggle a bit, but if you struggle more than a few hours then ask your teacher for help.
5. Rinse and repeat until you've build your project.
Now you have a foot in the programming world and you can progress on your journey however you see fit. Note: you've only paid the teacher for Q&A time and for designing the curriculum.
If you find this a good idea, then state so as a reply. Then, it's possible for HN people to reply to you and offer to become a teacher. I'll be the first to offer myself as such a teacher, but you don't have to feel any obligation to choose me. I'm serious.
I think this would be the best way to learn programming. I still need to set this in motion myself to learn math. So if any math coach/teacher is offering him/herself for 15 euro's per hour, I'm all for it :)
My email is in my profile.
 e.g. a Kickstarter for refugees in your country
In my opinion, you just build projects incrementally. Over and over and eventually you'll be amazed at how far you've come.
Shameless plug, I have a website for learning to code in my https://www.codehawke.com
You can find a certain book about learning, which must be backed by sufficient scientific evidence, and then you can get more relevant content by using Amazon book recommendations, and the references in the back of this book to gradually acquire the latest knowledge in this area.
Of course every industry has some distinctive experiences or informal rules, but those things are often not the way to learn, but one of the materials to learn.
And don't expect anyone to give you the best study plan, because studying is a very individual thing, don't try to copy other people's experiences.
Reading relevant research gives confidence and allows one to avoid a lot of obvious mistakes, but it doesn't mean one can find a panacea, hard work is necessary.
So I don’t know if anyone has studied this with programming but I suppose every course and book that chooses the order of topics becomes an experiment in how well the brain absorbs concepts in that order. Find the highest rated programming material of any language and take note of its table of contents.
Personally, when I got started I learned by modifying existing programs, mostly games. I started fiddling with constant values (say, gravity). Then finding calculations and tweaking them (odds of a reward for defeating an enemy). It’s a lot more fun than starting from “Hello world”; I’ve always wanted an assignment series based on hacking on an open source RPG.
You will save a lot of time by not having to unlearn and learn again basic stuff you should have gotten right in the first place.
In theory this works, but in practice usually people who could be really good "personal trainers" for programming are either super busy/expensive to give lessons or not really good at teaching.
In other words, just dive in and figure it out as you go. Following any sort of "way" or methodology will slow you down.