There are two main criteria for getting hired:More here via Goodfellow
1. You've got to be SMART
2. You've got to be someone who GETS THINGS DONE
Our goal is to hire people with aptitude, not a particular skill set. Any skill set people bring to the job will be technologically obsolete in a couple of years, so it's better to hire people who are able to learn any new technology rather than people who happen to know SQL programming right this minute.
Gets Things Done is crucial. People who are Smart but don't Get Things Done often have PhDs and work in big companies where nobody listens to them because they are completely impractical. They would rather mull over something academic about a problem rather than ship on time. These kind of people can be identified because they love to point out the theoretical similarity between two widely divergent concepts. They're Smart, but not useful.
Now, people who Get Things Done but are not Smart will do stupid things and somebody else will have to come clean up their mess later. This makes them liabilities because they don't contribute and they soak up good people's time. They can often get the job done but not in the smartest way.
Joel On Interviewing 2: Smart and Useful