I would look for the ability to think i.e., quickly and logically breaking a problem into its components and get to the essentials. Ask good questions along the way, and come up with a solution to the problem. Do this in an area outside their expertise.
Anyone who passes that test with flying colors and is interested and engaged while doing it has a first-rate mind. The rest is detail -- do they know this language? if not, do they want to learn it? can they work with other people? do other people want to work with them?
Valuing "passion" (in the 20-something hacker crowd) or a university degree (large software companies too numerous to name) over the ability to think clearly in the abstract are both unfortunately too common. It seems to me that either is more a tool for recognizing "people like us" than to actually identify a good programmer.
Good point. I do this too, though it takes regular pruning of the RSS feed list to keep it interesting. I'll usually sign up for a feed from a blog or site that seems interesting, and after a few weeks or every few months check how often I actually read that feed. If not, out it goes.
Indeed, pruning the feed list is important. I usually only remove a feed if it keeps annoying me with frequent irrelevant content. What I want to prevent is having too many unread items in my reader because it leads to either wasting too much time filtering through them or deciding it's not worth the hassle and missing out on good articles.
Word of mouth (or email) works for me. I send things that I find interesting to some friends, and they return the favor. Saving those links to read during "free" hours, you can build up quite a reading list.
I found Xobni's stats feature useful - especially the data on what time of day specific people have written or responded to you before. I've used this feature to optimize the timing of communications with clients and bosses, but other than that it doesn't really solve the email overload problem. Yet, I hope.
Make a list of things you have a mental block against. Then make opportunities to do them. Every failure that you learn and recover from makes you stronger. Practice your decision-making skills. Act on your decisions. And communicate decisively. Good luck!
Anyone who passes that test with flying colors and is interested and engaged while doing it has a first-rate mind. The rest is detail -- do they know this language? if not, do they want to learn it? can they work with other people? do other people want to work with them?
Valuing "passion" (in the 20-something hacker crowd) or a university degree (large software companies too numerous to name) over the ability to think clearly in the abstract are both unfortunately too common. It seems to me that either is more a tool for recognizing "people like us" than to actually identify a good programmer.