Hi Dustin,
Thanks for your post. I have a lot of thoughts about what you wrote. Here goes:
First of all, I think anyone can learn to code, so I don't think
you should believe that you lack the needed cognitive ability or intelligence. In Chapter 1 of my book, I write about how if you can catch a ball, you've already mastered an algorithm, and it only takes a few lines of code to capture the movement of the ball through the air. Algorithms and coding don't need to be difficult, and it's always possible to start with some simple ones that anyone can master before moving on to the harder ones. I think quite often, when people struggle with math or coding or anything else, it can be because they feel intimidated or they tell themselves they're not good enough, not because they actually lack the abilities. If you can get past the mental blocks, believe in yourself, and just as important, put in the hours consistently, you can definitely learn to code.
Next, some more good news: my book doesn't use any of the common features of object-oriented programming, and none of its examples rely on polymorphism or inheritance that you say you've struggled with. Many of the scripts in the book are quite short, around a dozen lines, and are meant only to do some very simple problem-solving tasks. So, there's no need to worry about the transition to OOP in my book.
You mentioned creating a knowledge base web application. That sounds like a really serious undertaking! Web applications, especially ones with serious databases, often have many moving parts, and rely on many tools in many languages to work properly. I would think that if you feel like you're at a beginner level, you should take on projects that are simpler and can be contained in a simple script using only 1 language. The examples in my book would all be simpler than a full knowledge base web application. On the other hand, the examples in my book are meant to illustrate algorithms, not necessarily to build large-scale projects like you might as a professional developer. So whether you'll like working through the examples in my book will depend on whether you're interested in learning the ideas of some common/interesting algorithms, or whether you would prefer to work more with practical, deployable projects.
You mentioned google-ing things and taking someone else's existing work and tweaking it to be your own. I wouldn't worry about that - it's a common coding practice! Of course you don't want to steal intellectual property or do anything illegal or immoral, but there are many freely available code examples online and even the best coders will simply copy and paste them when it's appropriate. That's why we write books about coding, after all, so that we can provide more examples that people can use, copy, and tweak to be their own.
You mentioned being legally blind. Actually Daniel Zingaro was here doing a book promo just last week, and he is a computer science professor who is also legally blind. I also knew a fully blind man who worked writing code for the government, and he seemed to have lots of success at his job. I don't know much about vision impairment but I know that doesn't need to stop you either.
To sum up, I think you can learn to code and I think the examples in my book could help you. Keep in mind that my book doesn't include full-scale applications, but rather shorter scripts meant to accomplish littler tasks. I hope that's helpful. Good luck! and best regards,
Bradford