Roost from Bocoup

7 January 2013

I recently attended Roost by Bocoup. It was an incredible experience that I feel I should share with the whole Internet.

My background

I hate JavaScript.

I know, I know, I'm not exactly alone on that island. Everyone likes to hate on JavaScript. For a long time, I've been able to debug it, and I've even been able to modify it, but I've never, ever been good enough to put it on my resume.

I'd pick up books about it and spend forty pages rolling my eyes. I know how to set a variable! I know what a list is! UGH. Get to the good stuff! I'd then look at some JavaScript that my co-workers had written.

A trickle of blood would flow out of my ear.

What was this madness? I couldn't seem to get to my black triangle.

I'd return to the warm embrace of languages I already knew and let the JS gurus do their thing, leaving them unfettered by my ignorance.

The training

A few months back, an opportunity came up: did anyone want to take some actual jQuery and JavaScript training? My hand shot up. If this didn't fix my broken knowledge, nothing would. I signed up, then fully processed the logistics that would come from going to training in Boston... in December.

My co-worker, an even more delicate Southern flower than me, didn't even own a winter coat. Oh my god. We're so going to die.


Unlike other training events I had been to, this had a distinctly 'conference-y' feel. Talks were given by a trio of names in the JavaScript and jQuery community: Rebecca Murphey, Dan Heberden, and Ben Alman.

I really liked the structure. I felt like my brain had a chance to rest and process after each talk / demo. The topic changes kept the texture of the training engaging. I didn't hit a wall after a few hours, and if I suffered a minor distraction (like needing to hit the bathroom) and couldn't catch up, I knew the next talk would still be easy to follow.

The training was held over two days, and took up the whole day, running from about 9-5 with a break for lunch. The fact that I wasn't totally fried at the end of each day is a testament to the structure.


Day one started off with some soft-balls: HTML5 and CSS3. I didn't mind them starting us off with something pretty easy, because heck, a review is always nice, and my coffee hadn't quite set in yet. Also, I got reminded of the things I wasn't using and kept forgetting existed.

Then, we dropped into JavaScript.

We blasted through the fastest review of JavaScript I'd ever had in my life. The speed worked for me. I had no time to roll my eyes, and it primed me for what was to follow: jQuery.

Like JavaScript, I knew enough jQuery to be dangerous. Though I was introduced to some selectors I hadn't know about before, I was still no closer to writing awesome jQuery. I was still missing something.

Then came the talk about code organization.

The speaker went over many of the issues that JavaScript comes with when it comes to scoping and such, and how causes heartache on pages. Then, he[1] threw something up on the screen.

(function(){ /* code */ }())

That madness. I had seen that madness before. Now it had a name, and a method.

It's an IIFE. And it keeps your crap scoped.

"Isn't that the most un-googlable thing ever?" he joked.

Yes, I wanted to stand up and shout. Yes, it is.

All at once, my co-workers' code started to make sense. They weren't crazy people. They did this for a reason!

I had found my Black Triangle.

There were other awesome things, like Grunt and debugging fun, as well as finally seeing how you make a class in JavaScript (that was always explored after I'd thrown my book across the room). That thing, though, the IIFE, really made things gel for me.

Later, there came a double session about Git and deployment, both of which I'm painfully familiar with. Rather than take notes, I hunkered down and started writing very simple code snippets, totally encapsulated in their cozy IIFEs. For the first time I was actually making JavaScript and jQuery do things. Random bits of knowledge that I had collected came together and formed the framework I needed.

I actually began to like JavaScript.

The last session was a live-coding session that involved Arduino, sensors, node, grunt, and a ton of other things I'm going to google the hell out of at a later date. Though it was a bit ambitious for the time slot it was given, I did appreciate having the chance to watch a pro write something from scratch. Witnessing process is important, and it's something we're more prone to talk about than demonstrate.

Should you go?

If you're like me, and you've never quite been comfortable with JavaScript and jQuery, I would totally recommend going. It also appears that they have other two-day sessions that dive more deeply into other parts of jQuery and JavaScript.

[1] I think this was Ben Alman, since he's written a ton on IIFE. If it was actually Rebecca, I'm so sorry!


Related tags: javascript jquery


1 Derek says...

IIFE? Is that yet-another-roadbloack on the road to True Javascript (101) Mastery??

Posted at 8:29 a.m. on January 7, 2013

2 Katie says...


Happily, it is but a small thing, and it's made working in JS so much easier. I shall post some code later on!

Posted at 4:18 p.m. on January 7, 2013

3 Dan says...

Take a look at RequireJS when you get a chance. Made all that scoping stuff more manageable for me.

Posted at 6:10 p.m. on January 7, 2013

Comments are closed.

Comments have been closed for this post.