Tuesday, June 5, 2012

Best book to learn web development for a professional developer?

I'm a professional software developer. I've been programming in a lot of different languages over the course of more than two decades now. Picking up a new programming language is very easy for me.

However, I have no knowledge or experience whatsoever developing modern AJAXy web applications. What I need is a book that gives me a good overview over the technologies involved, most notably on the client-side, code samples that I can play around with and pointers to more in-depth stuff.

What I don't need is a chapter on how loops work or how to traverse a tree.

Any good ones?

Source: Tips4all


  1. Pro JavaScript Techniques by Jon Resig

    Pro JavaScript Techniques is the
    ultimate JavaScript book for the
    modern web developer. It provides
    everything you need to know about
    modern JavaScript, and shows what
    JavaScript can do for your web sites.
    This book does not waste any time
    covering things you already know, like
    basic syntax and structures.

    Secrets of the JavaScript Ninja

    This book is intended to take an
    intermediate JavaScript developer and
    give him the knowledge he needs to
    create a cross-browser JavaScript
    library, from the ground, up.

  2. Web development is a crazy different beast. Yes, the client side is important, and it's definitely what's being hyped at the moment, BUT there's a lot more you need to know to get up to speed.

    Client-Side Code

    Start with HTML & CSS. Try creating a single page of tags, and ONLY changing the stylesheet to completely re-design your page. Structure stays the same, style changes.
    Then add in some javascript, using jQuery. I suggest jQuery because it allows you to interact with HTML tags using CSS syntax. You've just taught yourself CSS, so the learning curve will be lower.
    Then try some jQuery extensions, or grab the book "Javascript: The Good Parts" by Douglas Crockford from O'Reilly press. It'll teach you how to write OO javascript that reliably works cross-browser AND it's only 150 pages long.
    You can do ALL of this without a server, just by saving the .html to your desktop and opening the file in your browser. You can even do AJAX calls to other static .html or .xml files. jQuery makes AJAX super-easy.
    For bonus points, try to get your HTML validating & CSS validating.
    For super-extra ultra bonus points, try to get your page to look the same, and not throw any javascript errors in Safari, Chrome, IE6, IE8, and Firefox 2 & 3 (good luck).
    If you're doing the front-end now, you're doing usability. Check out the book "Don't Make Me Think" by Steve Krug.

    The Server

    If you want to go open source (low startup costs / large communities), I would recommend installing the Apache web server (de-facto standard) on Linux or OSX or Windows. Follow the online docs for getting it installed, and bringing up your first page.
    If you prefer Microsoft technologies, use Internet Information Server (IIS) on Windows (free as an 'extras' in Windows Professional & Server). It only takes a few clicks to get this up and running, and there are 1000s of online tutorials telling you how, plus the Windows help files.
    MySQL is the most popular RDBMS on the web, and it works fine on OSX & Windows & Linux. If you prefer to have a GUI instead of a commandline, I highly recommend Navicat for MySQL, which is also available for OSX, Windows, & Linux.

    Server-Side Code

    Ruby On Rails is sexy, and there are people for and against it. To me, it doesn't seem like a great beginning language, because it abstracts away a lot of the details, and if you just trust the abstractions without asking "why? how?", it'll take you longer to get to Pro. Regardless, here's an awesome (infamous) book on Ruby, called "Why's Poignant Guide to Ruby"
    Python is super OO, and has large community that's growing.
    PHP is my love, though. It started as a procedural scripting language, and bolted on OO afterwards. The thing is, the speed with which PHP bolts things on is one of its strengths. Anything you can do on the web, PHP can do. It's free, high performance (Facebook & Yahoo use it), and it installs fine on Windows, OSX, & Linux. Oh, and PHP.net is a fantastic PHP resource.

    Simple Installs

    On OSX, you can install a free product called MAMP, which stands for Mac/Apache/MySQL/PHP. It installs them all at once, pre-configured. Makes getting up and running super-easy.
    On Windows, you can install a similar product called WAMP (Windows/Apache/MySQL/PHP).

    Bonus Materials

    If you do choose PHP, you'll also want to look into the premier PHP framework called "Zend Framework". Zend is a company that provides enterprise PHP services. Their framework is community contributed, and completely open source. Great docs & unit tests, too.
    If you get frustrated when trying to create grid-based layouts in CSS, or if you want a complicated javascript widget, you might want to check out the Yahoo User Interface Library
    Learn to simplify & scale your CSS with OO-CSS

  3. Try CSS, DHTML, and AJAX by Jason Cranford Teague. You might need to hunt for an updated version, but I found it to be easy to understand and absolutely invaluable as a reference for future development.

    The Web doesn't stand still, and neither does this guide: Completely updated to cover the new browsers, standards, and CSS, DHTML, and Ajax features that define the Web today, the one thing that hasn't changed in this edition is its task-based visual approach to the topic. In these pages, readers will find friendly, step-by-step instructions for using CSS, DHTML, and Ajax to add visually sophisticated, interactive elements to their Web sites. Using loads of tips and screen shots, veteran author Jason Cranford Teague covers a lot of ground--from basic and advanced dynamic techniques (for example, making objects appear and disappear) to creating effects for newer browsers, migrating from tables to CSS, and creating new DHTML scripts with embedded scroll areas, fixed menu bars, and more. Users new to CSS, DHTML, and Ajax will find this a quick, easy introduction to scripting, while more experienced programmers will be pleased to find practical, working examples throughout the book.

  4. There are many competing web development technologies out there, perhaps it might be a good idea to sharpen the question a little by picking a direction. If you'd like to work in the world of big business you'd probably still be best served learning ASP.Net(C#). For those languages I liked the books:

    Visual C# 2008 Step-by-step
    ASP.NET 3.5: Step by Step

    If you'd like to work in a well thought out and pleasant environment I'd recommend learning Ruby on Rails, the standard book for that(which is also quite good) is:

    Agile Web Development with Rails

    I've also heard some good things about Django, but I've never looked at it myself.

    No matter what web language you decide to learn there will be some crossover. Javascript, XML, CSS, and HTML will be involved. I can't say that I really liked any of the books that deal with those technologies, but w3schools.com has some very good resources online:

    CSS - http://www.w3schools.com/css/
    HTML - www.w3schools.com/html/DEFAULT.asp
    javascript - http://www.w3schools.com/JS/default.asp

    I'd suggest that you come up with a project to work on, have it include things like users, authentication, uploads, downloads, messaging, scheduling, etc. Then, pick a technology and get to work. You'll learn much more by actually creating a working project than anything else.

  5. While not a book, the ASP.NET tutorial site is an amazing source of information and source code.

    It's been my experience that books are out of date the moment they are in print.