I am not a teacher. I'm an adult with learning disabilities. I have autism and memory problems. As a child, I was way behind and stuck in SLD, where the teachers had little interest in teaching, so I learned nothing. Nor did I have an interest in learning, until I.. Well, had stolen a science book from a class room, 3 grades up, and I began doing the work out of it on my own for fun.

Now I'm an adult and have made nothing of my life but I've found a new obsession and that's to learn everything I can about computer science, but it's not that easy to teach myself. I find it frustrating but I keep going. My question is, is it even possible for someone like me (who can't even do math) to learn, remember and deploy what I learn? Should I just give up? I would like to have a job in the field some day, but I feel I'm just not good enough to try any more.

  • 2
    $\begingroup$ Do you have anyone that you trust to advise you? Especially a trained counselor? I'll have some advice in a bit, but it would be good to know that, at least. $\endgroup$
    – Buffy
    Nov 17, 2018 at 18:45
  • 3
    $\begingroup$ No I don't. I'm doing this all on my own. I don't even have friends. I've got Google and YouTube. I wish i could afford to hire a teacher but disability isn't enough to eat off of consistently. Some simple work books that are inexpensive and for beginners would be good but i don't know where to start. $\endgroup$ Nov 18, 2018 at 18:49
  • 6
    $\begingroup$ I would bet that most successful programmers are 'atypical' and learned mostly on their own. That makes you normal. $\endgroup$
    – Scott Rowe
    Nov 24, 2018 at 17:16
  • $\begingroup$ Keep it up. Success in this field is all about puzzle solving over time. I found that the hyper focus and limited panesthesia that comes with autism is a great aid for learning these concepts. I compensate for my memory and language processing issues with copious amounts of whiteboard drawings and notes. $\endgroup$
    – pojo-guy
    Nov 27, 2018 at 13:36
  • $\begingroup$ @ScottRowe Facts. Anecdotally, I’d guess that half of all programmers in the bay area are on the spectrum. $\endgroup$
    – Navin
    Mar 23, 2022 at 11:39

6 Answers 6


Do it for the fun of it

You say that you have made nothing of your life; You say that you have an obsession with learning CS. If so then what does it matter what the outcome is. If you enjoy it then continue to learn.

It's not you

I used to have a learning disability, but then I got a new teacher.

You seem to blame your self. Autism is not a bad thing, is is a different thing. Just because you teachers did not know how to teach you, it does not mean that you are unteachable. You showed that, when you stole that science book. I did the same think with a maths book, when in year 6. I was expected to work my way through what seemed like an endless supply of maths books. One day I took the last book several grades above where I was working. I was motivated and completed the book, I then stole the teachers grading book and marked it my self (the teachers would not help). I had got close to 100%. It was at this point that I realised that my disability was the teachers. Shortly after this I changed school, and made a lot of progress.

Autism and programming

As a software engineer I worked with a lot of people. I have Dyslexia, some were normal, some were jerks, some had autism, etc. The people with autism and some others, were not good at working with the wider company, but were very good programmers. We protected them from people they did not know well, because we valued them. We could give them jobs that they could do better than the rest of us. Everyone has strengths, but they are not all the same. Don't judge yourself or others by what they can not do, but by what they can do.

What to learn

Most importantly learn what interests you.

You have a massive advantage, because you are not aiming toward exams, or work targets. These often cause people to take short-cuts across the swamp, and to get stuck. You can learn in a way that maximises learning.

“Someone like me”

If you believe you can, or if you believe you can't, then you are correct; Your belief in your ability has a very big affect on what you can do, so carry on with you positive thinking. And when you mess-up (because you will; we all do), then just try again. Success is the ability to continue in the face of failure.

Have a watch of this video https://www.ted.com/talks/carol_dweck_the_power_of_believing_that_you_can_improve?language=en

  • “Success is the ability to continue in the face of failure.” (thanks to clive in the comments)
  • “SUCCESS consists in staggering from failure to failure without loss of enthusiasm.” (found by me, probably once said by someone famous)
  • $\begingroup$ Have a look at Gnu/Linux. Debian is good. You may find it less frustrating than Microsoft's Windows, there is a lot to learn, and the journey is easier. $\endgroup$ Nov 18, 2018 at 15:15
  • 2
    $\begingroup$ "Success is the ability to continue in the face of failure." I will steal that aphorism and use as much as I can. $\endgroup$
    – Clive Long
    May 12, 2022 at 11:54
  • $\begingroup$ "some were normal" << who are these "normal" people? I keep hearing about them but I've never met one $\endgroup$
    – Stef
    Feb 10 at 21:31

This may take more than one edit to finish. Please be patient.

There is no reason to give up. There are many highly ranked people in the CS community who are pretty far out on the autism spectrum. But they have learned to act productively. With effort, you can too. But it takes a lot of effort, as you know.

My first recommendation is to develop a skills assessment for yourself. What do you do well and what do you find hard. Your assets and liabilities. A trusted advisor can help you with this as he/she can see things that you miss. Then you want to apply your strengths to help overcome your weaknesses.

The most important thing, in my view, is not that you achieve any particular level of competence, but that you develop a satisfying life for yourself, whatever that is, and whatever that takes. Your post seems to suggest that it will include pushing yourself as hard as you can.

Since you believe yourself to have both poor math and CS skills, you may need to work on both of those. But you can do it together, and a bit at a time. But if you have a typical case, one of your strengths is that you can focus intently. That is helpful in both math and CS. Work on some CS idea/problem. If the math gets sticky, then go to that for a bit to work on the basics. Your progress may be slow at first, but that is true of nearly everyone.

Don't depend on memory alone for learning. Take lots of notes - and I recommend paper notes for it, not computer notes. Writing out ideas is a form of practice that will solidify the concepts in your mind. When you are out wandering about, make sure you have something to write on - such as a few index cards, on which you can capture ideas.

If social interaction is a big difficulty for you, you should also find ways to work on that. One way to interact with people without losing yourself is to learn to role-play the way actors do. You try to "become" someone that can interact freely, just by pretending you are someone else who has that skill. An important CS researcher/speaker/writer developed these skills by joining an acting group in which the roles were formalized. He is an excellent public speaker now. It will be psychologically very difficult at first, but this idea has been used successfully. I don't have quite the same difficulty, but improved my social interaction just by forcing myself to speak when I'd rather just "hide."

One thing you may need is an academic guide. The classroom may not be your most comfortable environment, but the stated curriculum of a college can give you a sense of what is important to learn so that you work toward meaningful goals.

(I'll try to improve this as I think of things)

  • $\begingroup$ The point about getting a trusted advisor to help with the skills assessment is very good advice. I work quite a lot with students with autistic spectrum disorders (and am on the waiting list for a formal diagnosis myself), and they often have unduly harsh assessments of their own qualities and skills. Society tends to be very free with criticism and praise is often given more implicitly, it would be better if both forms of feedback were given more directly in a balanced manner. $\endgroup$ Apr 2, 2022 at 9:37

Yes, I think you should stick with it. There is much you can learn and achieve.

There are different routes you can go depending on what you are comfortable with doing. You could continue to learn informally or you could try and enter a formal program of education at an appropriate level. As mentioned by @Buffy it might be useful to have someone who can assist you in thinking about the best path.

It also depends on your final goal - do you want to just work with computers or do you want develop new computer hardware or new computer software, or do you just like the problem solving?

Some paths to working with computers, particularly computer science might need some school level qualifications in things like science, maths and English. Although you found these hard before, now you are older you might be able to make progress. I don't know about your locality but in many areas there are colleges that can help adults who are late returners to education to get the necessary catch-up.

However it may not be straightforward for you. I know some adults on the autistic spectrum have had such traumatic experiences in earlier school that returning to formal study would be one of their stress points.

The start for computer science is to begin with the basics and learn how simple computers work and not get bogged down in the detail of modern computers. You can then build up from that basic. Building computers from parts, installing operating systems and doing hobbyist activities, perhaps by finding a local group is also another possible route.

There is so much to learn by just working with computers that I (and others around here on Stack Exchange) have been doing it for some considerable time (half a century) and still learn new stuff about computers every day.

I think if we knew more about what motivated you we could give less general answers, but I wanted you to see that someone was thinking about how to help.

PS: I do work in higher education with students with learning disabilities, particularly on the autistic spectrum and see success stories every year.


I have to note that this question cannot really be expected to result in generating any other answers than "no, you should not stop and never give up, you can do it" phrased in slightly different flavours, as any answer telling you to do otherwise would most probably be considered a violation of this site's code of conduct. The way this question is formulated is personal and therefore it is impossible for you to receive the full spectrum of ideas.

Having said that, I would advise you to consider different possibilities. It depens on you where you feel like you could continue in the face of difficulties, and where is the right moment to give up. Life is such that one cannot reasonably expect to achieve any success without difficult struggles and resilience. However, there is absolutely no reason for anyone to force him/herself to continue sacrificing his/her time and effort on something that does not result in any measurable progress. We are all born with our distinct set of strengths and weaknesses, and acknowledging them is an important step in personal growth and development. One of the most important signs of emotional strength and maturity is being aware of one's limitations, acknowledging, and accepting them.

In conclusion, I would encourage you to try it out and have fun learning, but at the same time I would completely advise against "never giving up no matter what" because that is just an one-dimensional, simplified non-answer platitude that cannot be reasonably extrapolated from answerers to your individual circumstances. Therefore, don't get discouraged easily, sacrifice a fair amount of your time and effort if you face any difficulties, but always remember that it is okay to give up and try something different if you decide that you don't feel like learning that anymore -- nobody will blame you for that. In the world, there are limitless ways of achieving fulfillment, and always have in mind that learning programming is just one of them. For example, could a man 160 cm (5'3'') tall achieve success as an NBA player? Indeed, just look up Tyrone Muggsy Bogues. However, could any man of that height dreaming about be reasonably expected to never ever give up? Should he be blamed if he decided that he is just not cut for it? My answer to both of those questions would be "no". Bogues was an outlier, and remember that there are a lot of men who are above 200 cm (6'7'') in height, and still didn't make it to the NBA. Have fun, give it a solid go, but never limit yourself by accepting the notion of "never giving up" to learn programming. The only thing you should never give up is finding your own personal fulfillment; whether it is done via programming or something completely different, is just a detail.

  • 1
    $\begingroup$ One sensible answer! Some ppl can sing, some can't. (Rhythm is related but different) Some can do math some can't. And so on. If programming were some unique exception to this that would be v odd. That said, for a question(er) such as OP, one would wish to find the right balance of compassion & objectivity $\endgroup$
    – Rushi
    May 19, 2022 at 4:23
  • $\begingroup$ @Rusi Maybe a few people can't sing, but also, many many many people don't learn to sing because they have been told that they couldn't sing. The idea that "some people can't sing" is extremely harmful. Same goes for math. Next time someone tells you that they don't like math, try to ask them since when they've known that they disliked math and if they can pinpoint what they dislike about math. Over 95% of the time you'll end up with the answer "my xth grade teacher made me hate math and convinced me that I sucked at math". $\endgroup$
    – Stef
    Feb 10 at 21:38

Never give up, never surrender.

I have a learning disability. The official diagnosis is low fluency. Functionally it means that I don't remember shit. Joking aside, my memory is image based. I don't retain words or numbers and my only hope of retaining an idea is to create a visual to hang it on. In grade school all of the standardized tests had me on the very low end of average, and all of the teachers thought I was a moron. Even after my discovery of programming and the knock on respect it earned me, I still struggled through high school.

But that struggle doesn't define me.

I got my first gig as a programmer because I could do the work. I was a professional developer for twelve years. I checked out after the Dot.Com bubble, returning to school with the idea of teaching. This is when I had the Ed-psych testing done and found that what I had been calling Autism and Dyslexia actually had a underlying cause. I taught myself techniques and managed to earn a masters degree in the process.

It has been another twelve years and I have seen just about every imaginable type of student in my classroom.

Anyone can learn to program. Anyone with a little drive can learn to program well. I have seen it in countless students. I have seen it in myself.

You can do this. Programming isn't an exercises in recall or memory. Every programmer leans into the code completion tools of the compilers while having a browser window open to Google and Stack Overflow. The only trick to getting good is to make it fun for yourself. For me it was building games. It may be painful now, but it will become easier. Little by little. Step by Step.

Watch youTube videos, following along and create their projects with them. Lean into sites like Codingbat and Hackerrank to build the reflexes. Don't let a week go by without writing some code.

When you get there, when you develop the chops, the person doing the highering isn't going to care about your back ground, or what your process is. If you can get the job done, it won't matter if Autistic is written down next to your name somewhere.

Again, Never give up, Never surrender.


"and I began doing the work out of it on my own for fun."

This is a great advantage for a programmer - you have your own motivation for doing it! As well as teaching programming, I also have hobby programming projects that I do just for fun. A lot of programming can only be learned by experience, so having the motivation to program is invaluable.

"(who can't even do math)"

Don't be too critical of your mathematics skills, you may find that at some point you find a programming task that needs more maths skills that you currently have and that gives you the motivation to improve your maths skills. That was definitely true for me - I was not particularly good at maths when I was at school, but as I went through my undergraduate degree and my PhD I had to learn maths to do things I wanted to do (first electronics and then machine learning and signal processing). Motivation is very important and often you just need to find it.

For getting a job in programming, without having formal qualifications, then getting a portfolio of software that you have written (e.g. a GitHub repository) may be a way of demonstrating to employers what you can do.

Another thing that may help is participating in large-scale open-source projects. You can learn a lot by going through code written by experienced programmers and understanding why the code was written in the way it was. You may also be able to make contributions to the project (e.g. tidying up code, bug-fixes or porting it to new environments). One advantage of this for people with autistic spectrum disorders is that the communication tends to be via electronic forums, where terse, direct communication is perfectly acceptable and there tends to be less subtext than in face-to-face communication. This may be good for confidence building and gaining experience in the team work and communication aspects of software construction.

  • $\begingroup$ @downvoter - some feedback on what is wrong with my answer would be appreciated. $\endgroup$ May 19, 2022 at 4:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.