The problem I have now though is I'm using a new paradigm ECS which doesn't have many of the shortcut methods and tutorials so I do kind of need to know and understand matrices to manipulate things so yeah I would recommend you learn some of the basic stuff like others have mentioned its not really that hard.
Just to help you on your path towards gaining a better understanding, ECS really has nothing to do with mathematics. ECS describes how objects in memory are laid out, it's a method of organization and memory management, as opposed to "natural" Object Oriented Programming. it sounds like you are having trouble picking up linear algebra. If you go looking for tutorials on entity component systems, you won't find much help for what is confusing you. I recommend the book I posted earlier:
https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231
That will teach you what you want to know. Now, understanding how ECS works
is cool, but that's actually something that is more in line with the OP's topic title. you don't really need to know how it works to use it at all, unless you really, really want to get down and dirty.
EDIT: Just to add a little bit more, if you
are interested in how ECS works conceptually, it's a method of classification and organization for objects. The easiest way to think about it, for the benefit of this board, is that ECS works like the materia system in Final Fantasy VII. The buster sword is an "entity," it is merely an object with slots that can hold components (materia). Without those components, the sword is empty, and rote. But as you 'attach' components to the sword, the properties of the sword change. Attach a lightning materia to the sword, and suddenly it's a
lightning sword. Attach an all materia to as well, and suddenly it's a lightning sword that attacks all. All permutations of that sword with different types of materia are swords, but they're not
different swords. there is only one buster sword, and what we define that sword as can change.
This is in comparison to a "pure" Object Oriented Programming design, where objects are supposed to descend in a heirarchy. Under that model, we'd have a class called sword, and a "lightning sword" would be a type of sword, that is physically different than a "lightning-all sword." those would be two completely different swords.
The benefit of ECS is encapsulation and comparison. you can say "use a buster sword" and you're referring to all swords with every type of materia being spoken about. OOP heirarchies can work similarly, but you can run into problems of specificity. Under ECS, I could say "use a lightning sword" and the "lighting-all sword" might satisfy that requirement. Under "pure" OOP, depending on how you structure your heirarchy, a "lightning-all sword" might not be technically the same thing as a "lightning sword." The relationship between objects in OOP is called an "is-a" relationship, as in you, the programmer, have to specifically define every relationship. ECS lets you programmatically define relationships in a much more natural an obvious way.
This is all a super, suuuuuuper simplified explaination with a ton of nuance left out, but that should give you a very broad understanding of what ECS is trying to achieve. It all, obviously, get much more complex (and we haven't even talked about how this is implemented... and to be extra confusing, Unity's "ECS" technically isn't "ECS" lol)