Collision detection is dirty work.
For example, you can spend ages getting a system working that detects collisions for any shapes, but then you have an object travelling at huge speeds and have to get around that as well.
Perfect collision detection is not something that can be ‘perfectly’ done with a computer. It is one of several things that only work in the real world.
And even close-to-perfect requires lots of work, and is slow for any real use cases.
Collision detection algorithms are really just “How can I cut out as much time as possible while still getting the same results”.
By all means, learn it if you must, but don’t expect it to be perfect or clean.
Finally, a thing to note is that 99% of players won’t be able to notice the difference between complex polygon-polygon collision and simple AABB-AABB collision. (You may of course need to put multiple AABBs together for each model)