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.
GuyWithHisComp
Really great tips.
Although if you want to learn PHP wouldn't it be better to try to do your own Blogging system instead of using a premade one (WordPress)?
Also, you spelt Newgrounds wrong (you wrote New Grounds). ;P
Rob
You spelled "spelled" wrong. Spelt is a type of wheat. And, if you're going to learn PHP, you could just as easily learn by integrating a third party item into your site as you could by trying to code a replacement. You'd also get more done. Better to learn by doing something useful, instead of something you'll just throw away. That's why I recommend learning a framework as soon as possible - they solve all kinds of problems that you could waste years of work on without getting results as good as the framework does.