In Summer 2014, Marco Arena was introduced by his friend Alfredo to HackerRank, a competitive programming website. Since Alfredo was quitting his job and looking for new opportunities, he was preparing for incoming programming interviews. Marco decided to support his preparation by sharing ideas and solutions for some of the exercises every weekend. In addition, sometimes Marco and Alfredo approached particularly hard challenges as a pair, via Skype.
First, Marco tried to solve as many exercises as possible every week but he realized that this was not very helpful for Alfredo, as the value he gave for each challenge was really low. Thus, Marco started allocating at least 30 minutes per day to this activity and, instead of trying to solve as many challenges as possible, he instead focused only on a single exercise. In order to get more value and ideas from the challenge, he tried to find multiple solutions, each one an opportunity for investigating trade-offs, pros and cons. Comparing solutions was part of the practice. In addition, Marco used to play with the problem itself by adding/removing constraints and by applying small changes to the requirements - later, Marco called this act “perturbation” in Coding Gym.
An anecdote: during a Skype call, after explaining several solutions and concepts learnt from the - simple - challenge “Find the missing value” - find the missing number in the domain [1, N] from a list of N - 1 numbers - Marco happily exclaimed: “every problem has value!” to encourage Alfredo to use any exercise as a starting point to learn more. This concept, “every problem has value” has been developed as a core value of Coding Gym.
After a few months, Alfredo got a job and stopped practicing on a regular basis. Marco, instead, did not stop. He gradually got more and more committed and he regularly undertook several exercises every week. Every challenge was an opportunity to freely explore new concepts, ideas, alternatives, patterns, languages and was a good way to practice researching and understanding trade-offs in algorithms. The practice was totally self-driven.
Marco realized that his new habit was bringing some benefits. First of all, he was having fun. This aspect is particularly important but many people just do not see it as valuable. Having fun is good for the brain.
Another benefit comes from hacking away the spirit of competition and reward. Marco could freely express himself and set his own targets. Not only is that a call for free practicing, but also an act of giving responsibility to oneself. Indeed, the absence of competition wipes out winning as the only, explicit, target of competitive programming and shifts the attention to other, more personal, targets. Marco could set his own targets or he could just practice because it was the natural thing to do for him in a particular moment. He could try solving a problem with no explicit for loops or with a language in which he was not fluent, or even change the constraints of the problem. He was totally responsible for his learning. A problem thus became a small environment with rules in which he could express himself.
In some extent, his professional life was positively influenced as well. Our brain is good at recognizing patterns and often, real problems look similar exercises previously practiced. Moreover, working on different kind of problems was useful to keep the brain more flexible and not to focus only on known patterns.
After more than one year and a half, at the very beginning of 2016, Marco decided to create a programming laboratory format where his way of practicing could be shared with other people.
He told the idea to Gianluca Padovani, a friend of his and one of the XPUG Bologna meetup co-organizers. The first Coding Gym (at that time called Coding Dojo) was hosted on Feb 16 in Bologna and was very well received.
One month later, Marco met Francesco Nigro, founder of ConoscereLinux (LUG of Modena) and told him about the idea. He was really excited and helped Marco organize the first Coding Gym in Modena. Since March 2016, Marco has organized Coding Gym in Modena every month.
After less than two years, at the end of 2017, Coding Gym Modena had 20 attendees on average and a total of 60 unique people reached. Marco decided to open his local format to the rest of the Community and bring it to other cities.
The first call was received in Padua by Alessandro Pezzato and Thomas Rossetto, organizers of Programmers in Padua. The first Coding Gym Padua was held on Feb 10, 2018.
Then Coding Gym was started in other cities, in order: Barcelona (switched off at the end of 2018), Milan, Turin, Bari, Rome, Bassano del Grappa.
Currently, in May 2019, Coding Gym is active in 7 cities.