Are you saying you don't think you're not cut out to be a developer because you still struggle with reading legacy code written by other people? If you are, then I would say that's not a very good benchmark. I struggle with reading other people's legacy code day in and day out. In fact, that's almost part of my job description. Then after much cursing and gnashing of teeth, I have to clean it up. Humility aside, I have to say I'm pretty good at it.
So maybe it's the other's people's code that's a problem. If your code looks much like the other people's code that you struggle with, that's a problem. However, if you've read, understood, and applied what you've read in those books you cited, then
you should have a very good foundation in good development practices.
You said you think the book "Growing Object-Oriented Software Driven By Tests" was "okay" (I'm assuming that's the book you're referring to with "growing objects by tdd"). I actually think that book is more than OK. Are you doing TDD now? I think that doing a lot of TDD is essential to becoming a really good developer. TDD makes you think about good design and it makes you write
unit tests and refactor your code
all the time. If you do TDD enough, you'll quickly get to the 10,000 mark that's necessary to be good at anything, as noted in this article:
http://norvig.com/21-days.html
"Clean Code" is really good too and you might want to read another Bob Martin book, "Agile Software Development: Principles,
Patterns, and Practices," aka "The PPP book".
On the other hand, Dirty Harry once said "A man's got to know his limitations." I don't think anyone wants to be like poor old
Cecilia Giminez.
Bottom line is that you have to really like what you do. If this is just a paycheck for you, then maybe you should find something else. But if programming is really your passion, then you should just stick to your guns and keep plugging away at getting better. Sooner or later, you'll get past what Kathy Sierra calls the
"Suck Threshold" of the "Kick Ass" curve.
Good luck!