Let me start of at the end... the website works! It's in private beta right now and I hope to release it to all in a month.
But it's been a long hard slog; far more work than I imagined. The last website I built was circa 2001. It was really advanced for its time: simple javascript and flash animations! Now, in this Web 2.0 world, "simple" anything won't cut it. It's not just that javascript has changed and flash has been dropped. Today, the list of technologies to choose from to build a site is staggering.
But even if you don't want to learn everything, say you just want to learn enough to put something decent together; well you're still in for a steep learning curve. Here's the list of mandatory technologies I've had to either know or learn to jump into the Web 2.0 world:
- Advanced Javascript - learning object oriented programming the javascript way is definitely something new. It isn't bad, there's a lot to like about javascript, just different.
- HTML - Remember the days when tags like "center" and "table" were your friend? Forget it, you're just using div and span now.
- CSS - I hate CSS. It isn't a programming language at all. It's fine for colors and sizes. But once you use it to do layout, your headaches will begin. It's an art more than a science and nothing feels deterministic:
Do you use the "top" or "margin-top" attribute? Who knows, try both.
Why do we have both inline and inline-block? Because we can.
Unfortunately, CSS is the only thing out there that does what you want. You just have to swallow it. - python - Admittedly, I was already pretty well versed in python (i luv python). If you don't want python, you're going to have to learn PHP or one of the other web-programming languages.
- jQuery - Very cool, I must admit. But for the uninitiated, it's totally different from anything you've done before.
- jQuery Plugins - There's a jQuery plugin for everything. Great. Unfortunately, its a new API you have to learn to do anything.
- Django - The web-backend. Cool technology but pretty massive and you have to learn quite a bit of it to do anything. Oh, did I mention that to use Django you have to learn its own special html-markup language too? It can easily take a day of tutorials to get familiar with the system. I've been working with it for a month now and I've only started becoming comfortable.
- Google App Engine - It isn't necessary to learn google app engine. But they're a ridiculously cheap web-hosting solution... actually, for most cases it's totally free. But they do things so totally different, that there is a nice learning curve. To start with, there is no file system. Enjoy.
Moral of the story is that making a website is pretty complicated involving nearly a dozen technologies. But websites are the future (ahem, present) and it feels pretty gratifying being able to put a real-life site online.