To be awesome by any standard you at least have to have attributes that surpass those of the author of the standard.
To be awesome by any standard you at least have to have attributes that surpass those of the author of the standard.
Management sees them as hard working drones, and don't see any issue.
Maybe I just worked with some incredibly bad programmers...
They know some languages, and they don't know others, and you know some languages they don't know, and they know those languages better than you. And when they pull out their laptop to show you what they wrote with the language they don't know, it's a Thinkpad, and don't mind that green stuff dangling from the PCMCIA slot, it's just a really really crappy graphics card they built that runs on an FPGA that they use to run demos on a television back home.
Then they ask you if you want to try writing your own little graphics demo, and you try typing, and they're like, "Oh, sorry, I don't use qwerty," and they reach over you and set the layout back to qwerty, but then they need to change it again because you use dvorak and they had it set to the right-handed dvorak layout, because how else would you drink coffee while coding? But they quit coffee years ago because the highs and lows were bad, and now they do judo in their spare time.
Then you look at their code and find that they've defined some weird types for weird things. They've got their own custom string type, but wait, it just wraps the default string type, and it's there to stop XSS attacks in the type system. And then you look at the APIs that the different subsystems of their programs use and you find that all of their APIs are literally impossible to use incorrectly. Or when that can't happen, they're designed to be impossible to use naively.
As you get to know them better, you discover they didn't have access to a computer until college, and before then all they had was some hand-me-down HP calculator where you enter numbers backwards because they reprogrammed it to use p-adic arithmetic, which they had heard about during some invitation-only summer math camp out on the plains. And before that, as a three-year-old child they invented numerous variants of 52-card bucket sort, radix sort, insertion sort, selection sort, and bubble sort, because inventing sorting algorithms for a deck of cards and then executing them by hand was a fun way to pass the time.
One day, you wonder out loud how to solve some particular problem efficiently, and they tell you some slick solution using the chinese remainder theorem, but when you ask them a question about RSA later on, they don't really know what you're talking about because all the number theory they know they learned from music. But then when you start explaining the math behind it to them, you find that they implicitly know Lagrange's theorem (the group theory one) and don't know why.
When you ask them if they've read any interesting books lately, they're like, "Yeah!" Then they ask you what you've read, and you answer "Well, recently I've read Coders at Work, Godel Escher Bach, and Code Complete, 2nd Edition." And then they tell you all about this new series they've discovered about a wizard named Harry Dresden who wears a duster and drives around Chicago fighting bad guys.
So you ask them if they've read SICP, and they're like, "No." Then you ask what technical books they've read lately, and lately they've read Transactional Information Systems, Cryptography Engineering, a recent version of the HTML 5 specification, A Guide to HP Handheld Calculators and Computers, Fifth Edition, and Physically Based Rendering, Second Edition.
When you ask them if they know any awesome coders (other than yourself, of course), you find that they do. And who is it? Their ex-roommate, an aerospace engineer, who rarely did any coding and doesn't know anything other than Matlab and some C from "C for Engineers 101," but who made a reddit clone using PHP and MySQL one day just because he wanted a personal reddit clone for him and his friends.
One could map (and make the general case) the signs of being an awesome human being: passion for learning, enjoys honing a craft not just for a paycheck, has a sense of beauty, open mindedness.
The art of determining awesomeness or potential awesomeness is to figure out what questions to ask someone that will reveal the nature of their character.
People can be as awesome as they want, but they have to sell it.
For estimation, "how many gallons a day flow out of the Mississippi River?" Most people say "I don't know" and won't even try to answer. But when you see someone come up with an estimate and rationalize it, that's a good sign. I don't know what I'd do now if someone actually went to Wolfram Alpha, Wikipedia, etc. and looked it up.
I like to see coders answer things like: you're building a 40' fence with 5' fence sections. How many fence posts are there? It seems trivial, but I'm amazed how many people get it wrong at first ("8. No, wait, 9. Yeah, 9.") and really amazed by how many never realize that 8 is wrong.