Take the 2-minute tour ×

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?

share|improve this question

closed as not constructive by gnat, Glenn Nelson, maple_shaft Mar 13 '13 at 19:44


sometimes it is best to just experiment with the stuff you are trying to understand, (and keep a debugger handy) –  ratchet freak Mar 13 '13 at 18:04
One of the challenges (benefits?) of our field is that there is rarely a single absolute correct way to solve any problem. –  Dan Pichelman Mar 13 '13 at 18:10
Hi James, I closed your question as Not Constructive as it is currently worded will lead to polling for opinions and discussion. This doesn't lend well to the Q&A format. I invite you to try and edit your question per the FAQ to potentially have it reopened or you can visit the Whiteboard chat room and have a discussion there. Thank you. –  maple_shaft Mar 13 '13 at 19:48
Joining an Autism / Asperger's community may help. While not specifically focussed on programming, you'd likely find applicable + helpful advice. With regard to video programming courses, check out Coursera, Udacity or EdX (all currently free). With regard to reading articles, I would say practice makes perfect (or at least a little better), but I can't really comment without much more details about your current situation. –  Dukeling Mar 13 '13 at 21:08
With regard to the cycle of learning, try to find a balance between understanding and copying. Actually finishing projects occasionally is also important. If that at all helps. With regard to the industry, places vary greatly. You'll just have to find one that's right for you. –  Dukeling Mar 13 '13 at 21:10
add comment

4 Answers

You already said that a great many problems you experience are related to your aspergers, and identifying what causes your thought processes and challenges is the first step towards learning to deal with them. I would recommend you find someone who specializes in helping people with Asperger's and related conditions, and let them help you organize your workflow and learn how to deal with your limitations, and make the most of your strengths.

Good luck with this process.

share|improve this answer
+1 for learning to deal with limitations. Sometimes I think the diagnosis can be a lot more crippling than the actual problem. Not to downplay the difficulty of Aspergers, but I know a few young kids that have been taught to use it as an excuse from responsibility for their actions. –  Phil Mar 13 '13 at 19:46
add comment

As Paul said, get help. You'll wonder why you waited so long.

Regarding looking for the "right way", the only thing that makes any particular way "right" is if it works. Don't just settle for people's opinions.

Authority is the bane of this business. If you've got some author on a pedestal, knock him off. Instead, look for the reasons behind things. Half the time, they are good reasons; half the time - they're hot air.

Advocate for yourself. I had a student with severe dyslexia. When taking a test printed on a dot-matrix printer, it took him forever. But he knew he was good and wasn't going to let it hold him back. He requested un-timed tests. He did very well, and moved on to a successful career.

share|improve this answer
add comment

Have you tried learning by documenting?

For example, when you start a new project, start up some documentation, like a wiki (Github is great for this), and store links to the best sources on whatever you're trying to build there. Also, keep one window open to draw.io in your browser, so you can diagram out the concepts as you're figuring out what's going on (I do this alot when figuring out networking concepts... the Clipart/Computer library is my favorite).

Write down how you're going to build whatever you want to build (and diagram it too) all in your documentation wiki. This is a good idea for 2 reasons:

  • You don't have to start from scratch when it comes to re-learning the material
  • It helps you keep track of the 'learning dependency hell' and possibly mitigate the stress, since you know all the important and best links are saved somewhere other than in google searches.

(FWIW, I don't have Aspergers, but learning an entirely new concept or language is often a very frustrating experience for me, and this method helps me cope. I'm also very forgetful, and the fact that everything I've learned is documented helps me remember)

share|improve this answer
I like this. I'm seriously going to give this a shot! –  James Jeffery Mar 13 '13 at 18:54
add comment

If videos help you, what about college courses? If you dont want to make such a large investment, many lectures can be found on youtube.

It may also help you make the transition into industry if that is your goal.

share|improve this answer
add comment
