Google's job descriptions (as posted on their website) are a lot broader than many other companies. Take their posting for "Software Engineer" in Mountain View:
Requirements:
- BS, MS, or PhD in Computer
Science or related technical
discipline (or equivalent).
- Extensive programming experience in
C/C++ and/or Java (strong OO skills
preferred).
- Several years of
large systems software design and
development experience, with extensive
knowledge of Unix/Linux.
- A solid
foundation in computer science, with
strong competencies in data
structures, algorithms, and software
design.
- Coding skills in Python
or Javascript/AJAX, database design
and SQL, and/or knowledge of TCP/IP
and network programming are a plus.
They seem to have less of an instance on particular skills, and more of an instance on being a smart and capable developer and computer scientist. It's obvious that they're looking for people who will learn on the job the skills they need to tackle a particular job within the company.
Many smaller companies are much more specific about their requirements. It's obvious they have a particular position they want to fill, and they want someone who has many of the relevant skills as possible so they can be as productive as possible from their first day on the job. For example:
We're looking for someone who has
significant experience developing
cutting-edge websites and/or
applications, preferably on an
open-source (LAMP-style) platform. We
want someone with a strong dedication
to web standards and web-development
best practices. The ideal candidate
will have extensive experience with
database-backed web development and a
history of development in dynamic
languages.
If you havent written Python or Django
before, thats OK! Were looking for
smart computer scientists with broad
interests like natural language
processing, digital signal processing,
machine learning, and more. We want to
give you a chance to put your skills
to use building a first-of-its-kind
web platform and sophisticated
application interfaces. If you have
little or no experience in web
development, well give you the
opportunity to learn.
Some web experience on top of your CS
expertise will admittedly give you an
advantage. Knowledge of Python,
Django, PostgreSQL, (X)HTML, CSS,
JavaScript (including JSON and AJAX),
web standards, and web-development
best practices. You should also have a
working knowledge of LAMP-style
platforms and source control (we use
Git, but SVN or CVS is a start). That
said, were more interested in a
willingness to move fast and eagerness
to learn and contribute than we are in
how well versed you are in any
specific language or platform. Were
looking for a proven, results-oriented
person with a focus on delivery.