• Your criteria:

    1."First the real gurus don't advertise their expertise."

    2."gurus ... try to make it easy for others to understand"

    3."And of course, the guru has kept up with technology"

    4."Finally...A good developer spends a lot of time talking to the users to understand what they need"

    You're specifying the criteria for a good teacher, not a code guru. And 4 is totally left-field, a good programmer does not need to be a good analyst, they just need the support of a good analyst.

    Of the two people I've met who I think of as gurus, they fit but one or two of these criteria (usually just keeping up with the tech).