> TDD won't improve your proficiency
Disagree. Knowing that you need to test your code, and going back and testing your old code gives you a real feel for how to split out code, how to write interfaces, and how to organize your objects - at least in Perl and JS, which are the languages I'm proficient in.
If you know that your routine that'll be accepting an object might be accepting a mocked up object, you're more likely to resist the temptation to get all molesty with its private methods; if you know you'll spend time trying to drive up the code coverage, you'll be more inclined to abstract and not repeat yourself.
Random plug for a book that made me a waaaay better Perl programmer: http://perlmedic.com/