They will expect you to have first and foremost very strong c++ skills.
This will include knowledge of various design patterns, clear and readable code, maintainable code and strong debugging skills.
Knowing a few APIs is useful, but not crucial. What however is crucial is the ability to self educate. The ability to learn about any new API on the spot.
Knowing what you don't know is crucial here. You don't know enough about the field if you can't mention quite a list of things you don't know.
Generally you'll be working with existing code, even on new projects.
They'll expect you to educate yourself regarding this codebase and expect you to be able to adapt and program according to their standards and guidelines.
If you're asked to implement new features using an API you're entirely unfamiliar with, they expect you'll educate yourself on the subject without assistance.
Essentially: Strong c++, strong debugging, strong google-fu.
That's for the technical part.
Another thing that can't be mentioned enough: communication.
It's incredibly important to be a good communicator. This involves solid written and verbal skills.
But it also involves being able to communicate clearly with different professions.
You'll be talking to designers and artists on a very regular basis. You'll need to explain concepts in terms they can understand.
You also need to be a good listener, have the patience and be able to understand what other professions are telling you.
Another important thing is math.
You'll need to know how to work with vectors, matrices, quaternions, etc. These are absolutely essential to any game.
Math in general is quite important and any knowledge in this field will make you a better programmer.
I make stacks of cash never having touched C++ or anything more then basic math in my entire professional game making career. Not that those aren't good skills to have but the 'C++ or die mentality' that infests hobby programming is slightly out of touch. Give the incredible rise of mobiles its a very real possiblity you will find yourself just doing Java everyday. Its more important to be able to pick up new languages in a short amount of time them to be an 'expert' in any one of them. Maybe if your job is being on the C++ standards board. I never touched ActionScript before my current job but because I had experience in a wide variety of lanuagues from hobby, school, and work I was up and running in a couple of days.
My current job is just a startup more or less and unless you are recommended by somebody working there they probably won't even look at you if you don't have a degree. I'm sure they have lost out on some really good hires doing this but the HR guy has better things to do then look through portfoilos all day unless he is serious about doing an interview. As frob already said, this isn't 10-15 years ago when there was a much smaller talent pool. Today there are tons of other people with degrees and portfoilos trying to get the same job.