Last weekend I participated in an event by the Austin Clojure User Group. They watched LispCast LispCast’s Intro to Clojure screencasts as a group in a classroom setting. Someone had bought a group license and donated it to the group.
We had a group of 12 and many had done little to no clojure before. The two days were divided into 4-hour chunks with snacks and caffeinated beverages. The group was lead by Norman, one of the co-founders of the user group. We watched a bit of the video, paused it and then worked on the exercises on our laptops. We had time for questions, questions and troubleshooting…and for Norman to come by and said oh Nola, you forgot this part… :)
Day One (first video)
The first video was basically working in the REPL. We learned how to write statements and create basic functions. We learned basic operations, conditions, branching It was really great, nobody was fighting with their editor or worried about where to save a file or how do any setup of the project. Just learning how to use the REPL. I think this is a great way to get beginners interested without boring them or making them think they have to memorize this list of functions they don’t really understand.
Near the end of the day we were typing long and longer statements and it was kind of frustrating at times when you made a typo or forgot a ) .. so you had to start your function over. Someone had a great solution: type it in a text editor and then paste it into the REPL. Still I got behind a few times and went to the cheatsheet in the austin clojore repo and copy and pasted the function allowing me to move on and not stress over the syntax.
Day Two (second video)
We starting out making a new project and using the library we worked with the day before. We added some of the functions from the previous day. We learned how to run a clojure program from the command line and how to set the “main” function that is run when the app starts. We learned how to take multiple arguments. Also that clojure code is compiled in order :) which tripped up some of us having the functions called before we had defined them. While previous lesson only used vector, we covered the Set..and later the Map. Introducing these at this point when we need more than a vector I think is brilliant. Verses, the lesson starting out with “here’s a set. here’s a map. go forth and prosper.” having a purpose for those I think really solidifies the reasons for each data structure.
Now to watch part 3 then LispCast’s Web Development in Clojure !!!