Learning JavaScript in one weekend?

Here is my list of really good resources to learn the language:

  • Mozilla Developer Center: Core JavaScript 1.5 Guide
  • Eloquent JavaScript (Interactive tutorial)
  • Learning Advanced JavaScript (Interactive tutorial)
  • QuirksMode (The prime source for browser compatibility information)
  • A re-introduction to JavaScript (Great article)
  • Douglas Crockford Video Series
  • Introduction to Object Oriented JavaScript
  • JavaScript Prototypal Inheritance
  • ECMAScript Language Specification

Tools:

  • A debugger
    • Firebug for Firefox
    • Dragonfly for Opera
    • Developer tools (Safari / WebKit)
    • IE8 Developer Tools

The part of your question that matters here is

[how do] experienced Javascript developers ... get the basics of Javascript down in 24/28 hours

Experience is not something that you can get in one night, one week, one month, or one year. Experience is something that you acquire over the course of years of hard work — encountering bugs, learning best practices, re-writing code that you wrote four years before and asking yourself, "why did I do this", optimizing for far-less-than-perfect environments ...

That being said, if you have only one night to learn enough to make you dangerous, then start at the bottom and work your way up. Daniel Vassallo has given you one very nice link already, and more than one person has suggested W3Schools for a quick overview of both Javascript and the DOM.

But don't start with any of that. Instead, start by determining, as well as you can, what it is you want to be able to do with Javascript tomorrow. To do that you need to ask yourself two simple questions.

What is your level of programing expertise? Can you code complex algorithms in C and C++ with the occasionally foray into some variant of assembler? Have you ever worked on a decently large project in a slightly "higher level" language like C# or Java? Do you know at least one scripting language decently? Or do the phrases "functional programing", "class-based inheritance" and "bubble sort" mean nothing to you right off the bat? If you are in any of the first three categories, a little time with a few of the better tutorials on the Internet, and maybe a quick look at a Stackoverflow question or two should have you up and running in no time. If you are in the last category, you might do well to start off with the basics of programing in general. No matter what you are going to need an environment in which to learn. Which brings us to the second question ...

What is your platform? Are you planning on doing some server-side programing with node.js? Maybe you planning on developing some utility in a Rhino or JScript environment? If either of these situations are the case then reading the documentation for the platform you will be developing on will stand you in much better stead than reading up on the DOM. If, on the other hand you are planning on developing for the web, then you cannot do much better than to grab Firefox with the Firebug extension and start by building a simplified version of what you are going to be working on tomorrow.

And if none of this is in any way helpful to you then hopefully by the time you have finished reading it, someone else will have answered the question in a far more suitable manner ... that's the beauty of Stackoverflow.


If you are starting with the W3Schools tutorial, you should get through that in just a couple of hours, at most. In the remaining time I would suggest watching the video lectures listed in the following blog article:

  • Learning JavaScript Programming Language through Video Lectures by Peteris Krumins

The author of that blog article wrote very detailed points on each video talk, so you can get a very clear idea of what will be discussed. The talks are given by Douglas Crockford, John Resig and Nicholas Zakas - all significant figures in the JavaScript world. These should take quite a big chunk from your weekend, but they should serve as a very sound introduction for when you go through "The Good Parts" book.

JavaScript is a very expressive language, and I hope learning it will be fun. You can really sense the enthusiasm of the speakers in the above talks when they describe some of the good features of the language, such as closures and first-class functions. Enjoy!

Tags:

Javascript