This past Tuesday we had the first NodeSchool workshop - Atlanta chapter of 2015. During the workshop, I help people with programming questions almost non-stop for 2 hours. By the end I was exausted, but in a good way - like after playing a three-set tennis match. In this post I'll recount
- how the event was put together
- how it went, and
- what to improve for next time
Time Of Day
I chose to do this in the middle of the day, from 2pm-4pm. I did this mostly due to personal reasons - I have children and associated responsibilities, therefore I am keeping night outings to a minimum. I realized that this would make it difficult for some people to come - I do plan to do something at night in the future, just not on a regular basis. This is a test to see if I can get a good turn out during daytime.
I have done workshops before, and 20 is an upper limit if you want to give students good one-on-one support when they are stuck. I didn't have any mentors helping me. I could have tried harder to ask for help, but I didn't because partly of dreading the coordination I'd have to do, and partly because I have devised a scheme which allows/encourages students to help each other, which - if it works, and that's a big if - would obviate the need for additional help.
The Setup Videos
Having been to many NodeSchool workshops at NodeConf and I know that setting up is often a huge drain of time. If every student had install the required software beforehand, how much better would the workshops go?
So I made screencasts instructing the students to install Node, the workshopper of their choice, and a text editor. There is
I emailed links to these to the members who RSVP'ed to the event 4 days prior to it.
I had a couple of tricks up my sleeve:
- Give each student a post-it note. Ask them to stick it on the back of their laptop when they need help - this one I stole from @radishmouse.
- Give each of them a set of post-it flags - each time they complete a lesson, they will shout "yes!", throw their hands in the air, and then add a flag to the back of their laptop.
These strategies were devised to help me in case I got flooded with requests for help. If there were more than a few posted notes put up, I would enlist the help of a student who is ahead of the others. If the someone in need has a high flag count, I can prioritise him/her lower because they're already doing good in terms of confidence and remaining lessons vs remaining time.
The Event Page
I got there half an hour early to get set up. A few students showed up early too, enough time to chat a bit about learning to code and code bootcamps. I am happy to report that an early survey showed that 5 out of 6 students came prepared with the software already installed, Yes!
I wrote up the WIFI settings and instructions on my laptop, which was connected to two large displays. In retrospect I should have put them up on the whiteboard because when I left my laptop it quickly went to sleep.
Some students did follow my instructions and shout "yes!" when they solved one of the lessons - that's a really natural thing to do so all I had to do was give them permission. This lifted the mood in the room. I could see the flags being put up one by one as they complete the lessons. Some of them did really well!
I jumped from student to student almost non-stop, but I was never really overloaded. The students were pretty good about helping each other out, and I didn't have to tell them to. Some of the more experienced ones took charge and lead the inexperienced ones next to them.
Software installation wise, we did pretty well. However, we did have some issues nevertheless:
- One student had a PowerPC iBook and simply could not get Node to run - I asked her to pair with someone else.
- For one student, the verify step was silent - it didn't print out anything at all. I started the workshopper in a different newly created directory, and that solved the problem.
- For another student, the verify step would print out just a generic "something went wrong" message whenever his answer failed validation.
I didn't take time to debug these issues further because I felt helping the students with code was a better use of my time at the moment.
Issues With Workshopper
- For Windows users, students were told to use
NUL > introduction.js, this didn't always work and sometimes resulted in cryptic errors.
- Some lessons were worded in a confusing way to the students, and one student said that more context would help. I also heard the sentiment that "this is harder than it has to be", reflecting the feeling that the final solution is simpler than the written instructions made it seem. I think that for some, it sometimes felt like a game of figuring out what the verifier program wants you to do rather than learning about a particular programing concept. Notably, from what I can remember - and there may be more - these lessons were problematic:
- ROUNDING NUMBERS
- NUMBER TO STRING
- For-loops were problematic for several students. I think while loops would be a better choice as an introduction to loops.
- When a validation fails for a student, the output message isn't always helpful. It sometimes displays the actual vs expected results, but it doesn't display what input values the test fed into the code.
- I recommended to the students to always run the script by itself using just the
nodecommand before trying to verify it. I think this makes it more clear what they are actually doing, gets them to experience the real process of programming in Node, and also makes debugging easier. I think the lessons should recommend this as well.
At the end of the workshop, some students exclaimed more than once how amazing this workshop was to them. They had tried to learn on their own using various materials with incremental success at best, but this workshop was clearly a turning point for them. I attribute this to the act of doing over reading. Also, having mentors to help you is very important as well. Thanks to Substack, Max Ogden, Mikeal Rogers, Rod Vagg, and other contributors who made NodeSchool a thing!
For the next workshop, here are the things I would like to do better:
- Include a quick workthrough on lesson 0 in the screencast. This will show them what they should expect when they verify a problem and what they should expect from end to end.
- Put in some time to improve the workshoppers by addressing the issues I mentioned above.