views:

238

answers:

8

About me: I am just a few years out of college (with a computer science degree). I am quite familiar with C, C++, and most of all Objective-C, and comfortable (but not super knowledgeable) with bash scripting and Lisp. In my career I've mostly only been doing QA type work on a cross-platform Mac/Windows server product. And I've written numerous QA tools and small apps in Cocoa for the Mac. However I have never touched anything related to web development. OK, I've edited basic HTML of course, and I've read and pieced together existing small snippets of JavaScript occasionally over the years. But I've had no real interaction with PHP, Ruby/Rails, Python, etc.

The type of book I'm looking for: What I would like is a recommendation for a book that gives a good overview of web development. I don't need something that baby steps me through stuff like what is a for loop, etc. And honestly I'd really prefer a book that is somewhat agnostic for particular languages, although that may be impossible. For example, I don't really want to read a book about PHP or Rails APIs for web development.

I'd like a book that teaches:

  • how to use cookies properly
  • what you should and shouldn't store in them and why
  • how to handle authentication issues properly
  • what issues to consider when choosing a database
  • what to consider when building or integrating existing e-commerce/forum/CMS systems
  • things to consider when wanting to manage lots of concurrent user sessions, etc.

Basically, an introduction to web development concepts for someone who is already a developer/programmer and that doesn't get too mired down in the specifics of one language or development framework. Does such a book exist? If not, which one would you recommend as the closest to what I'm seeking?

Thanks!

+1  A: 

There are a bunch of things around for this. Try this O'Reilly Cookbook, this broader focus O'Reilly book, and this book on web application architecture.

Charlie Martin
+1  A: 

This is a fantastic book that will guide you in building a bullet-proof web application in a totally agnostic way. In my opinion it is the second best alternative to actually having worked on a large scale web site project:

Scalable Internet Architectures

ennuikiller
+1  A: 

While it's possible to find a book that is able to communicate general concepts, I would recommend picking a specific niche and expanding from there. For example, you might pick up a XHTML/PHP/MySQL book, which you could use to frame the knowledge you gain on. The concepts would apply more generally to most languages and architectures.

Nevertheless, if you were interested in generic books, these are some that I would recommend (specifically the first one as it seems the best fit for you):

Webmaster in a Nutshell - Stephen Spainhour, Robert Eckstein (O'Reilly) Building Scalable Websites - Cal Henderson (O'Reilly)

byte
A: 

I don't know your "HTML level", but for not having bad practices with HTML and CSS I strongly suggest you this book:

Build Your Own Web Site The Right Way Using HTML & CSS, 2nd Edition

And then I think that books suggested by ennuikiller and dxmio are a a perfect follow up.

Patrizio Rullo
A: 

I personally enjoy reading this site. My favorite is a big document about CSS, they have lots of examples and a useful validator. Seriously, it's the only place where you can learn future CSS and HTML.

Note: I didn't notice first that you're asking for language-agnostic reading. Well, I don't know about any reading that would help without diving into practice first... Also, the law of leaking abstractions still requires solid CSS/HTML/JS understanding...

ilya n.
A: 

The web is a big topic and you're likely to get the best grasp of it by doing rather than just reading concepts. You can divide the web development picture into server side and client side development.

Based on your post, you seem interested in the server side, which is the code that makes web pages, interacts with databases, and returns content to users. I know you wanted language agnostic, but if you want try things, you'll have to play around with some code. An online course like Ovid's CGI course would give you the basics, and given your computer experience, you'll likely move quickly through. You can skip stuff that isn't relevant.

That should give you the basics of how a server like Apache interacts with resources to generate dynamic content. From there you could start looking into MVC frameworks or experiment with doing similar CGI coding in other popular languages like PHP, Ruby, Python, etc.

The client side of web programming includes all the browser technologies like javascript, CSS, etc. and those are huge topics on their own.

Jim Brandt
A: 

The question is a bit general, so I would suggest looking through some of the online sources to get a good grasp of what it is you're wanting to do. Some of the suggestions that others have made are definitely going to require some background knowledge in how to assemble a webpage. I recommend having a look through the tutorials and reference material at http://w3schools.com for a primer on how this stuff works.

Once you've gotten through that, and have a bit better idea which technologies you may want to specialize in for server-side development have a look at one of these (or similar)

Finally, for the client side, there's a bunch of different choices, all of them JavaScript-based. For very interactive, and good looking GUIs have a look at JQuery, YUI and some of the other ajax frameworks. There's good online documentation for these, but I'm sure you could find a book or two as well.

kdmurray
A: 

When I was learning web development, I found Philip Greenspun's writings on this incredibly helpful, in particular the book "Philip and Alex's Guide to Web Publishing" http://philip.greenspun.com/panda/

He is especially good at explaining the fundamentals - what a database is, how it works, what's really going on between the browser and website. It's a little bit dated, but still the fundamentals are absolutely sound.

Brian Fenton