People often ask me to recommend web books. I always have to get more specific: You want beginner, intermediate, or advanced? What are you trying to achieve? Some people will say that they want to learn HTML, when the truth is that they’d be just as happy letting software write the code for them but they don’t know beans about page layout and information architecture.
If I were teaching, these are the books I’d use. For a good overview of the field, simply read the first book from each category except Design, where the first two are essential.
To be read in the order specified unless otherwise noted:
Code: HTML, CSS, and Web Standards
- Designing With Web Standards (if you already know HTML)
or
HTML 4 Visual Quickstart Guide with XHTML and CSS (if not) - Eric Meyer on CSS
- Web Standards Solutions
Design
I’m going to be unorthodox and lump graphic design and usability into one category. To me, they’re too closely related to separate.
I should note that while The Non-Designer’s Design Book is lovely, Robin Williams’s web-related books stink on ice. I blame this on her co-author.
Don’t Make Me Think has a good chapter on information architecture, and a good thing, too, because the books devoted to IA alone are impenetrable and overly intellectual. It’s a newer field and has yet to find its prophet.
Accessibility
A short list because the second book could not have been more thorough.
Business
(in no particular order)
More Code: PHP and MySQL
This is by far my weakest category. Salt, take with, grain of…. and please suggest alternatives.
Notes
In order to keep all those pesky properties straight, you should keep a comprehensive CSS reference handy, such as the Cascading Stylesheets 2.0 Programmer’s Reference or O’Reilly’s Cascading Style Sheets: The Definitive Guide. (Dreamweaver users have probably noticed that O’Reilly references for HTML and CSS are built in to MX and MX 2004. This will do, but I prefer the dead tree editions.)
People who tell beginners to read the W3C specs are insane. The specs are written for browser developers and are nearly worthless for designers, unless you need to clarify an arcane point of semantics. There’s an article explaining how to read them, if you must, but honestly, life is too short.
Recommendations for an XML/web services list would be most welcome.
Jeff says
Under coding topics, the best book I’ve found for giving someone a solid grounding in SQL and database design is “The Practical SQL Handbook: Using Structured Query Language” by Bowman, et al. The ISBN is 0-201-44787-8 on the copy I have.
This book won’t make you an expert, but if you read it through then you won’t be creating tables and queries that make baby Jesus cry. Unfortunately, it is strongly oriented towards full-featured SQL implementations, so you will find useful query types that you simply can’t do in various MySQL version.
For PHP, if someone knows how to program I recommend they just go to http://www.php.net/manual/ and read through the language reference and glancing through the security/feature sections. Then, while you’re coding leave php.net up, and when you think you need a function for something, use the search function. Also, of course, be sure to read the user comments and examples. This is how the pros I know do it. I understand the desire of absolute beginners to get their hands on a book… however, PHP is such a dynamic language that even after reading a book, you’ll probably still end up using php.net as your quick reference guide. Another suggestion I give to people who need to do Serious Projects in PHP (besides giving up ) is to download the free source for some large, well-maintained PHP project (phpgroupware, for instance) and to investigate the source. This will give them something of a grounding in how to create maintainable code in a language which doesn’t exactly encourage it.
Whew… sorry for the long comment
Stephanie says
The key there is “if someone knows how to program.” If not, the manual won’t give them a clue as to how to put the functions together to form anything meaningful. Hell, I knew how to program, but I hadn’t done it in several years, and I needed more than the manual.
Jeff says
If you don’t know how to program at all, the books you listed might work, but it would be better to get a solid programming grounding first. There’s a lot of theory behind flow control and data structures that you can learn from an introductory CS text that is likely to be glossed over in a book on how to program PHP and MySQL.
I’m not against programming books in general… I have an assload on my bookshelf here at work… but they can be of very limited continued use if the language is dynamic (which PHP currently is).