I recently had a user send me a message asking advice about web development. He's a computer science undergrad, and wants to build a serious, user-based website. I wrote a lengthy reply, then decided I should just post it here for everyone to read:
1. Learn a web language thoroughly. I'd recommend Ruby or PHP. Ruby is a better-designed language, whereas PHP has better performance and a bigger community. Ruby pays better on the open market because the average PHP developer is incompetent.
2. Use a framework. In Ruby, that means Rails. In PHP, the two big ones are Symfony and CakePHP. Symfony is great; I haven't used Cake. This leads to point 3:
3. Use third party software whenever practical. E.g., don't write a custom blogging system - use WordPress or the like.
4. Learn SQL. Learn how to setup a database. Use MySQL or PostgreSQL.
5. Learn modern Javascript techniques, and use a framework. Prototype, jQuery, YUI, Dojo, and MooTools are all good.
6. Learn modern CSS and use XHTML. Use conditional comments, not parser hacks. Everything must validate all the time, period. At the same time, don't get too caught up in doing everything the "right" way. As with everything, you have to trust your judgment.
7. Developer time is more valuable than computer time. The bulk of a comp. sci. education is thus irrelevant for web applications. Even here at New Grounds, our biggest resource bottleneck is database IO, not code performance or memory consumption.
8. Always design and write code with other developers in mind. It may take longer in the beginning, but it will pay itself back again and again. Just take this on faith, because it is absolutely true. Write code that reads like a paragraph. Give things long, descriptive names. Make a class for everything, even if it only has one method and no data. This will be as helpful for you as it is for others.
9. Learn to use Linux. The web is Unix based, and that environment is more powerful for the developer anyway. You will have to administer a *nix box at some point, so start learning now.
10. When in doubt, Google. There is not one thing you will ever think to do that has not already been done very well and blogged about.
Here's some more links:
The HTML specification. - This is also most of what you need to know to write proper XHTML.
Design mistakes
Code mistakes - Memorize this. All of these things can be avoided almost all the time.
It's not all as hard as it sounds. You'll make plenty of mistakes, and you'll look back later at code you wrote two years prior and just shake your head. That's the life of a developer.