I taught myself. There are several steps involved with learning how to code and design. You are going to want to learn XHTML, CSS, PHP, and MYSQL to be effective on the coding side. Given the chance or desire, having a working knowledge of javascript will come in handy. (Specifically if you are interested in using Ajax.)
I would start with the XHTML and CSS. If you could utilize both of those tools effectively, you could create a static site just with those. Database driven sites require additional knowledge.
A good place to start learning is
W3Schools Online Web Tutorials.