Advanced jQuery Training at SF jQuery Conf 2011

Thursday 24 February, 2011 by justinbmeyer

The team at Jupiter will be giving the Advanced jQuery Training at the San Fransisco jQuery Conference on April 15th, 2011. If you write complex jQuery apps, and consider yourself a jQuery Pro, this will be the most beneficial 8 hours of development advice you ever get. If you are coming, please leave a note about topic you'd like covered in the comments below. The remainder of this article covers our goals for the training, our approach, and what we plan on covering.

The Goal

I'm actually a little surprised we were picked to give this training.

I'm surprised because I proposed training topics less on the advanced features of jQuery and more on developing complex applications with jQuery.  Naturally, there is much crossover (as you'll see), but its an important distinction. 

Our primary goal is for trainees to look at something like:

Zend

... and say "No Problem!"

The critical lesson is how to take these requirements and break them up into manageable, testable, high-performance pieces.  Secondary is how to build those pieces with jQuery.

I also want to provide an opinionated but intellectually honest lesson. I'm not going to prosthelytize JMVC, but you'll know just how dumb I think using $.fn.live is.

The Method To Our Madness

If you didn't know already, you can hire us for jQuery and JavaScriptMVC training.  We'll be using that material (JMVC sanitized) for the jQuery training.

But our training methods are ... um .... unique.  When we first started training people on JavaScript, we did it like you were likely taught in school - lectures followed by 'practice' problems.  We'd cover JavaScript, then jQuery, then each part of JMVC.  What we found was that teaching something like prototypal inheritance without providing context of when and why it's necessary was pointless and forgettable. 

Eventually, we reworked our trainings.

Today, we start with something the client wants to build, break it up into pieces, build a piece, test it, repeat. The first widget might be a tabs widget that we make extend-able into a 'history-tabs' like The Perfect jQuery Plugin demonstrates. When we get to the part about "prototypal inheritance", we'll give the lecture on prototypal inheritance and return back to building the tabs widget.  When it comes time for the tabs widget to integrate with other widgets, then comes the talk on Event Oriented Architecture before we return to the tabs widget.

Essentially, we value two qualities above all else:

  • Context - Don't talk about prototypal inheritance in a vacuum.  Run into the problem it solves, then talk about it.
  • Keep People Coding - Unless people write it, they don't remember it.

I'd rather have people understand a few simple concepts well, then a million things poorly. 

Topics

The following is a rough list of topics we'd like to cover.  I list them here quasi hierarchically.  But in reality, we'll cover most of these topics throughout the day.

  • Application Design
  • Thin Server Architecture
  • State Management
  • History Enabled Websites
  • Widget Design
  • Event Oriented Architecture
  • Custom Events
  • Pub-Sub
  • Event Delegation
  • 1-2-3 Layers / Separation of Concerns
  • Organizing Ajax and the Domain Model
  • Deffereds
  • Ajax Fixtures
  • Client Side Templates
  • The Perfect jQuery Plugin
  • Prototypal Inheritance
  • File/Folder Organization
  • Dependency Management
  • Production Builds
  • Testing
  • QUnit, Jasmine, Selenium, FuncUnit, Waitr, etc
  • High Performance jQuery
  • Even More Design Reviews

Yes, that's a whole lot to cover! So come and be prepared to have your mind blown (and let me know if there's something else you'd like to learn).

Conclusion

You might have noticed that much of what I listed is not specific to jQuery. It's about building advanced applications with jQuery, not exactly Advanced jQuery. But jQuery supporting this talk means that it takes the challenges we application (vs website) developers face. I look forward to the opportunity to teach others how to push the envelope of web development wide open with jQuery as their swiss army knife.

Subscribe to:

Related Content