| Miles Attacca ( @ 2009-04-25 00:18:00 |
| Current mood: | informative! |
| Current music: | "Mockin' Bird" - The Libertines - Up the Bracket |
Elaborating on a Facebook status
Process of a website design (and an overview of the many skills required, particularly in designing OmahaFeed)
- Outline an idea in any thought-storing medium (paper, Notepad, the brain).
- Cool idea
- Details of cool idea
- How cool idea will make money
- Coolness-to-difficulty ratio (approximate)
- Sketch a design draft on paper (not totally reflective of end result).
- I absolutely can't draw "for reals," but conceptual stuff like this comes very naturally.
- Lay it out and get the proportions roughly pixel-perfect:
- Draw shapes in MS Paint, move them around an image
- Draw shapes in GIMP, move them around an image
- Draw shapes in MS Paint or GIMP, export to separate graphics files, and make a rough layout in HTML
- Usually, some illogical, yet comfortable and productive combination of the three.
- Basic HTML: Mark up sections, organized as semantically as possible, and with roughly appropriate filler text.
- OmahaFeed is the first serious site I've tried to practice semantic coding on.
- Back in the day, HTML organized content, contained content, and styled content. It was a big bright conglomerated mess.
- These days, HTML organizes and clarifies the meaning of the content it contains, and CSS styles it. HTML is intentionally plain, and thus very accessible; CSS makes the magic that counts.
- And on OmahaFeed, most of the content isn't actually set on the page, but dynamically loaded from newsfeeds via PHP code. The separation continues.
- Now that there's a template of sorts, convert applicable bits so they can be dynamically generated with PHP.
- Example: Design and code a content box.
- Make a function in PHP to print the code out, the box being filled with whatever you put into a variable.
- Call that function when you need it.
- No more pasting the same code a million times; the script does it for you. Yay!
- Add flashy effects and other elements of the user interface with JavaScript.
- Example: Expandable/collapsible content boxes (a major design feature, and complication, of OF).
- This generally includes "dynamic" features where you can't make the user wait while you refresh his or her page.
- Find a good statistics package, and integrate it in. You ought to know just who (target market or not) appreciates your work.
- Step back and admire things. This is akin to kicking tires on a (hopefully) pretty sports car before you actually turn the key. Take a deep breath before you turn the ignition and...
- Test, test, test.
- This is the unspoken, ever-necessary step that actually comes into play during all the previous steps.
- Even if every individual component from each previous step has been proven to work on its own, or even in concert with a few other elements, some part of your site is not going to be happy with another part.
- Heaven forbid the uncooperative spirit extends across languages, and your JavaScript hates your HTML, which your PHP refuses to spit out anyway.
- Launch the site. This involves boring things like:
- Obtaining a domain name
- Selecting a cost-effective, reliable web host
- Picking FTP software to upload and/or sync files
- Advertising, both getting ads placed on your site, and placing ads on other sites
- Moderating user-generated content (oh, joy)
- Adapting the site to better fit end-user needs, desires, and expectations (sadism is usually not nice)
In short, you have to be able to think; record and sort those thoughts effectively; do graphics design; mark up HTML and CSS; program with languages such as (but not limited to) PHP and JavaScript; effectively and efficiently troubleshoot; react to outside input; and draw attention through a combination of the above.
In shorter, this is why I'm at a loss to help my parents "get into web designing" the quick and easy way.
In shortest, if this is a passion for you, grow into it, and live and breathe it.
Aaaand now it's half an hour after I planned to be asleep. :P