I'm 36 here and I probably have about the lowest level of VI knowledge in this thread. We had a Progress programmer who was an absolute whiz at VI. She could rip sections of text out of long reports and add, remove, cut, paste, just about anything you want to do with text in VI.
I use it for editing the cron jobs for our end of month processing. The main commands I know are "dd" deletes a line, "x" deletes a character, "i" does in insert, "zz" saves changes and exits, and when you screw up, ": q !" (without the spaces) is your friend! 😛