My additions then

  • Knowing HTML is not enough. Knowing what seperates valid HTML from invalid HTML is important. All the development tools available allow you to write HTML which is invalid. This trips up differing versions of differing browsers, some of which you may not check with. Use the W3C validator.
  • Know what a DTD is, and use it.
  • Learn CSS so you can write it. Learn what browsers support each part of CSS. Have asprin handy when you do this. Cutting and pasting it is not enough.
  • Have as many different versions of as many different browsers on your machine. Check public facing web sites with them all. Know each browsers kinks.
  • Know your version numbers, especially for Javascript.
  • Test your site on varying connection speeds. Too many people think their site runs great on their local machine, and end up having pages that are 250k or greater.
  • Not everyone has your sight. If you can, build your site with support for braille browsers, for speech browsers. Don't use absolute font sizes. Use percentages wherever possible.
  • Never rely on client side capabilities. Using javascript for form validation is not a good idea.
  • And personally I'd say learn server side after you have mastered the client side stuff, there is no point in doing funky stuff server side when you don't know how to display the results properly. Be it PHP, or ASP it doesn't matter.
  • Always remember View Source. If someone else has done it, you can see how they did it. Borrow.