Coding Gym is an international programming lab format open to any language and developed for continuous improvement. Coding Gym's manifesto follows:
"We help others practice programming, software development and communication skills by making coding laboratories open to any programming language where cooperation is valued over competition, doing and sharing are valued over teaching, and where competing solutions come with discussing and understanding tradeoffs."
How it works
Attendees - "gymmers" - work in pair on 3 self-contained challenges, using any programming language they agree upon. Everything is done on a web browser.
After each challenge, the Coding Gym "trainer" facilitates a retrospective: gymmers are encouraged to show solutions they have found. Each solution comes with discussing and understanding pros, cons and tradeoffs. Moreover, the trainer could share new solutions and concepts, and could ask gymmers to discuss about requirements change. For instance, "what happens if the input of the problem grows by 100 times?", or "can you solve the problem without allocating extra space?" Sometimes varying the problem comes with new opportunities to simplify or complicate the solutions.
Coding Gym is not tied to any paradigm nor programming language since Coding Gym exploits everything to achieve its targets and it is not limited by anything. For this reason, Coding Gym is free.
For each problem, Coding Gym encourages to look for, study and experiment with alternative solutions and variations on the problem. This way, the brain is pushed to break the mold, growing up and learning new concepts and techniques. New solutions come with tradeoffs, pros and cons that must be identified and understood. After all, a key aspect of software development concerns balancing the best tradeoffs for a particular domain. Coding Gym establishes its training philosophy not only in facing and solving problems but also developing and comparing alternative solutions. Coding Gym problems are self-contained and they are naturally open to variations and requirements change.
Coding Gym is not a course but it is arranged by one or more trainers. A trainer does not hold nor dispense any truth, rather she is just someone who will show "vulnerability" of attendees and will incite them to investigate concepts and techniques to improve. For example, a trainer might show an alternative approach to solve a problem or might propose a variation on the problem to quiz people on the possible impact.
Coding Gym is not a contest. Using pair programming, Coding Gym creates an environment conducive to active learning and collaboration, helps to lower gymmers frustration with too challenging problems. Pair programming encourages gymmers to interact with peers, thereby creating a more communal and supportive environment. The collaboration inherent in pair programming exposes and reinforces gymmers to the collaboration, teamwork, and communication skills required in industry.
Since 2016, regular attendees have reported that "Coding Gym makes a pleasant environment to":
improve problem analysis and algorithm design skills
learn new concepts, algorithms, data structures and coding patterns
practice known languages and experiment new languages
improve collaboration and communication skills
prepare for coding interviews
Coding Gym does not require advanced programming knowledge. Clearly, very often "brute force" solutions don't work (or just partially do) because Coding Gym aims towards improving people's "coding brain".
Some problems are taken from real job interviews of tech giants such as Microsoft, Google, Facebook, Twitter and Amazon.
Coding Gym Barcelona
Coding Gym has been created, developed and directed by Marco Arena since 2016.
Coding Gym Barcelona has organized and moderated by Giorgio Zoppi.