Start a Meetup - racket/racket GitHub Wiki

Tips on Starting a Racket User Group

shamelessly copied from http://clojure.org/community/start_group with minimal changes

Starting a user group is a great way to improve your Racket skills and find others interested in Racket in your area. If you’ve never run a user group before, that’s ok! Anyone can do it.

A user group needs the following elements:

  1. A place to meet. Finding a regular meeting place is sometimes the biggest hurdle a group faces when getting off the ground. Often the ideal option is finding a company that can host a group after-hours. If that’s not an option, some other choices include universities, colleges, libraries, or coffee shops. (Try to avoid pubs as not everyone is comfortable with alcohol)
  2. What to do? Some meetups consist of short talks and a chance to chat, others are 'Hackathon' type events where coding can provide a valuable way of meeting without the stress of both giving and arranging presentations. Hackathons can be people working on a single project or on on individual projects. They can be followed by presentations, or not. Try different things out and see what works.
  3. Agree on a time. It’s important to establish a rhythm to keep a group going. Pick a night (like the 2nd Tuesday of the month) and try as much as possible to have your meeting on that same night every month.
  4. A web presence. It’s important to have an address on the web that can be found by a search engine. See below for some tools you can use.
  5. Racketeers!! You can’t have a meeting without people. Ask around on the racket mailing lists for people that might be interested.

Tools

Common problems

"We have a group but it’s hard to find enough speakers." or "The same people always give talks."

Not every meeting has to have a speaker that gives a prepared talk. Think creatively about other ways to have a meeting that gives value. Some ideas:

  • Lightning talks - do 5 or 10 minute talks on small subjects. Paradoxically, doing more shorter talks at a meeting is sometimes easier than scheduling one big talk. Each presenter has to prepare less material and meetings have a smaller risk of a bad meeting due to one inexperienced speaker. Try doing two or three talks per meeting.
  • Live coding session - start with a small problem (it’s hard to start too small for this) and let the group drive the evolution of the solution.
  • Code review - bring some code and walk through it. Explain the code, take comments on style, performance, etc. Rewrite parts of it to make it better.
  • Contribute - pick a bug from the Clojure bug tracker and work on it together. Or review the documentation and figure out some improvements. Even providing a list of things confusing to newcomers is useful.
  • Review a paper - there are tons of great books and papers on Racket, Lisp, Clojure, functional programming, persistent data structures, etc. Pick one and lead a discussion about the merits or flaws of the paper.
  • Book study group - review a book like HTDP or some other classic
  • Competition - have everyone bring a solution to the same problem in Clojure or other languages and compare the result.
  • Games Night - have everyone make a simple game with the Universe library and just have some fun.

"We have a mailing list but no one ever uses it."

The best way to get people talking on a mailing list is to talk on it yourself. Post your meeting announcements, meeting recaps, articles of interest, code snippets, etc. Ask people to introduce themselves on the list - people love to talk about themselves. Mailing lists require some bootstrapping. Eventually, the mailing list will become self-maintaining but it takes some work at the beginning or if there is a lull.

"Recruiters have joined our mailing list and keep posting job ads."

It’s important to have a policy for recruiters and job postings. Decide on your policy, document it, and refer people to it. Some common policies are: "job postings are allowed", "only job postings pertinent to the group are allowed", "only approved job postings are allowed", etc. Some groups have a separate mailing list only for jobs and recruiting.

"I can’t find enough people to have a meeting."

If you can’t find enough people to start a Racket group, perhaps you can broaden the scope to find others that might like to talk about Racket some of the time. Are there people interested in a functional programming group? A programming languages group? A sexp-based languages group? A programmer’s club? Remember to accommodate a range of abilities from beginners just starting out, all the way up to advanced racketeers.