It took me 21 years to grok Test Driven Development. I had at least 4 false starts that I can remember. I'm still learning & getting better. It just "clicked" once I kept at it. I feel it's helped my designs. I couldn't have done it w/o a coding style I feel comfortable in.
If you too are struggling to understand it, or don't get why it's helpful, check out Dave Farley's Continuous Delivery YouTube channel. He covers a lot more than TDD, but he'll give you another perspective about TDD you'll dig. It doesn't matter if you're Object Oriented, Functional, or imperative, he speaks to us all.
Another one of his takes on when your spidey sense says "something is wrong here":
Tons more programming content on his channel that's worth your time.
Another perspective is one the cats from the TestDouble crew, Justin Searls. He has a super set of videos covering the strategy (why), tactics (how), and everything in between of good/bad. This is one of my faves about over mocking:
He's also got many other videos that are SUPER comprehensive about real-world scenarios.
Finally, plugging mine. These should give you another perspective in the best and worst programming languages there are, with actual coding.
TDD using Functional Programming in Elm:
...and TDD using Object Oriented Proramming in JavaScript: