Resources to become a Ninja: Javascript

I started a series to share resources that I have been using to learn some technologies. In this post, the subject is Javascript. I already made two posts covering Javascript here, and here.

Why we should learn Javascript ?

Some years ago, I was using Javascript only to perform validations or to build masks, but today the javascript use grew up. The new web requires beautiful and responsive UI’s that only will be achieved using a lot of javascript code. But javascript is going beyond that, it achieved the back-end also, today we can write a full application using only javascript. A good architecture could be:

Angular.js on Front-end
Node.js on Back-end
MongoDB as database with a javascript driver

Because of this, a couple months ago I started to study seriously javascript, and I will share the resources that I have been using with you:

Books

JavaScript: The Good Parts by Douglas Crockford: Crockford is a Senior Javascript at Yahoo! and created and maintains the JSON format. In this book he proposes to divide Javascript in good (that we should be using) and bad parts (that we should unlearn) and focuses in the features that makes javascript awesome.

Test-Driven JavaScript Development by Christian Johansen: It uses real examples to teach how we can write more robust, maintainable, and reliable JavaScript code using automated tests. It includes some frameworks like Node.js, qunit, jasmine and so on.

Secrets of the JavaScript Ninja by John Resig: J. Resig created the most used javascript framework, the JQuery, Written for JavaScript developers with intermediate-level skills, this book covers functions, closures, cross-browser development, object orientation, regular expressions and so on.

Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke: Introduction to javascript, covers the basic, DOM, functional programming and object-oriented programming. It has a free HTML version.

JQuery is a huge part of javascript environment, I added these two books:

jQuery: Novice to Ninja: Clear and fun-to-read, this book covers jquery fundamentals.

Pro jQuery by Adam Freeman – He likes to write bible-like books. In this book he covers almost everything about jQuery, fundamentals, jquery ui, jquery mobile, how to create plugins and so on.

Online Courses

Codecademy’s javascript course: Free course that covers the basic about the language. It has programming exercises that we can answer online.

Code School’ Course: Code School has some javascript courses. Most of them are paid. But they offer a trial period.

Javascript Fundamentals: Development for Absolute Beginners by Bob Tabor: Free course at Channel9 that teaches you the fundamentals of Javascript programming.

Online Videos

Douglas Crockford’s talk at Google Tech Talks about Javascript Good Parts

John Resig’ talk at Google Tech Talks about Best Practices

Brendan Eich’s (Javascript creator) talk about Javascript History

Newsletter

Javascript Weekly: Weekly newsletter about the javascript world, new frameworks, good blog posts and so on.

Good Code

Some writers say that to write a book is necessary to read a lot of other books. Software is similar, so, below is a good amount of good javascript code.

jQuery
jQuery UI
Node.js
D3.js
Angular.js

Call for Suggestions

This list is open to suggestions, so you are welcome to contribute!

4 Comments

  1. Comment by madmaurice:

    what do you think about CoffeeScript?

  2. Comment by paulo ortins:

    I never tried. But some friends gave me good opinions. And you ? What is your opinion ?

  3. Comment by Edwin Martin:

    I would also add Effective JavaScript. It consists of 68 items of JavaScript knowledge. Even if you program JavaScript every day, you’ll learn new things about the language. http://effectivejs.com/

  4. Comment by tech:

    Here are free JavaScript e-books which should be part of the list: http://jsbooks.revolunet.com/

    A couple days ago I signed up for that JavaScript Weekly e-letter. should be a good one.

Leave a Reply

Your email address will not be published. Required fields are marked *