How to Teach a
ClojureBridge Workshop
1
slack group

clojurebridgeworkshop
Introductions
Nola
• Co-founder of devchix
• Organize several meetups, currently Austin
Ruby, help with Austin Clojure and Women Who
Code
• Have done two ClojureBridges, one Clojure
Workshop, one RailsBridge
• Independent consultant doing Ruby and Clojure
Millie
• Member of the ClojureBridgeMN Board who has hosted
six ClojureBridge workshops since 2014.
• Founded and lead a Women's Affinity Group for two years
at my previous company.
• Currently a Software Development Instructor at Prime
Digital Academy in Minneapolis. Previously, server-side
Java Developer.
• Studied Computer Science at a Women's College. I
believe strongly in the power of Women's Education,
especially in STEM.
Your Turn!
• Name
• Where you are from
• Favorite kind of Taco?
History of
ClojureBridge
7
Inspired by Railsbridge
• San Francisco Ruby: 97% men, 3% women
• In one year -> up to 18% women
RailsBridge
ClojureBridge
• Initially started by a group of Clojure devs who
wanted to have the same success as RailBridge
• Sean Corfield, Bridget Hillyer initially started
getting together the materials
Other Bridges
• RailsBridge
• MobileBridge (IOS/Swift)
• GoBridge
BridgeTroll
ClojureBridge Objectives
ClojureBridge aims to increase diversity within
the Clojure community by offering free,
beginner-friendly Clojure programming
workshops for underrepresented groups in
tech.
— https://github.com/ClojureBridge/
organizing
Getting Attendees
14
Advertise: Where
word of mouth and delegation
• Attend local Clojure meetup.
• Attend any other technical user group.
• Attend or advertise through other local affinity
groups.
• University Computer Science Departments.
• Website for event, Facebook, and Twitter.
Advertise: How
word of mouth and delegation
• Attending events in person is the most effective.
• When attending events, it is helpful to have
something to hand out.
• Have a few stock emails ready to send to
various groups to advertise the event.
Getting Sponsors
Sponsorship
short term management
• Companies who do clojure in town
• Coworking or boot camps might let free use of space
• Book companies who have Clojure books (Pragprog, ORA,
Manning etc)
https://github.com/ClojureBridge/organizing/blob/master/Money-
Things.md
Bridge Foundry
long term management
• Bridge Foundry is the umbrella organizations for all bridges with 501c3
non-profit status.
• Apply for a PexCard through Bridge Foundry.
• Donations can go through Bridge Foundry and be accessible on your
clubs PexCard (debit card).
• More official way to handle money and Paypal link for individual donations.
• info@clojurebridge.org
https://github.com/bridgefoundry/operations/blob/master/using-funds/pex-
cards.md
http://bridgefoundry.org/about.html
TAs
Getting TAs
• Local Clojure meetups or people in your network
• Any local (functional) programming user groups
• ClojureBridge Slack channel and mailing list
• The nation/international organization might be
able to help connect your area with a trainer
Training
tech
• Meet at least once in person before the
workshop.
• Meet to go over workshop projects and materials
• Meet to learn how to use the chosen editor
Training
code of conduct
If you are not sure if something is appropriate
behavior, it probably isn’t.
• Bridge Foundry and ClojureBridge Oraganizing
docs have a lot of good tips. Review these
documents with all TAs.
https://github.com/ClojureBridge/organizing/blob/master/TA%20Training.md
https://github.com/clojurebridge-minneapolis/organizing/blob/master/
resources/ta-meeting-notes.md
Creating a Safe
Space
24
https://github.com/ClojureBridge/organizing/blob/master/Resources-on-
Diversity.md
Below is a list of resources, created by people of diverse
backgrounds, about how to facilitate inclusive spaces for (cis/
trans) women, people of color, and people who identify as
LGBTQIA.
People
• Who ever comes are the right people
• Introductions
• Name, how you heard about ClojureBridge (easy
icebreaker), track
• Have someone watching the space and check in on
people that look like they need help. But, don't hover.
• Introduce students to each other
• Clear direction
Planning Ahead
• A lot of the groundwork with the TAs will pay off here.
• Code of contact printed and easily accessible.
• Main point of contact at workshop with contact
information printed and easily accessible.
• Pronouns. Ask as part of registration. In Minneapolis
we print these on badges.
• Badges or t-shirts that help identify TAs and
organizers.
Logistics
Food
• ask about food allergies / preferences (gluten free,
vegan, vegetarian)
• taco/burrito bar is good choice, ingredients are
separated (ie meat and cheese)
• greek/indian food is also good but may be
expensive
• pizza or sandwiches are good if you can
accommodate food preferences
Keeping Food Costs Low
• To avoid wasted food, choose a food that you
can order morning of when you know how many
people are there.
• Get some food in bulk that could be reused later
(ie chips or cookies in individual packages)
• Breakfast not required, coffee/tea/water would
be sufficient
Managing Signups
• Eventbrite
• Google form to express interest and then people
are chosen
• ClojureBridge never charge a fee
• Not even a donation to a good cause :)
Improve Attendance
Free workshops can have higher numbers of no shows.
• Signup - doesn’t mean they get a seat. Appearance of a
selection process.
• Email Reminders
• One day workshops
• Invite ladies directly
• Announce a month early but not before
https://github.com/ClojureBridge/organizing/blob/master/How-to-
Improve-Attendance.md
To Install Fest or not?
• Traditionally Friday night is InstallFest
• In Austin for example… Friday night traffic can
be .. interesting
• Could send install instructions to be done ahead
of time (at least java install)
• Could install first thing on Saturday, but then you
have less time for workshop
Space
• Use a Bootcamp or Co-working space
• Use an office space
• Make sure you have a projector
• Have plenty of power strips and table/chairs
• Plan for what to do with leftover food (coolers
etc) containers to give out leftovers
Workshops
Determine Audience
• Beginner (no programming experience)
• Experienced in a language (+6 months)
• Alumni (attended prior workshop)
Styles of Workshops
• Lecture with pauses to work on exercises
• Self-study with folks around to help
• A mix of both
Extra Content
• have a panel of women developers to inspire
new developers
• have experienced Clojure Devs talk about what
they use Clojure for and Q/A
Editors
• Nightcode - structured editing, instarepl
• LightTable - structured editing, instarepl
• Atom, no repl but could use console repl
• Nightlight
Perks
Companies that donate
• PragProg may give free ebooks or % off coupon
• PurelyFunctional will give 1 yr free subscription
• LambdaIsland will have 1 yr free subscription
• Alumni will get a free ticket to ClojureWest, Conj
• O’Reilly Media may donate books
Swag
• group stickers with ClojureBridge Logo
• some groups have printed t-shirts or other items
The Projects
Quil - Drawing App
• learn functions
• getting mouse coordinates in quiz
• function composition
• loading images in quil
Quil - Turtles
• using predefined functions
• using the repl
• using doseq
• creating your own functions
• using :keys to destructure function params
Overtone - Tones
• sequences
• using doc to look at function docs
• writing a function with multiple arities
• using let to build up local vars
• composing functions to be more complex
World Bank API - Global
Growth
• learn about APIs
• parsing json
• using clj-http
• using compojure
• cleaning/filtering data
Web App Intermediate
Chatter App
• simplest web app
• increase complexity
• add bootstrap, elements on page as functions
• use kerodon to create integration tests
Web App Beginner
Chatter App
• Simple web app online by the end of the day
• exposure to coding ecosystem and a taste of
what you could build
• terminal, git, GitHub (other), heroku
• Clojure!
http://clojurebridge-minneapolis.github.io/
MN Track2
• Deeper dive into Clojure syntax and what it
means to be a functional language
• Try it out with with Clojure Koans
• Concurrency talk that revisits chatter app from
track one
http://clojurebridge-minneapolis.github.io/

