I already spent five years on the degree. In my last semester I was supposed to get my GPA up by about 0.1 so it would be high enough to pass, but even after putting more effort into my classes than ever before, and mostly taking easy classes, it only went up something like 0.02. So my effort is meaningless, and I have no control over my grades. (Well, I guess I could force them down if I wanted to...)

I already know that there's no help available for me from the university; I talked to someone at the student disability center about six or seven years ago, who said that there wasn't anything they could do to help besides offer some words of encouragement. I was actually offered promising-sounding help (the only time in my life it's happened) when I failed to graduate at the end of my fifth year, but it wouldn't have been possible for me to go back for a sixth then. Apparently, it was time limited and is now off the table, I guess.

I've always been terrible at memorizing things like spellings, definitions, formulas, or any kind of name (person, place, or thing), but I have no problem remembering experiences, processes, non-textual/numerical arrangements, or how something is used or applied. I might have trouble remembering the exact definition from a book, but I would know how and when to apply it, and remember where in the book it is, and that the definition starts on the left-hand page near the bottom, continues onto the next page, and there are two diagrams beneath it. So even though I could do whatever a class was about, I did poorly on tests because because of this. During my fifth year at the university, I did some testing with a psychologist, which included an IQ test, and the category which involved memorizing random numbers and letters was my worst result, where I got 25th percentile (contrasted against getting >=95th percentile on half the test).

This is the one place where I might have a better chance than when I first tried. Since then, I've learned about stuff like spaced repetition and Anki. There were similar flash card like things in the past that helped me memorize things in the past, so there's evidence that it would help me handle the required rote memorization better than before.

Unfortunately, this advantage would be outweighed by how much difficulty I have getting myself to do things. I'm not sure I would describe it as procrastination, since to me that seems more putting off stuff you don't want to do. While I do do some of that, it's more that I can't even get myself to do things I WANT to do.

It was already difficult for me to get myself to do classwork when I thought I had a chance. I did poorly on homework because of this, with most of it half finished. The one exception was during my final semester, where I was more motivated than ever before to graduate, since I knew how bad things would turn out if I failed. It was the one time I managed to do everything I was supposed to do (homework, study). I was so sure that I would make it work, and was willing to do whatever I could, but I got practically zero improvement to my grades, and failing to graduate completely killed what motivation and drive I had left. (This was worsened by just how bad the majority of other students I saw were.) There is no way I could put as much effort in it as I did before.

The only reliable way I've found to get me to do things is have someone else around. They wouldn't need to constantly watch me, or even really do anything, just be around to complain if I'm not doing what I'm supposed to. They would never actually need to do it, just be somewhere nearby so that there's the threat of someone noticing. I always did extremely well in group projects in grade school and college (even with a group project done exclusively online over chat), and I never, ever waste time at work.

While not as reliable, there are a few other things that help a bit. I've noticed I do a bit better if someone is expecting something from me. For example, if say that I'll make some kind of coding example on a message board, I think I've always followed through, even if it's not as effortless as having someone "right there". I always let myself down, I often let relatives down, but I will do everything I can to not let down a stranger or coworker.

It also helps is to just not be home. I guess I have a different mindset in other places. While at the university, I spent a lot of time at the library instead of my room so I could get more homework done. I wrote 99% of this while sitting in my car before work/during break. Unfortunately, much of the hardware I program for isn't really something I can easily do in a small space without a table or power outlets...

I've tried some things I've found online to help with this, but they never paid off. I've done stuff like setting timers (i.e. like spend X minutes working, then Y minutes time off), but I keep finding that I never start, or keep fudging the timer. I've also tried subdividing tasks into very small, easy steps to make it seem easier. It hasn't been that effective; not all steps are equal, or can be broken down meaningfully, or I'd forget to start, or I just stall out on certain steps.