The Web and Web Applications

This page is in the midst of being rewritten given more than ten years have passed since it was created.  When I first started creating web pages, pretty much everything was static HTML documents which were often converted from some other markup language.  There was no control of presentation, and you couldn't even depend on graphics being rendered since a significant number of the browsers were text only.  All you really needed to know was HTML for basic publishing, and if you were going to get really fancy, fill out forms from NCSA.  These days there is a lot more to learn.

Information Presentation:  There are a huge number of ugly and ineffective web pages.  Don't add to the mess.  If you have a lot of time, check out the excellent books by Edward Tufte.  If you don't have lots of time, check out pages 146-149 in Visual Explanations Images and Quantities, Evidence and Narrative which will give you some core principles which will be extremely valuable in making effective web pages.  You might also want to check out Yale's Web Style Guide, 2nd Edition (print version). Jakob Nielsen wrote a decent, but lengthy book Designing Web Usability which was nicely summarized by PhilG in the article What can we learn from Jakob Nielsen.  For more ideas, check out the MIT Media Lab's aesthetics + computation group.

Basic HTML:  HTML is a relatively simple markup language. There are countless books about HTML.  I can't honestly recommend any one book as particularly good.  I think Dave Raggett's Introduction to HTML and Advanced HTML will teach you most of what you need to know.  Next, check out the HTML 4.01 Specification to learn about other nifty things which are possible in strait HTML.  You can now create useful web pages.  I have found the following useful references:

Style Sheets.  Get started with Dave Raggett's Introduction to CSS and take a look at CSS layout techniques.  When you want to see the complete set of options, I would follow up with the book Cascading Style Sheets The Definitive Guide.  Style sheets gives you a great deal of control over the way your information will be visually presented.

XML, XHTML, and XSL: Now would be a good time to start to really understand how the web is intended to be put together, and where it is evolving.  Start with the Architecture of the World Wide Web, First Edition.  Next take a look at the links on the W3C HTML Home Page.

JavaScript (aka EchoScript):  Sometimes you want your web user interface to do something a bit fancy.  This is typically accomplished using built in user interface components with simple scripts to produce the desired behavior.  Check of Google Mail if you want to see how much can be done.

Java: If you haven't done any programming before, I would recommend the book Java: How to Program by Deitel.  Write more text here.

Web Applications with Back-end InfrastructurePhilip and Alex's Guide to Web Publishing was one of the fist decent books about created serious web applications.  This book has been streamlined into the college textbook Software Engineering for Internet Applications which came out of MIT's 6.171.  There are a wide variety of environments for creating and running the back-end of web applications:

Misc Stuff