“First learn stand, then learn fly. Nature rule, Daniel-san, not mine.” — Mr. Miyagi, The Karate Kid (1984)

Saturday 23rd of May was International NodeSchool Day, with workshops focused on grokking Node.js taking place all over the globe.

The canny bods at JSOxford were running an event locally at White October’s offices in Oxford’s hip Cowley suburb as part of their Summer of Hacks programme. Intrigued by the thought of spending a day immersed in NodeJS, I duly sauntered along in my Vibram’s to see what was cooking in their Node kitchen. I’m glad I did because the day was proper station.

“Station!” — Ted, Bill & Ted’s Bogus Journey (1991)

The Morning

The day was structured such that the first half was spent working through the learnyounode workshop. This workshop is introductory Node material, covering topics such as asynchronous IO and the module system.

learnyounode workshop

This material is good and presented well via a lovely command line application. I’d recommend it to my colleagues to bootstrap their Node learning. Some of the error messages were a tad cryptic, but that’s easily addressed: one of the attendees even took the time to submit a Pull Request to improve the error message in one of the exercises.

Personally I didn’t get much from the material having already covered the content in my earlier explorations of NodeJS. It was good to structure the day this way though, because more experienced folk were thus pushed to pair with less experienced folk and there was plenty of knowledge-sharing and conversation which made me happy.

The Afternoon

The second half of the day was devoted to “electives”: material that covered a specific area of NodeJS to an intermediate level. (Promises, Express, Working With Binary Data, that sort of thing.). Folk were encouraged to pick an elective that interested them, and they could then either pair with like-minded folk or strike out on their own. If folk wanted to continue with the learnyounode module they could do that too.

I dipped in and out of a few electives, sampling them and getting a feel for ones that I’ll work through on my own time later. The Functional Elective isn’t particularly NodeJS-focused – being more of a general ES5 elective – but Ryan and I had a fun few minutes working through the trampolining exercise.

I liked that folk could investigate areas of NodeJS that appealed to them. The (slight) downside is that folk fragmented into isolated clusters and a little of the collaborative pair programming vibe was lost. I spent some of the afternoon wandering around asking folk about what they were working on and offering help where I could.

There was a definite “post burrito” slump after lunch :laughing: Thanks for the awesome lunch HaybrookIT, you rock!

The Evening

And then we retired the the pub for some drinks and fine banter. What happened at the pub stays at the pub though, so I will speak no more of it here save to mention that there was krumping.

What I Wanted From The Day

I use a lot of the Amazon Web Services stack in my day job and the recent release of AWS Lambda has opened the door to using NodeJS.

I wanted to spend the day knee deep in the mud of NodeJS: I wanted to wiggle my toes deep in the cool muck and get a good feel for the Node ecosystem.

What I Got From The Day

I spent ~6 hours immersed in NodeJS via the excellent material provided by the NodeSchool website.

I got to know about a great resource for bootstrapping the folk on my team into NodeJS. I also learned about cowsay. Finally, I got to enjoy the company of some great folk that I already know, and got to meet some new folk on the JSOxford scene.


Many thanks to Ryan and Ben from JSOxford for organising the day, to Sarah from HaybrookIT for sponsoring the event, to the NodeSchool community for providing such sweet resource, and to the folk that attended on the day.

Shout out to Adam for his stirring singalong of The Rains of Castamere. #awesome

“Lesson not just karate only. Lesson for whole life. Whole life have a balance.” — Mr. Miyagi, The Karate Kid (1984)