These are definitely good things to know, but I wouldn't necessarily expect a fresh-out-of-college 22 year old to know them all - I think you can pick them up on the job in the first couple of months/years.
The important thing is to be willing to learn and improve yourself, and to just have a natural talent for programming. Nobody expects you to hit the floor running in your very first job.
I knew most of these things at twenty two, coming out of college -- however, my case is slightly different -- I've been a hobbyist before and during college.
Nonetheless all of the material I've described was offered at university I attended and getting a formalized training in the matter (particularly a rigorous mathematical approach to algorithms, data structures and formal languages/automata) definitely helped.
Nonetheless -- if one is motivated and disciplined -- they can pick these things up at a job (provided you get a job where the environment is conducive to learning, vs. one that merely expects you to crank out business logic 9-5) as well as entirely on their own.
I guess my experience is a bit different, since I was a math major.
Even in my first job, which was pretty much just cranking out business logic 9-5 I've learned a lot about databases, OO programming, UNIX and software development in general.
At the beginning you have so much to learn that even if you don't work for Google or Microsoft (they actually do a lot of non-trivial R&D) you will still probably be learning a lot.
The important thing is to be willing to learn and improve yourself, and to just have a natural talent for programming. Nobody expects you to hit the floor running in your very first job.