How to Organize a Programming Language Club

I previously noted that we started a language club at work.  You know, I searched around but I couldn’t find a copy of the How to Organize a Programming Language Club Handbook. Maybe it’s soldnerds out?  Yes, Stack Overflow has quite a bit of information on how to learn and teach new languages and there’s also a good number of online tutorials which provide language introductions but I was interested in group learning.  After   two months of meetings, I present to you the Unofficial How to Organize a Programming Language Club Handbook. 

1. Gauge interest. Start by surveying prospects. “Excuse me, smart-developer-whom-I-work-with-and-I-think-might-be-interested-in-learning-a-new-coding-language-with-me. Are you interested in learning a new language with me?” If you’re lucky, you work with a bunch of really smart folks who aren’t shy about teaching/learning in a group setting and you’ll have a collective interest in no time.  Simply suggesting the idea is the only effort required.  If you don’t work in this type of environment, maybe you should consider a new place of employment. 

2. Make it official. Send out a “Welcome to the Club” email:

There’s been talk of folks itching to learn new languages – Python, Scala, F# and Haskell to name a few.  Rather than taking on new languages alone, let’s learn in the open.  That’s right.  Let’s start a languages club.  We’ll have everything a real club needs – secret handshake, goofy motto and a high-and-mighty sense that we’re better than everybody else. T-shirts?  Hell YES!  Anyway, I’ve thrown this idea around the office and no one has laughed at me yet so please consider this your very official invitation to be in THE club.

[Insert your ideas about how the club might be run, solicit feedback and suggestions, ask what other folks would like to get out the club, comment about club hazing practices and talk up the T-shirts even more. Finally, call out the languages you are interested in learning and ask the group for their list.]

3.  Send out invitations to the first meeting.  Don’t skimp!  Hallmark greeting cards for everyone.  Personalized.  Hearts over the I’s and everything.  Oh, and be sure to include the list of suggested languages with vote count.  Here the list of languages we are interested in:

Python 5
Ruby 4
Objective-C 3
F# 2
Haskell 2
Scala 2
Ada 1
Boo 1
C# 1
Clojure 1
Erlang 1
Go 1
Pi 1
Prolog 1
Qt 1

4.  At the first meeting, there must be cake.  Lots of cake. And you should tackle some very important questions:

  • Which language should we start with?  You can immediately go with the top vote getter or you could do as we did and designate each person to provide a high-level review of each of the proposed languages over the next two weeks.  After all presentations are completed, vote on the language. Our high-level review consisted of answers to a series of questions.
    all my base cake
  • Decide how often and where the group will meet.  We, for example, meet for a brown bag lunch every Wednesday. 
  • Decide how you’re going to learn.  We determined that the best way to learn is to just dive in and write code.  After choosing our first language (Python), we talked about building an application, or performing coding katas, but we ultimately choose to complete a series of Project Euler problems.  We kept it simple – each member works out the same two problems each week in preparation of a code review the following Wednesday.

5.  Code, Review, Learn.  Prior to the weekly meeting, everyone uploads their solutions to our internal wiki.  Each Project Euler problem has a dedicated page.  In the meeting, we use a really fancy HD projector to show off each member’s solution.  It is very important to use an HD projector.  Again, don’t skimp!  Each code author speaks to their solution, everyone else comments, applauds, points fingers and laughs, etc.  As much as I’ve learned from solving the problems on my own, I’ve learned at least twice as much at the group code review. 

6.  Rinse. Lather. Repeat.  We’ve hosted the language club for 7 weeks now.  The first meeting just set the stage.  The next two meetings provided a review of the languages followed by a first language selection.  The remaining meetings focused on Python and Project Euler problems.  Today we took a vote as to whether or not we’re ready to switch to another language and/or another problem set.  Pretty much everyone wants to stay the course for a few more weeks at least.  Until then, we’ll continue to code the next two solutions, review and learn.

Again, we’ve been having a good time with the programming language club.  I’m glad it got off the ground.  What do you think?  Would you be interested in a language club?  Any suggestions on what we might do better?

Comments

  1. I’m running a languages UG in the Twin Cities (http://www.twincitieslanguagesusergroup.com). We’ve been around for a year and a half now. We have a small, but dedicated group of attendees (around 10-15 per meeting). We don’t use Hallmark cards or cake :) (although the cake idea is a nice idea, maybe to celebrate each year of exsitence).

    The idea of actually learning a language is an interesting one – I might pursue that in the near future (over the course of 2-3 meetings).

    Regards,
    Jason

  2. Thanks for the comment, Jason. Come to think of it, you may have mentioned your Twin Cities User Group in one of your visits to the Spaghetti Code Podcast. Thanks for the reminder and the reference. I had look through your group site and your doing some great stuff. If mentioned this to colleagues in the past — if you’re a .NET developer it seems the Twin Cities area is the place to be. Please keep up the good work — UG and elsewhere. And if the Code Mastery tour makes it to San Diego, I’ll have to introduce myself.

  3. hey, I usually dont read these types of blogs cause I think the industry is wack now but you make a good point so im gonna link to this post on my site good looking.

  4. A very usefull article – A big thank you I wish you will not mind me writting about this article on my blog I will also leave a linkback Thank you The reason why internet marketing services software is so prevalent on the net is that it’s probably the most lucrative businesses online. Many online marketers prey on the beginners and create killer sales material to profit on their inexperience. Just how do you determine if you truly need internet marketing services software? When you begin website marketing and building your web site you should attempt to make the most of your own research and do the maximum amount of work as it is possible to through free sources before purchasing any internet marketing services software systems. For anyone who is new, it’s tough to know what you’re buying and how it can benefit you if you can not comprehend what you are doing. Once you handle tasks with no shortcuts you will be gaining valuable knowledge and teaching yourself what works and what doesn’t before you’ll waste any cash.

closed