In a way that doesn't invalidate how much that part of the experience sucks: yeah that's part of programming too. Your experience isn't bad because of some flaw in yourself, some projects just really are Like That.
i'm afraid to try different approaches, because i don't know if it's faster than bruteforcing my way through a problem.
This is one of the hard balancing acts that we have to learn as we get more experience programming. 2 decades and more into programming and I still catch myself over-optimizing something or writing an abstraction when I should've just done a straightforward implementation. Each time is just another refinement to how long you give yourself to think of an alternative approach before cutting your losses and doing it the easier-and-messier way.
The main thing is to not fear trying—it's okay to try and approach and find it didn't work, that's how learning works! That time spent going down a branch that you drop is not wasted just because you don't keep the code around. The information you learn while exploring that branch stays with you, too.
i wish i know how to effectively figure out the best approach to a problem, the best tools for the job, and stuff.
This is primarily a function of time rather than skill. You have to have seen the best approach or have had time to come up with it yourself independently. Over time you'll start to see familiar shapes that repeat themselves in many projects—that's when you can say "Oh, wait, this is just X again, last time I did Y to handle it and it worked well/poorly".
maybe it's my fault that i don't trust anyone's technical abilities.
It's easy to fall into a trap of thinking most people are bad at the job and can't be trusted, but that's not really true, and the people who take that feeling to heart are difficult to work with. At the end of the day trust involves risk and you gotta be okay with someone else failing to do what you trust them to do.
The main thing for me is to remind myself that "they aren't being bad at programming to spite me". It's a problem I may have to deal with, but it's not directed at me and they may even be as frustrated as I am with it.