How to Run a ClojureBridge Workshop

  • 1.
    How to Teacha ClojureBridge Workshop 1
  • 2.
  • 3.
  • 4.
    Nola • Co-founder ofdevchix • Organize several meetups, currently Austin Ruby, help with Austin Clojure and Women Who Code • Have done two ClojureBridges, one Clojure Workshop, one RailsBridge • Independent consultant doing Ruby and Clojure
  • 5.
    Millie • Member ofthe ClojureBridgeMN Board who has hosted six ClojureBridge workshops since 2014. • Founded and lead a Women's Affinity Group for two years at my previous company. • Currently a Software Development Instructor at Prime Digital Academy in Minneapolis. Previously, server-side Java Developer. • Studied Computer Science at a Women's College. I believe strongly in the power of Women's Education, especially in STEM.
  • 6.
    Your Turn! • Name •Where you are from • Favorite kind of Taco?
  • 7.
  • 8.
    Inspired by Railsbridge •San Francisco Ruby: 97% men, 3% women • In one year -> up to 18% women
  • 9.
  • 10.
    ClojureBridge • Initially startedby a group of Clojure devs who wanted to have the same success as RailBridge • Sean Corfield, Bridget Hillyer initially started getting together the materials
  • 11.
    Other Bridges • RailsBridge •MobileBridge (IOS/Swift) • GoBridge
  • 12.
  • 13.
    ClojureBridge Objectives ClojureBridge aimsto increase diversity within the Clojure community by offering free, beginner-friendly Clojure programming workshops for underrepresented groups in tech. — https://github.com/ClojureBridge/ organizing
  • 14.
  • 15.
    Advertise: Where word ofmouth and delegation • Attend local Clojure meetup. • Attend any other technical user group. • Attend or advertise through other local affinity groups. • University Computer Science Departments. • Website for event, Facebook, and Twitter.
  • 16.
    Advertise: How word ofmouth and delegation • Attending events in person is the most effective. • When attending events, it is helpful to have something to hand out. • Have a few stock emails ready to send to various groups to advertise the event.
  • 17.
  • 18.
    Sponsorship short term management •Companies who do clojure in town • Coworking or boot camps might let free use of space • Book companies who have Clojure books (Pragprog, ORA, Manning etc) https://github.com/ClojureBridge/organizing/blob/master/Money- Things.md
  • 19.
    Bridge Foundry long termmanagement • Bridge Foundry is the umbrella organizations for all bridges with 501c3 non-profit status. • Apply for a PexCard through Bridge Foundry. • Donations can go through Bridge Foundry and be accessible on your clubs PexCard (debit card). • More official way to handle money and Paypal link for individual donations. • info@clojurebridge.org https://github.com/bridgefoundry/operations/blob/master/using-funds/pex- cards.md http://bridgefoundry.org/about.html
  • 20.
  • 21.
    Getting TAs • LocalClojure meetups or people in your network • Any local (functional) programming user groups • ClojureBridge Slack channel and mailing list • The nation/international organization might be able to help connect your area with a trainer
  • 22.
    Training tech • Meet atleast once in person before the workshop. • Meet to go over workshop projects and materials • Meet to learn how to use the chosen editor
  • 23.
    Training code of conduct Ifyou are not sure if something is appropriate behavior, it probably isn’t. • Bridge Foundry and ClojureBridge Oraganizing docs have a lot of good tips. Review these documents with all TAs. https://github.com/ClojureBridge/organizing/blob/master/TA%20Training.md https://github.com/clojurebridge-minneapolis/organizing/blob/master/ resources/ta-meeting-notes.md
  • 24.
    Creating a Safe Space 24 https://github.com/ClojureBridge/organizing/blob/master/Resources-on- Diversity.md Belowis a list of resources, created by people of diverse backgrounds, about how to facilitate inclusive spaces for (cis/ trans) women, people of color, and people who identify as LGBTQIA.
  • 25.
    People • Who evercomes are the right people • Introductions • Name, how you heard about ClojureBridge (easy icebreaker), track • Have someone watching the space and check in on people that look like they need help. But, don't hover. • Introduce students to each other • Clear direction
  • 26.
    Planning Ahead • Alot of the groundwork with the TAs will pay off here. • Code of contact printed and easily accessible. • Main point of contact at workshop with contact information printed and easily accessible. • Pronouns. Ask as part of registration. In Minneapolis we print these on badges. • Badges or t-shirts that help identify TAs and organizers.
  • 27.
  • 28.
    Food • ask aboutfood allergies / preferences (gluten free, vegan, vegetarian) • taco/burrito bar is good choice, ingredients are separated (ie meat and cheese) • greek/indian food is also good but may be expensive • pizza or sandwiches are good if you can accommodate food preferences
  • 29.
    Keeping Food CostsLow • To avoid wasted food, choose a food that you can order morning of when you know how many people are there. • Get some food in bulk that could be reused later (ie chips or cookies in individual packages) • Breakfast not required, coffee/tea/water would be sufficient
  • 30.
    Managing Signups • Eventbrite •Google form to express interest and then people are chosen • ClojureBridge never charge a fee • Not even a donation to a good cause :)
  • 31.
    Improve Attendance Free workshopscan have higher numbers of no shows. • Signup - doesn’t mean they get a seat. Appearance of a selection process. • Email Reminders • One day workshops • Invite ladies directly • Announce a month early but not before https://github.com/ClojureBridge/organizing/blob/master/How-to- Improve-Attendance.md
  • 32.
    To Install Festor not? • Traditionally Friday night is InstallFest • In Austin for example… Friday night traffic can be .. interesting • Could send install instructions to be done ahead of time (at least java install) • Could install first thing on Saturday, but then you have less time for workshop
  • 33.
    Space • Use aBootcamp or Co-working space • Use an office space • Make sure you have a projector • Have plenty of power strips and table/chairs • Plan for what to do with leftover food (coolers etc) containers to give out leftovers
  • 34.
  • 35.
    Determine Audience • Beginner(no programming experience) • Experienced in a language (+6 months) • Alumni (attended prior workshop)
  • 36.
    Styles of Workshops •Lecture with pauses to work on exercises • Self-study with folks around to help • A mix of both
  • 37.
    Extra Content • havea panel of women developers to inspire new developers • have experienced Clojure Devs talk about what they use Clojure for and Q/A
  • 38.
    Editors • Nightcode -structured editing, instarepl • LightTable - structured editing, instarepl • Atom, no repl but could use console repl • Nightlight
  • 39.
  • 40.
    Companies that donate •PragProg may give free ebooks or % off coupon • PurelyFunctional will give 1 yr free subscription • LambdaIsland will have 1 yr free subscription • Alumni will get a free ticket to ClojureWest, Conj • O’Reilly Media may donate books
  • 41.
    Swag • group stickerswith ClojureBridge Logo • some groups have printed t-shirts or other items
  • 42.
  • 43.
    Quil - DrawingApp • learn functions • getting mouse coordinates in quiz • function composition • loading images in quil
  • 44.
    Quil - Turtles •using predefined functions • using the repl • using doseq • creating your own functions • using :keys to destructure function params
  • 45.
    Overtone - Tones •sequences • using doc to look at function docs • writing a function with multiple arities • using let to build up local vars • composing functions to be more complex
  • 46.
    World Bank API- Global Growth • learn about APIs • parsing json • using clj-http • using compojure • cleaning/filtering data
  • 47.
    Web App Intermediate ChatterApp • simplest web app • increase complexity • add bootstrap, elements on page as functions • use kerodon to create integration tests
  • 48.
    Web App Beginner ChatterApp • Simple web app online by the end of the day • exposure to coding ecosystem and a taste of what you could build • terminal, git, GitHub (other), heroku • Clojure! http://clojurebridge-minneapolis.github.io/
  • 49.
    MN Track2 • Deeperdive into Clojure syntax and what it means to be a functional language • Try it out with with Clojure Koans • Concurrency talk that revisits chatter app from track one http://clojurebridge-minneapolis.github.io/