And here's my final kick-off thread: what can we do to support an advanced curriculum / experienced developers coming to Clojure?
My understanding of RailsBridge's approach is that they have, effectively, a single outline curriculum and then teachers expand on it, in real time, as needed for each set of students - a single RailsBridge event breaks down into several small groups and each group runs at its own pace and level of detail.
RailsBridge is able to do this because it's teaching a framework and can go deep or shallow on the same material, providing only a brief look at the language as needed for beginner groups.
Assuming we can figure out how to integrate a web application into our beginner-focused curriculum, we have a lot of ground that we could cover, in different modules, for experienced developers.
For example, in data structures, we don't cover sets, the sequence abstraction, or lazy sequences. We don't cover mutable data and STM. We don't cover macros. We don't cover the ecosystem - which is needed for all but the most basic application: Leiningen is deliberately glossed over as simply a way to create a new project and run a simple app, but going beyond beginner level usage requires some understanding of dependencies, including how to find libraries and figure out most recent versions perhaps?
Clojure has quite a few "batteries included" libraries which we don't currently touch -
http://clojure.github.io/clojure/ - as well as several very useful "standard" contrib libraries.
There's clearly a limit to how much we can / should try to cover but I'd like to hear some suggestions on what sort of things people think are important for teaching Clojure to experienced developers?
There's also a question of whether we should consider developing follow-on curriculum so beginners who attend ClojureBridge could have another ClojureBridge workshop to further their skills?
And then there's a basic logistics question around whether we maintain one all-encompassing curriculum with sections tagged "beginner", "experienced", "advanced", "all levels" etc, or whether it would be better to develop separate sets of material (I have a mild preference for the former but I'd be interested to hear perceived pros and cons of any approach here).
Sean Corfield --
http://clojurebridge.org
"ClojureBridge aims to increase diversity within the Clojure community by
offering free, beginner-friendly Clojure programming workshops for women."