There are three different buckets that these attributes fall into. First, there are things that will directly influence your coding skill through programming. Then there are things that will help make you a better hacker but aren't necessarily "programming." Finally, there are some things that famous programmers do that don't actually contribute to skill. In rough order of importance:
First, never stop coding. I mean it. Make an effort to code every day. There are a ton of different ways to accomplish this:
- Push yourself to develop something every month (Like these guys)
- Run through Code Katas
- Learn new languages and frameworks, beyond the syntax
There's also something to be said for both reading code and teaching others how to code. Reading code exposes you to other coding styles and formats for getting things done [1.5].
Teaching and blog writing forces you to be honest with yourself. It's much easier to fake it if you never interact with others on an intellectual level. Some of the most rewarding work I've done is with my co-founder, where we both were able to teach each other as we programmed .
Less direct (but no less important) are indirect methods.
Software engineering is about a lot more than just writing spiffy code. Sure, you can "learn" about it by reading yet another book but there's nothing like getting actual experience. There are tons of great communities that would love to have you on board (and you don't need to be an expert!).
Reading blogs expands your coding world view (and hey, you're reading one right now!). Blogs (and their comment sections) can be excellent places to find new and innovative ideas, so long as you take them with a grain of salt. It's easy to start reading blogs instead of moving up to the more important things on this list, which brings us to things famous developers do that don't really help at all:
One thing to remember when looking up to coding idols is that they are way smarter than you are. It may seem cool, even edgy, that they argue about the languages they use. Arrogantly arguing about languages and style won't make you Douglas Crockford, just Doug Crock-full-of-*ignored*.
Don't use libraries instead of languages. This is a good shortcut for those rapidly putting together prototypes but will hinder your development as a developer. It may seem like everyone's doing it but there is incredibly real value to learning the language, not the library.
Finally, don't claim that "Real X use Y" While I'm guilty of this myself (Heck, look at this entire post), there are exceptions to the rule. Saying "real developers use Ruby" or "You'll never be a good developer until you learn lisp" only makes you look like an idiot. You may be correct but it's better to not come off as a bigot.
 C.S. Lewis said it best: "People have a habit of becoming who they are pretending to be."
 Amaan wants to remind you that he had the idea first.
 I'm usually not in favor of pair programming except for teaching scenarios as they allow both the student and the teacher to get the "meat" quicker.