What do you wish you knew about your job when you first started out?
Sr. Software Engineer / Developer / Programmer in Pretoria:
"The client is always right."
The client is always right.
Even when they are horribly wrong.
It is STILL your job to explain (respectfully) why they are wrong, but a lot of the times you will need to swallow the swill and get the job done.
Get it all in writing - you will need that if the project fails because of all the "wrongness".
Project failure does not mean the end (often).
Having things in writing often does not mean anything. Sometimes it means everything.
Be prepared to do a HELL of a lot more than you thought you were going to do.
Be prepared to deal with a LOT of legacy (code, frameworks, systems).
READ. Read about new technology. Read about new frameworks, new/old design patterns, new trends.
Try new things, but don't expect to take your "new" thing into production. Discuss with your peers!
Don't be arrogant (you probably don't know half of what you need to know), and don't be afraid to ask questions (again, respectfully).