Relax. That's true for 99% of all programmers.
Eventually I plan on going back to a real University and getting a CS degree
Absolutely not necessary. You will probably learn more building anything than learning it in school.
I'm starting to think I may have a learning dissability
Maybe you do, maybe you don't. Just because the rest of the world is quick to diagnose everything doesn't mean you have to.
I have come to accept that I'm really not smart. I'm slow, forgetfull, concepts never seem to stick
Your performance shortcomings could be for many reasons. Being "really not smart" is the least likely of any of them. They are much more likely caused by other things like uninteresting work, poor environment, personal issues, nasty people, or even health issues. Whether you're "smart" or not, thinking that your aren't is pretty much a guarantee for failure. Please don't do that.
I have started going through the basic Algo's and Data structures again with a basic Java book about algorithms
Sorry to say, but you're just doing it the hardest way you can. You don't need a book; you need a project. I (like many others here, I'm sure) have achieved much, but have always had difficulty learning from books and theory. It's hard! You need to find work where the things you need to learn will be required. Funny how quickly and easily you'll find a way to learn them when you actually need them. I'm not sure how you should go about finding such work, but I imagine many responses in this thread do.
I just don't want to be a cargo cult programmer anymore.
Good. That makes your normal.
And finally trying to memorise all those linux commands I ALWAYS forget.
Then use less commands. I have never used more that 10% of what was available in any technology and I always got the job done.
I have to force myself
This is the most important thing you have said.
Have you ever actually enjoyed building stuff? Have you ever gotten really "jazzed" about the project you were working on? Have you ever leapt up out of your seat and danced when you got something working?
If you answered "yes" to any of these questions, then you really do have the passion to be a programmer. Stop selling yourself short and listen to the great advice you're sure to get here from fellow Hacker News'ers.
If you answered "yes" to none of these questions, then there's no sense for you to continue wasting your time searching for the passion. If you haven't experienced any by now, then you probably never will. No one should have to "force themself" to love what they're doing. Find something else.
P.S. Sorry about your father. Loss affects each of us differently. And don't worry about your English. It's fine. Please give yourself your best chance to succeed and keep us posted. Best wishes.