Wednesday, 29 July 2009

Painting myself into a technical corner with theory paint...

I need to know how to build a website. Why chose a medium I have no expertise in? Because it's most appropriate to the study, so I just need to work hard overcoming a missing skill set to realise it. I can't jam the theory into ill-fitting media.

Besides, learning something new is always a good thing.

So I asked the asinine question on Metafliter, and got a a fantastic avalanche of carefully considered answers. The consensus seems to be that I'm attempting something difficult, but not impossible. Something which will be laborious and slow to accomplish, but which will leave me well equipped with web development skills for the future. I got a lot of detailed, step-by-step advice about how to approach the task, like the following, one of the best answers:

Well, it sounds like you are trying to jump in the deep end! Which isn't a bad thing actually, you can learn a lot in a short time. What you are proposing does sound fairly advanced in terms of fuctionailty, so if you have a strict time limit you may have to prune some of that fuctionality back. When you have a bit of basic knowledge you will be in a better place to assess this. I would second most of the advice above, in particular DarlingBri's comment. With the extra info you have just provided, it sounds like you will eventually want some web programming skills. PHP is the best best for a beginner - you can achieve a lot with it quickly. The good news is that as DarlingBri suggests, a lot of the more generic complex fuctionality such as forums etc can be achieved with a content management solution (CMS) such as Joomla. Web hosts like Dreamhost have one-click installers for a lot of the more popular CMS's and the Dreamhost's wiki is pretty good if you get stuck.I'd tackle the learning in this order:1) The basics. XHTML and CSS. Run through the tutorials at W3Schools and you're set. If you are using firefox, get the web developer toolbar and firebug to help you debug and understand what css is creating what effect. Dreamweaver's code view is quite nice for search and replace functionality and code hinting, but it's a lot of money and you can get by fine with a notepad replacement like SciTe.2) Get a basic understanding of how PHP (and server side coding in general) works. I highly recommend a book to help you with this process and for future reference. I like the Visual Quickstart series personally. This should also give you an overview of using web databases like MySQL, which in the long run you probably won't need to know too much about if you are using a CMS, but I think a fundamental understanding of how databases work in the context of a website is very important. At this point you can either be testing your pages directly on your web hosting (unwieldy - annoying amount of FTPing), or if you want to test locally on your machine you will need a local web server. Xampp makes this easy.3) Get set up with a CMS like Joomla (some alternatives here if you want to compare functionality of CMS's - drupal and joomla are the 'big two' are should have better documentation / community support). Start hacking templates using your CSS skills.4) If you want to add visual florishes, jQuery if great, but I'd recommed learning a little about JavaScript and the DOM first.Good luck! When you have all this under your belt you will be an accomplished web developer and will have a skill set to tackle most anything you can think of. Feel free to memail me if you need more info on anything. Oh, and with regards to design, make sure you are doing sketchs and organisational flow charts etc in the 'real world' before you start implementing your site. Try and think about usability from the persective of the end user.

So you can see what's involved.

I'm actually going to take this advice, and learn CSS and XHTML, adding to my knowlege according to the various Mefi replies after I have confidence in those areas. As for the demands of my PhD program, however, it's probably not realistic to get a site up and running this semester, and as a very big part of the work is planning the site, on paper, I will get down to that concurrently. That's going to take a lot of work. A lot of thinking.

My greatest fear, at this stage, is this: The site is heavily dependant on the participation of others, and without that participation, it's just a portal of no consequence. I can strong-arm all my creative, brilliant friends into contributing for the sake of my survival early on, but I will have to reach beyond that to really get it going in the way I want it to. Must I promote it? What happens if no one comes to play?

No comments: