Show me the quick and dirty road to jquery/javascript proficiency
May 7, 2013 5:06 PM   Subscribe

I am hoping to become a fairly nimble noob with jQuery (and understand the javascript logic that goes with it) in about 3 weeks. What is the smartest way forward?

I have been through a fair number of web tutorials (code school, codecademy, lynda, safari books) and I pretty must have the basics down. Can write functions, handle events, understand objects, etc..

But now that I've done that I don't know what the smartest next move is. There is a ton of documentation out there and I don't want to waste time getting in over my head. I am looking for more structured exercises or tutorials that take you all the way through building mock apps but don't know where to find them.

If I had unlimited time I would just start working on small projects and building them for fun for myself and/or on github--but I need to work smart and be as efficient as I can with my time.

Obviously I can't learn it all or become a pro but I hoping up to be able to make the leap to backbone and be able to contribute to a few small-scale web apps. As a noob, but at least a competent one!
posted by OlivesAndTurkishCoffee to Computers & Internet (5 answers total) 38 users marked this as a favorite
3 weeks? Head First JQuery.

Although I'd also just recommend picking an ambitious project and trying to do it. If you can devote 8 hours a day to the project, you can probably get it together.
posted by jenkinsEar at 5:54 PM on May 7, 2013 [1 favorite]

Learning JavaScript - my experience and advice is a nice guide on what order to learn things in.
posted by backwards guitar at 7:11 PM on May 7, 2013 [1 favorite]

Free Codeacademy courses on JavaScript and jQuery.
posted by kirkaracha at 8:44 PM on May 7, 2013

I might recommend actually just hopping on over to Backbone. There's an infinite amount of random stuff to learn about jQuery's API, but you can pretty much look that stuff up as you go along. But moving to a structured & sane approach to writing JavaScript apps is a bigger conceptual step, and one that it's probably good to take ASAP.

Backbone is actually a very simple library, but (therefore) sort of demanding to use. Now that I know how to use it, if I didn't have it, I would just write a rough equivalent -- you could do the basic stuff in like 100 LoC probably. It's more of a support scaffolding for writing JS apps. So learning it isn't that much about memorizing a bunch of stuff, it's more about getting into the Backbone idiom and style, trying things... It's also a highly flexible library meant for extension and reconfiguration, which is fun.

If you haven't already, cultivate an interest in OO design, especially the application of principles like "coupling & cohesion." Basically: dividing your app into pretty little units that can be understood independently, and which communicate in clear and simple ways. That's the whole raison for Backbone-like structures, and something which is sorely, desperately needed in many kludgey old JavaScript systems out there -- taking this seriously will make you a good JavaScript developer. When a frontend coder has the thought "maybe this code should be an event listener in a separate object," angels sing.

I found Kim Joar Bekkelund's Step by step from jQuery to Backbone quite good. Choice quote:
However, the code has increased from 16 lines to more than 40, so why do I think this is better? Because we are now working on a higher level of abstraction. This code is more maintainable, easier to reuse and extend, and easier to test. What I've seen is that Backbone.js helps improve the structure of my JavaScript applications considerably, and in my experience the end result is often less complex and has fewer lines of code than my "regular JavaScript".
posted by mbrock at 11:53 PM on May 7, 2013 [2 favorites]

Give this a shot:
posted by quadog at 10:52 AM on May 8, 2013 [1 favorite]

« Older Count no man happy until he is dead   |   Please tell me about the home residence... Newer »
This thread is closed to new comments.