I have Aspergers Syndrome, and a effect of Aspergers for me is that I can find it difficult to understand concepts from reading material unless I have some idea or mental visualization about what it is I'm reading - which is often not possible because most the time we read something because we don't know about it in the first place. But, I have to be able to grasp something visually in my head to understand it.
I've been programming for a long time (although I stopped programming for 12 months to being charged with a Computer Hacking offence). I've picked up a lot along the way, but also forgot a lot of concepts I don't use often. When it comes to re-learning the material again I have to start from scratch and face the same learning challenge.
I tend to find video training courses are easier for me to grasp. Although a lot of video training courses on programming languages don't go into great detail on certain concepts it makes it easier to understand a concept when I pick up a reference manual or an advanced topic book.
One thing I find difficult about learning from articles online, or even from the MSDN reference, is that whilst reading there will be a number of topics in the article that I don't understand so I have to pause reading, go to Google, learn the things I don't understand from the previous article, then go back to the previous article. The thing with this approach though is you tend to get stuck in a sort of dependency hell where you're constantly going to Google and other articles before you start traversing back to the original.
I have a nasty problem with pride. It's like everything I learn I want to learn the absolute correct way, and if it's not I don't want to know how to do it at all - again the problem with this is there is no way of knowing if something is correct if you don't know about it in the first place, but it limits me to only learning from credible sources. I fear from learning something the wrong way, or learning bad practices that will get me mocked as a developer. Again this is all part of my Aspergers and not something I can completely control.
I will often start a project, and if there is something I need to learn, I will pause it to learn how to do something and come back. The problem is I rarely come back to the project because I'm stuck in a cycle of learning. Again, it's the whole pride thing again. I hate copy and pasting other programmers work without fully understanding what it is their work is doing and if there is any way I can improve on it.
Having never worked in the commercial industry I have no idea how it works in the work place. I'm not confident to work in a commercial environment, even though numerous friends who are programmers have said I'm more than capable. Infact, these friends consult me constantly for help on programming topics - yet they work in the commercial environment. But again, I feel this is the Aspergers.
I'm trying to find a method of working and learning that boosts productivity and get out of this cycle. Any advice from other programmers or programmers with Aspergers?