Is it reasonable to use language codes in an interface?

In an interface that supports multiple languages, is it reasonable to show them by their language code, or should the full names be used?

eg:

Select Language:
En ❘ De ❘ Es ❘ Fr ❘ Pt ❘ Ru ❘ Zh

Or is it better to use:

Select Language:
English ❘ German | Spanish | French | Portuguese | Russian | Chinese

Personally I don't know what these language codes mean off hand, however - native speakers who are use the internet may be used to recognizing their own language (its often assumed that USD means United States Dollars for example).


This is technical documentation, however this may not be important.