and so on. Mostly things you don't learn at school nor at work. I think the communication stuff is at least as important for programming/CS as everything you learn at school/university. Ok, if it comes down to dress code, you can live without it....

Okay, I'll grant appropriate dressing; that's something your parents were supposed to teach you when you were in gradeschool. The other things you list are all things you should have had in school, and if not your college cheated you out of a proper education. How on earth can you get a B.S. or B.A. without taking at least a couple of communication courses? Where I went to school, they called that stuff "Gen Ed", and you had to take it irrespective of what your major was. (Indeed, a public speaking class was even strongly recommended at my high school; it ought to have been required, but I guess you can only expect so much from public schools in the way of requiring things, since they have to find ways to let the kids through who don't want to learn anything.) Organizational skills, unless you mean something different from what I take the phrase to mean, are something you should pick up (if you don't already have them) from various classes in varioius subjects. You *did* have to organize group projects in classes like philosophy and literature, right? Right? Surely you at least had to organize your own time and put together coherent research papers out of nothing more than a vague topic. As for stamina, how better to learn that than through the peculiar blend of sleep deprivation, memorization, and critical thinking that is college?

update:
What college doesn't teach you is how to read through somebody else's
poorly-written buggy disorganized code that only barely works and
grok enough of it to make changes without screwing things up even
worse. CS programs really ought to have a class in that. Debugging
and refactoring your own code is one thing; debugging and refactoring
somebody else's code is another thing altogether.

Ok, Ok, Ok maybe american schools and universities are just better than those I went to!

Well, some are better than others, obviously, and that's true in every
country, but in general you shouldn't be able to get a four-year degree
in any subject without taking at least one communications course, most
likely public speaking or somesuch, and if after taking a three-credit
course in speaking you don't have the communication skills to order a
meal in a restaurant, something is very wrong.

Now, vocational schools obviously are another thing. Those types of
schools often don't require you to take anything substantial outside
your major field, so if your major is CS you won't have to take any
communications, literature, history, biology, or art. A degree from
that type of school is a different thing. It has value as a certification
that you received a certain amount of training in the field in question,
but that's all. A four-year degree from a traditional liberal-arts
school implies more than that.

And don't forget the ever-important skill of filling the annual self-appraisals and other HR emitted bullsh!t. You know, your salary doesn't depend on your development skills, but your stylistical talent, shamelessness and rectal alpinism skills. Mostly things you were supposed to learn in school, but tried to escape from by specializing in something computer related.

Jenda

XML sucks. Badly. SOAP on the other hand is the most powerfull vacuum pump ever invented.

You learn all those things in school; some of them in public/high school, and some of them in university.

1. communicational skills

I had 14 years of formal English language training before I even reached university. I worked on group projects, learned brainstorming techniques, and was forced to deal with general group dynamics long before I hit university. So was everyone educated in my country -- unfortunately, the workforce doesn't just consist of people with the same background and education as the native citizens here. This re-introduces a communications barrier where none existed before. Short of training in every concievable language, there's little that can be done about it, however. It's not the fault of the education system.

2. organizational skills
These were formally taught to anyone who wants to take a class in them at my university; they were informally taught by forcing students to organize their time in order to meet workload demands.

3. stamina
You've got to be kidding. One of my friends was working up to 80 hour work weeks for Corell during his co-op work terms. He considered it a break from the stresses of school; doing a double major in CS/Applied Math with sufficient grades for grad school had him averaging 4 hours of sleep at night.

4. appropriate dressing
This is an interview question, not a cultural absolute, and it's taught in the interview skills handout that you learn in a decent co-op university. Some places have a strict dress code where programmers wear a suit every day; other places, they wear t-shirts and jeans. Wearing the wrong attire in either environment is a cultural faux-pas.