So the question will very likely need re-phrasing. I thought about asking this for a while, but held off because it's a tad vague.
To explain - I have been a programmer for 4 years and only begun doing it when I took a university course. Now that I'm working as a programmer, I find that often people assume you know a number of things that I feel people who have been messing around with computers know by default, and I don't.
Things like shell commands, how to use subversion, stuff about how websites work at their base level, how to use databases and so on.
What I would like to know is some of the basic stuff, the nitty gritty that people in a programming job are expected to have encountered and know how to do.
Also, I'm sorry if people feel this question is not a perfect match for the Q and A format - please let me know how I can improve it - or just edit it heavily.
Thank you in advance.