Saturday, November 18, 2006

Beginner's guide to web development

Pud,

How do I become a kickass web developer like you?

You created Fandalism in 6 hours and that has tons of hard code. I want to be able to learn to makes sites like that.

Where do I begin?

Thanks,
Shawna
Shawna,

It's easier than it seems.

That said, being able to build a site like Fandalism in 6 hours is the result of 20 years goofing around programming. But if you follow my steps below, building a site like that won't take you too much longer; maybe a few weeks.
  1. Come up with a good, basic idea for a website or web service. Many of the sites I run started as me thinking "I wonder how I would program this..."
  2. Get a cheap dedicated Windows box from ServerBeach.
  3. Download a free developer version of Macromedia ColdFusion and install it on your new box. (and before anyone replies with "coldfusion sucks," realize the MySpace is written in coldfusion. because coldfusion is so easy to learn, it's coldfusion programmers who often suck -- not coldfusion itself)
  4. Download a free developer version of SQL Server and install it.
  5. Read this book.
  6. If you really want to not fuck up your databases, read this book too (optional, but you'll wish you'd read it sooner or later)
  7. If you want to get fancy with AJAX and Javascript (like the "click here to ask me anything" doohicky on this page), read this and use this. (advanced, optional)
I can't stress the importance of #1. It's really easy to learn programming if you think about it from the perspective of some specific project you want to build, rather than just "i want to learn how to program."

Also, look at everything that's already out there. It wasn't the case 5 years ago, but these days there are so many freakin' websites out there that there's already someone doing something that's similar to what you want to do. Go through their site page-by-page and learn everything about how it works, from the user's point-of-view. (if you were professionally building a site, you'd also do customer surveys and a lot more, but that's out the scope of this question). For example, I learned a lot from YouTube when building Fandalism, and that saved me a lot of time thinking.

Most of all, have fun. I know it sounds corny, but seriously I think of programming like playing a video game. It really is fun when you get into it.

Rock on,
Pud

PS- Whenever you have a good idea, you can bet that 10 other people came up with almost the exact same idea at the exact same time. So hurry!