I did a lot of CS out of passion as a child but leading up to high school I was around such uniquely skilled group of friends in the field that I felt that I should pursue EE as I felt so out-skilled as a programmer. It only took me a single year of university to realize that EE was NOT my calling. I've never had so much completely fail to instinctively "click" in my brain compared to my peers. Meanwhile I was practically teaching the CS courses to my peers. I found that computer engineering was the perfect intersection for me because it let me explore so much more hardware and low level stuff without requiring analog dark magic that for whatever reason even the simplest of principles my mind couldn't grasp. I still really wish I could have gone on to make super clean headphone amps and all that but it turns out there really are just some things you can be "naturally" good and bad at, and for me it clean code not clean circuits.

edit: +1 on the "I just started bruteforcing" part of getting frustrated with everything. It was not a good way of learning but even after switching programs I found myself preferring to just bruteforce problems I had lost hope in thinking through to completion without running into a mistake that'd require me start back over from the top when I have 200 of the same type of problem to do after. So much mental effort would be wasted trying to "get" things I just wasn't getting that I started to getting more satisfaction mentally from just managing to get the solution without doing the effort of doing it "right" (ignoring that my methods of bruteforcing would probably still take far more time and energy, it was at least something that didn't hurt me spiritually on every failure).