Are you sure it's just the technical part that goes wrong for you in interviews? If yes, good going - solve problems, learn from approaches taken previously, ask on SO/P@SE wherever relevant. I suggest you check out TopCoder - there are some fantastic tutorials and great problems to solve. Also, if you are particularly keen at learning some subject, say, neural nets for example, try implementing one for solving your own problem - that way, you'll actually be working out ALL your "programming muscles" at once. Though I don't always go for TDD, in your case, it should actually help.
All programmers are learning something or the other constantly, so you're not alone! :)
Project Euler is a great place to hone your problem solving and mathematical skills.