---
title: "Organising a Programming  CAFE"
source: The Turing Way
source_url: https://github.com/the-turing-way/the-turing-way
licence: CC-BY-4.0
domain: data-and-analysis
subdomain: turing-way
date_added: 2026-04-25
---

(cl-mec-organising-coding-cafe)=
# Organising a Programming  CAFE

A programming CAFE (Code Along, Feel Empowered) is a community event that brings together programmers and those interested in starting programming - both researchers and research supporters - to share knowledge about programming and learn with each other in an open and informal setting.

For both participants and organizers, a programming CAFE offers a fun and welcoming way to explore coding. At the same time, organising recurring events can be challenging, especially if the organisers do not have the event management background - most of us don't.
That is why a group of CAFE organisers from different Dutch institutions came together to create a [CAFE Playbook](https://code-cafes-nl.github.io/cafe_playbook/): an online guide, where you can find detailed information on how to organise a CAFE, as well as resources that help you with the organisation.
This chapter is a summary of the playbook with the most essential information. 


## Why start a programming CAFE?

Programming has become an essential skill for many fields of research. 
However, learning to code can feel challenging and at times isolating - especially for beginners. 
That’s where a programming CAFE community can make a significant difference.
Here's why you might want to consider starting a programming community in your institution:

- **Share the burden of learning**

Programming is a collaborative activity, and having a community of programmers can help foster collaboration and knowledge-sharing.
By working together on projects, sharing tips and tricks, and discussing best practices, researchers can learn from each other and grow their skills faster than they would working alone.

- **Discover what you don't know**

You don't know what you don't know - but others might.
Having a community of fellow programmers to turn to for support, advice, and encouragement can make all the difference.
A programming community like CAFE can provide a supportive environment where researchers can connect with others who share their passion for programming and are eager to help them succeed.

- **Access resources and opportunities faster**

A programming community like CAFE can also provide access to resources and opportunities that might otherwise be difficult to find. For example, members of the community might share job or internship opportunities, recommend useful tools and libraries, or organize coding workshops and hackathons.

- **Give a head start for those who need it**

Researchers have different disciplinary backgrounds and programming experience.
For some starting to code feels intimidating.
It's not surprising, the programming world is often portrayed as highly competitive, male-dominated and full of tech jargon. 
A well-strcutured programming CAFE can help demystify coding and turn it into practical, approachable research tool.

- **Have fun, together**

Coding doesn’t have to be solitary or stressful.
When done together, programming, and making and errors, debugging, failing and trying again can be rewarding, or even fun experience, rather than a daunting and demotivating task.


## What is a programming CAFE?

A programming CAFE can take on many forms, ranging from the niche application of a specific language in a specific field of research, to a language agnostic CAFE providing content to users of all skill levels.
Each comes with benefits and drawbacks.
Too niche, and you are catering to a very small potential audience, while being too generic may not engage people to join.
It will be harder to create the feeling of community if there is a lack of focus (but perhaps the goal is to distribute knowledge rather than create a community).
There is no correct answer.
The key is to explore the wants and needs of the community (see [Who is the target audience?](#cl-mec-organising-cafes-audience)).

### Programming languages

A programming CAFE can be focused on a single programming language, cater to multiple languages, or be language agnostic.
For example, you might start a CAFE that focuses exclusively on Python, or you might create a broader CAFE that covers several programming languages such as Python, R, and MATLAB.

### Research applications

Finally, you might choose to define the focus of your programming CAFE based on specific research applications.
For example, you might start a CAFE focused on R for genomics, or one that is dedicated analysing survey data.
A more general example is a CAFE focusing on reproducibility of research.


(cl-mec-organising-cafes-audience)=

## Who is the target audience?

Knowing your (intended) audience is key to providing content that will engage them and get them to actually turn up to events.

### Skill levels and motivation

You might start a CAFE tailored to beginners, or you might create a more advanced CAFE that caters to experienced programmers.
Alternatively, you might choose to create a CAFE that is open to researchers of all skill levels, with a focus on collaboration and knowledge-sharing.
The motivation of participants may be very different, even within skill levels.
The beginner programmer might just be interested in solving a problem in their research, or they have caught the programming bug (pun intended) and want to know more about the inner workings of programming.

#### The beginner programmer

The beginner programmer is just starting to learn how to code and may feel overwhelmed by the complexity of programming languages and tools.
They might have a background in a non-technical field, such as the humanities or social sciences, and are interested in learning how to use programming to solve problems in their research.
They might have followed a generic introductory course, but get stuck as soon as they start working with their own data and therefore feel discouraged.
A CAFE community can provide the beginner programmer with a supportive environment where they can connect with others who are also learning to code, ask questions, and get help when they need it.

#### The advanced programmer

The advanced programmer has already developed a strong skill set in one or more programming languages.
They might be looking for opportunities to share their knowledge with others, collaborate on projects, or learn about new tools, techniques or best practices related to Open Science and FAIR data and software.
A CAFE community can provide the advanced programmer with a platform to share their expertise, connect with other skilled programmers, and stay up-to-date with the latest trends in the field.

#### The interdisciplinary researcher

The interdisciplinary researcher comes from a field of study that traditionally has not emphasized programming, but recognizes the importance of using computational methods to answer research questions.
They might have a basic understanding of programming concepts but lack the technical skills to implement them.
A CAFE community can provide the interdisciplinary researcher with a supportive and collaborative environment where they can learn programming skills that are relevant to their research.

#### The data specialist

The data specialist is a researcher or support staff who specializes in working with datasets.
They might be looking for opportunities to collaborate with other data experts, learn about new tools and techniques, or share their knowledge with researchers and others.
A CAFE community can provide the data expert with a platform to connect with other researchers who share their interests, learn from each other, and collaborate on data-driven research projects.

## What to consider before launching a CAFE?

### Organizers
Building and sustaining a community around learning how to program relies on a core team of organizers who can take responsibility for managing the community and ensuring that it runs smoothly. 
The time commitment for each organizer may be around **0.1 FTE** (Full-Time Equivalent) per organizer, depending on the size and scope of the community. 
Make sure you can commit sufficient time for organization, before you commit to organising.  

### Funding opportunities
Programming CAFEs usually work thanks to shared voluntary effort of many motivated individuals. 
Thus having a financial aid for running such events is not strictly necessarily. 
But it certainly helps providing some extra perks (such as refreshments or merchandise) that can help attract initial attention of your target audience.

Securing funding can be a challenge, but there are resources available to help.
In the Netherlands, there are several Open Science Communities that support initiatives like Programming Cafes.
Consider reaching out to these programs to see if they would be interested in supporting your community.
You can also explore crowdfunding options, ask your department head for budget allocation, or look for sponsorships from organizations that are aligned with your community’s goals.

### Internal communication

Organized internal communication is critical to the success of any community. 
It’s important to have a clear and effective system for communication among organizers, including regular meetings and status updates.
Consider using tools like GitHub project boards to track progress and assign tasks.
It’s easy to create a template for monthly meetings, for example, and share a checklist of tasks that need to be completed for each monthly meeting.

### Considerations for meeting planning
When it comes to planning community meetings, it’s important to stay organized and keep everyone informed.
Make sure to have a clear plan for each event, and consider whether there will be a theme, who will be giving a presentation, and if you will be offering food or drinks.
Create a schedule of events that can be published online and advertised ahead of time, and make sure to stick to it.

### Reaching your audience
There are many technologies and tools available that can help you manage your community more effectively.
For example, you can use Slack or Discord to communicate with members, create a website with GitHub pages to share resources and information, and use social media platforms like Twitter to promote your community and attract new members.

In conclusion, building and sustaining a community around learning how to program requires a dedicated team of organizers, clear communication, effective event planning, and access to resources like funding.
By relying on a core team of organizers to make key decisions and create an overarching vision, you can create a thriving community that supports and inspires each other.

## Logistics

Organizing a coding cafe requires some logistics, as for every event. However, coding cafes may come with special requirements that you need to take into account.
The key message of this chapter is: *Know your audience!*

### Frequency

Finding the right frequency for you as an organizer AND your community is crucial for the sustainability of your programming cafe.
Your cafe will not be a success if you are eager to meet as often as possible, but your community consists of programmers with extremely busy schedules.
Meeting too often may be exhausting for you as an organizer, and frustrating for your community as being pushed to constantly declining events may feel overwhelming.
However, meeting only once in a blue moon is certainly not frequently enough to build strong bonds in your community. 

Finding the right balance is important.
Try to find out what frequency may be seen as a standard for your audience and live within the rhythm of your institution.
You can also reach out to partner institutions that already have experience and ask for advice.
Nothing is written in stone: you can later change the frequency based on your experience.

As a suggestion: most of our coding cafes are organized on a monthly basis with a dynamic audience.
That means that some people will join most of your events while others may only come irregularly for certain topics.
However, some coding cafes do not follow a strict schedule but are organized ad-hoc once there are enough speakers, topics, or volunteers. 

### Best dates & times

Finding your rhythm is important, but not enough.
Making exceptions to your frequency may be necessary.
Some events may alter your planning such as for example:

- **holidays** (your attendance will probably be low if you plan an in-person coding event on Christmas Eve);
- **vacation season** (be mindful of potential school holiday breaks in your region if your community consists of programmers with families for example);
- **exam or internship weeks at your institutions** (if you are inviting students to your events make sure that they are around to join);
-**major events at your institution that will be prioritized by your community** (do not plan a programming cafe as an alternative to a major software related conference at your institution for example).

Additionally, planning around events that bring a lot of people together anyway may be beneficial.
If you know that your audience will come together for a shorter event, you may want to try to get them after the event for your programming cafe.

Finding the right week day and the best day time is equally important.
A lot of institutions are offering telework options.
Some of your colleagues may work part-time, or researchers may split their time between multiple institutions.
That means that not everyone will be available to join an event on campus on certain days.
If you know your audience well, you may avoid some pitfalls with setting the date.
Mondays and Fridays may be preferred telework days for example, so plan accordingly on other days. 

Depending on your format, certain times during the day may be more suitable than others.
If you offer food and drinks for example, you may benefit from setting your coding cafe during lunch hours or organize it in the late afternoons as an early dinner option.


### Food & drinks

No one likes to work on an empty stomach - same goes for programming.
Offering food or drinks may help to increase the mood of the audience and may attract some additional people.
There will probably be a lot of events and meetings to choose from on busy days, and offering snacks or drinks may help people to decide to spend their time at your coding cafe.
Some advantages of offering food and drinks are:

- Increase of attraction
- Increase of happiness
- Works as an icebreaker since people come together at a potential buffet

However, providing foods and drinks also comes with disadvantages such as

- Increase of cost
- Increase of organizational effort

If you order pizza for example for all participants, you need a higher budget and you have an additional effort of ordering and receiving pizza in time.

There is a vast amount of choices for selecting the right food and drinks for your audience.
If you organize an event for a vegan audience, offering steaks for barbecue seems an odd choice.
The same may be true for your audience.
A traditional choice for programming events may be pizza and you probably can hardly go wrong with this all-time favorite.
However, there may be better lunch options that can be distributed much easier, such as onigiri for example. 

Drinks can be organized in the same fashion depending on your audience’s preferences.
Decide if you want to offer alcoholic options for example or if you need both, hot and cold drinks at the same time.


### Room setup

Last but not least, decide on the right room.
A coding cafe can be organized online which comes with its own challenges.
If you decide to organize an in-person event, you need to book a room that fits the needs of your event. 

Things you may need to consider are:

- Room size
- Convenient location of the room
- Accessibility of the room
- Findability of the room
- Number of power outlets
- Number of tables
- Are food and drink consumption allowed?
- Presenter options
 

All in all, make sure that the idea of your programming cafe fits into the chosen room.
30 participants may not fit in a common meeting room.
A room at a non-central building may be a barrier for your community since they need to travel there.
Also make sure that your participants will be able to access the room, even if they don’t have access cards for example.
Investing time into printing way points may pay off since it minimizes the risk that your participants get lost on the way to you.
As an alternative, you can also provide a detailed description of how to get there in your invitation.
Make sure that the room is fit for programming needs: check whether power outlets and tables are required.
As an alternative, you can organize extension cables or similar.
Think also about your format: do you need a screen for presenting or a flipchart or room to freely move around.
If you order pizza, make sure you are not thrown out of the room for smuggling greasy food into an auditorium.

## Format

There are several considerations for the format of the programming CAFE.
These include: Frequency, Timing, Agenda, Topics. These aspects may differ depending on the size of the community, the capacity of the organizers, and the needs of the community.

### Frequency and Timing
We have successful experiences of running monthly and bi-weekly CAFE events.
They can be planned as lunch meetings, at the end of the working day or (partly) after office hours.
There are pro’s and con’s to each of these options.
You may initially start with something that works for the organizers and the initial community, and then adjust based on the needs of the community as the community grows.

### Presentation component
At CAFE, we believe that knowledge-sharing is key to fostering a supportive and collaborative community.
That’s why we dedicate at least some part of the events on a presentation component on a programming related topic.
These presentations can be given by an expert in the field or by someone from within the CAFE community who has knowledge to share.

#### Benefits of presentations
The presentation component of CAFE serves several important purposes.
First and foremost, it provides a platform for experts and community members to share their knowledge and insights on programming-related topics.
This not only helps to deepen the knowledge and skills of individual community members, but it also promotes collaboration and mutual support among members of the CAFE community.

Secondly, the presentation component helps to keep the CAFE community up-to-date on the latest trends, tools, and techniques in programming.
By staying abreast of new developments in the field, community members can continue to grow and expand their skills, and can also explore new research opportunities.

Finally, the presentation component is a great way to showcase the diverse range of interests and expertise within the CAFE community.
By providing a platform for community members to share their knowledge and insights, we hope to foster a sense of pride and ownership within the community, and to encourage more community members to get involved and share their skills.

#### Format of presentations
The format of the presentations will vary depending on the presenter and the topic being discussed.
However, in general, presentations will be structured as a short talk followed by a Q&A session.
This will give community members the opportunity to ask questions, clarify any points of confusion, and engage in a dialogue with the presenter.

### Examples of CAFE topics 
The topics covered in the presentations will also vary depending on the interests and needs of the community.
Some examples of potential presentation topics might include:

- Introduction to Python/R/MATLAB
- Data visualization techniques
- Machine learning and artificial intelligence
- Best practices for coding and software development
- Tips and tricks for debugging and troubleshooting

By covering a diverse range of topics, we hope to provide valuable resources and knowledge to community members of all skill levels and interests.

### Coding component
We also schedule time for coding during the CAFE events.
This is a great opportunity for community members to work on their own projects, collaborate with others, and ask questions about programming-related issues.
We also allow participants to code during the presentation component of the event if a presentation is not relevant to their interests or needs.
In this way the event is always open for a diverse audience with different interests and skill levels, which is valuable for interaction and knowledge sharing in the community.

### Promoting interaction
Community organizers can promote interaction by keeping an informal overview of the community members (and their projects, questions and skills) and facilitate connections.
Snacks and drinks are a great way to promote interaction and collaboration among community members.
This helps to create a more relaxed and informal atmosphere where connections are made more easily.

### Exercises
Exercises provide a great opportunity for community members to practice their programming skills and to learn new techniques.
They also help to reinforce the concepts covered in the presentations and to ensure that community members are able to apply what they have learned in a practical way.
Besides, exercises can be a great way to get community members to interact with each other and to collaborate.

## Community building

Programming can be a daunting task, especially when you’re just starting out, but it doesn’t have to be a lonely one.
By building a community of learners, you can support each other, learn from each other, and grow together.

### Communication is key

First and foremost, effective communication is key to building and sustaining a learning community.
Make sure that everyone has a way to communicate with each other, whether it be through an online forum, a social media group, or a messaging app.
Encourage members to share their experiences, ask questions, and offer advice.
Consider setting up a regular newsletter or email list along with a list of upcoming meetings on your website to keep everyone informed about upcoming events and opportunities.

### Event registration

When it comes to registrations for events, make sure that the process is simple and easy to understand.
Use a platform that is user-friendly and accessible, such as Eventbrite or Google Forms, and make sure that people know how to sign up.

### Meetings

Whether you choose to meet online, in person, or hybrid, a consistent schedule of meetups can be a great way to build connections and foster a sense of community.
Ice-breakers can be a great way to get people talking and help everyone feel more comfortable.
Some good ice-breakers include “two truths and a lie”, “speed dating”, and “name games”.
Make sure to create an inclusive environment where everyone feels welcome and valued.

### Creating an inclusive atmosphere

It’s important to make sure that everyone feels included in the community.
Consider assigning mentors or buddies to new members to help them get acclimated. Encourage members to share their experiences and to help each other out.
Create opportunities for people to connect and collaborate, such as hackathons or study groups.

### Creating and maintaining connections

To help community members stay connected, make sure to provide ongoing opportunities for engagement.
Host regular meetups or workshops, and encourage members to share their projects and successes.
Consider setting up a Slack channel or other messaging platform to facilitate ongoing conversations and collaborations.

### Swag!

Finally, swag can be a fun and rewarding way to recognize and incentivize community members.
Consider giving out stickers, t-shirts, or other branded merchandise to show your appreciation.
Not only does it make people feel valued, but it can also help to spread the word about your community.

In conclusion, building and sustaining a learning community takes effort and dedication, but the rewards are worth it.
By fostering effective communication, creating a welcoming and inclusive environment, and providing ongoing opportunities for engagement, you can create a community that supports and inspires each other.
