A Conversation About Coaching

Last month, the Rails Girls Berlin organizers team had a retreat in the beautiful Brandenburg countryside and were kind enough to invite us, Sergio and Marie, to join them. Both of us have been coaches in the beginners workshops some times, and among the many interesting discussions we all had during those days, we discussed a bit about what being a coach means, what makes a good coach, and shared some tips. We thought we’d share this conversation with other coaches, present and future…


M: As far as I know you have been a coach at RailsGirls Beginners workshops for quite some time. When was your first time and what motivated you to become a coach?

S: Yes, it’s been a while already, I don’t even remember! It was the second or third workshop in Berlin, so I guess around 4 years ago. In its day I learnt programming in a not very formal way, mostly by myself and with the help of people at user groups and mailing lists, so I have always been into helping beginners get into programming, it always felt natural. When I learnt about Rails Girls I had never done something like that but liked the idea of helping people that hadn’t had the chance of even trying before.


You became a coach after having attended the workshop, right? Why did you start, in the first place, and what made you think of coaching? What do you think it’s needed to be a good coach?

M: Yes, in March 2015 I participated in a Rails Girls workshop as a total beginner and I really liked the whole atmosphere of supportive coaches, an interesting tutorial about the magic of programming and the fact that everything was for free. From the organizers and coaches I felt so much dedication to bringing newbies aboard that I immediately wanted to become part of this community and give back. So at the next workshop some months later I was already co-coaching with a more experienced coach.

I think being a good coach is not only about being technical and knowing every piece of code by heart. You have to find ways to explain big and sometimes very complex programming concepts to people who may have never used a terminal before. Respect towards the participants, their knowledge and their devices is a must. Never just take over someone else’s keyboard, instead encourage them to type, search errors and let them try out by themselves.


Still, you can never completely avoid that some get frustrated and overwhelmed quickly. How do you handle this and what do you tell students who get frustrated?



S: Oh, that’s a big topic but it’s worth to think about it. Managing frustration is not only about making the day more enjoyable, it’s learning a skill that will help you all along your path in programming. Sometimes people will be stuck doing or understanding something, and it’s important that they understand that it’s ok, it’s normal. It’s ok to take a break, it’s ok to ask for help, it’s even ok to give up at some point, and maybe try again some other day. It’s important to set manageable expectations, acknowledge that this stuff is not trivial and that it’s ok if you don’t get it right away. Help the students empathize by telling them your struggles when you started, and your current ones learning new stuff. Hopefully in a not discouraging way, don’t get too dark 😀 Finally try to avoid the students compare their progress to each other too much. People have different backgrounds and abilities and some will be faster than others. Make clear that what’s important is to learn something, not to be as fast as the desk mate.


I’ve found this part a bit tricky though, how do you manage their pace? Do you try to keep them more or less at the same pace or encourage them to work by themselves at their own rhythm?

M: That is a bit challenging at every workshop. I think it is important to spend some time together in the group, for example when you are explaining some general concepts e.g. what is Ruby and what is Rails. Later on some people are going through the tutorial a lot faster than their team mates, and it happens that a question comes up earlier. Once I explained it to someone I encourage her to forward this fresh knowledge to her neighbour. You avoid to explain the same stuff over and over again and you establish this atmosphere of mutual support. In these moments people come back together and might continue the tutorial together. But it is also ok to let people explore a bit on their own.

S: Exactly. I always try to give space for people to work on their own within some limits, and have frequent „checkpoints“ where the team regroups (those moments where the tutorial asks the coach to explain something are great for this). Keeping an eye on when this isn’t working for some reason (someone lagging behind, for example), and learn to „let go“, to avoid people feeling pressure to keep the pace.



M: However I feel that you can set a fruitful learning atmosphere and group dynamic right at the beginning of the workshop. Sergio, how to best start the workshop day? Do you present yourself, do you talk to your fellow coaches?

S: Yes, since there are a couple of hours with talks before the actual coding starts, I’ll try to find my co-coach and discuss some of these things, so we make sure we have a coherent voice with our students. Planning how to start is a great thing to do with them. How do you usually introduce yourselves to the group?

M: Starting with a round of introduction, so that all participants & coaches share a few words about their educational and/or professional background, is something I really love. This is the best way to get a feeling for your group and gives you a first impression of what they might already know. I would also tell the group how I got into coding as a motivational story for newbies. Everything that is rather encouraging than intimidating should be shared with the group: setting a friendly tone and making clear that there are no stupid questions! Also we as coaches should not expect any prior knowledge from the participants and nothing is self-evident. At the same time do not ever underestimate the capabilities of the participants to learn everything and become a programmer <3!


S: Are there other tips you’d like to share?

M: One of the Rails Girls study groups in Berlin called the Rubymonstas published awesome tips for coaching a programming study group, which is super useful for beginners workshops, too. You can find it here: http://coaching.rubymonstas.org/.


  • Don’t forget to give yourself a break if needed and remind the others to do the same.
  • Don’t be shy and ask other coaches to help out if you don’t know the answer, because this is how a supportive work environment looks like anyways, so why not be a role model right from the start ?! 🙂
  • Have patience, don’t _“fill the silence” if the students are thinking.


How about you, something else that helps you coach?

S: Sure!

  • People’s curiosity about topics might distract you all away from the work. Don’t cut it, it’s really cool! Just keep the balance and maybe keep answers short, or do it on breaks.
  • Prepare a bit for the workshop in the previous days. Follow the tutorial yourself, be aware of the parts of it when some theory explanation is expected from the coach and prepare for them
  • Don’t shame technologies. This is good advice in general, but it can be specially harmful with people that are just starting. They came to learn, not to hear your rant about whatever programming language or operating system you don’t like.

At this point we thought we’d better start cooking something, the rest of the group had been working on new stuff for Rails Girls Berlin and they sure were hungry…

Have a great coaching experience!