Dear reader, today we will talk about an increasingly common practice in the programming area: the practice of Coding Dojo. But what is the use of this methodology? How is programming part of it? Follow us and understand better.
Programming is an activity that requires challenges, and it is not for nothing that there is a high number of dropouts from computer science courses in the US, as many students fail the courses offered in this area for not having the aptitude to solve programming problems. This lack of mastery ends up demotivating many students.
There are many reasons that can trigger this dropout, such as:
- Rigidity or difficulty to elaborate adequate mental models;
- Difficulty to develop logical-mathematical competence in solving mathematical problems; lack of interest to do collaborative work together;
- absence of reflections, creativity for just the decorative use of formulas, without producing any critical sense or questioning in the area in which they work, that is, the student does not put into practice what they study.
It was with this in mind that the understanding of using new methodologies in the teaching/learning process emerged with the purpose of improving even more the students’ abilities to have autonomy, collaborative work, problem-solving, production of new data structures, and creation of algorithms using programming languages.
Let me put it in a clearer and more objective way: seek to improve or develop students’ skills that coexist with the programming curricular matrix, for example, IT, Computer Science and Software Engineering have this discipline, at the same time that students are continuously challenged to solve programming problems.
In this sense, have you ever imagined testing codes, thinking before programming the solution to a problem and other skills in a collaborative, group and productive way?
It is from this that the Coding Dojo is a viable way to organize meetings around one or several programming challenges, in this environment, students are motivated to participate and share their decoding skills with the other students who are participating in problem-solving.
The word Dojo is of Japanese origin and its translation is understood as “training place”, but let’s now associate this word with the programming context.
The Coding Dojo is associated, as we saw before, with a training place, but it is a code training or “programming training place”. The students train the codes and improve their skills in the Coding Dojo.
This method helps a lot in learning because it has an active format, in which the student participates actively in the elaboration of codes and assumes direct contact with programming in practice, leaving the theory behind.
This method is used to develop computing-oriented projects. The pioneer classes were in 2009.
Simply put, it is as if a meeting was formed and this requires the commitment and presence of all those involved with the purpose of all these programmers acting in a collective way from a programming challenge, for example, as an algorithmic problem.
The challenges are directed to a specific subject that will make everyone work in a collective way and practice programming techniques to solve the proposed challenge.
The challenge, being versatile, can be done in companies, schools, or study groups that practice programming.
Dear reader, did you know that based on this idea of doing Coding Dojos, there are some formats used, let’s get to know them:
Randori
In this format, everyone participates fully. For this methodology, a problem is presented to be solved, which is performed only on one machine, by pairs. In this case, the format that is accepted is the use of TDD tests and Baby Steps;
The person who codes is called the “pilot” (his job is to type the code) and his peer, who is accompanying him, is called the “co-pilot” (his job is to provide hints, interact with the class, communicate with the other students and clarify for the audience what they are doing).
In this case, when each round can last 5 or 7 minutes. At one point the pilot leaves and goes to the audience and the co-pilot becomes the pilot and takes over the command that was previously the pilot. This happens at the same time that the co-pilot becomes the pilot and the other students in the audience become co-pilots.
This happens at the same time as the co-pilot becomes the pilot and the other students in the audience become the co-pilot.
This format makes everyone aware of what is happening in the room because at any moment one of them will be called upon to participate as a pilot. In addition, everyone interacts constantly.
It is the pair that will determine what actions will be taken to solve the problem.
To conclude, it is fundamental that the participants (everyone) understand the solution that will be contextualized by the pilot and co-pilot at the close of the implementation cycle.
Kata
In this situation it is the presenter who brings a solution, previously elaborated.
Its purpose is quite simple because what is needed is for all the programmers to be able, prepared to reproduce the previously prepared solution, but the participants need to accomplish the same result.
It is worth pointing out that interruptions are accepted in order to clarify any doubts in any situation;
Kake
Its methodology is close to that of Randori. But the basic difference is that there are many pairs that are solving problems at the same time and not one at a time.
This format alternates the pairs in each shift, for example, pairs that work in the morning can go to the afternoon or evening, when this is done, it is possible for everyone to integrate into the event.
After the end of each Coding Dojo, it is recommended that students provide feedback on what happened. This requires answering three questions:
- What did we learn from today’s Coding Dojo;
- What needs to be improved for the next Coding Dojo;
- What was done well that we can continue to do in the next Coding Dojo;
Doing this survey helps to understand and filter everything that was done in the challenges and to take good fruit from what was learned in this methodology to become more and more a better professional in the area.
Benefits
Through Coding Dojo we realize an inviting scenario to attract people, in this case, programming students. Besides enabling new ideas and motivating networking.
By having this characteristic of encouraging creativity and collective participation, several technology companies adopt Coding Dojos so that their employees not only become familiar with the workplace, but also understand that it is not a competitive scenario, but an attractive one for sharing ideas and knowledge.
In this sense, the meetings are periodic, because if it is done once a month, for example, it will not have the same learning as a meeting held more frequently. There is not a specific time, it will depend on your company, school, or institution.
We cannot forget that the Coding Dojo brings together several qualities such as:
- Cooperation (everyone will solve the problems created, in this case, the codes and this presents a collaborative environment);
- Courage (notice that students will get out of their comfort zone and will be confronted with new challenges)
- Respect ( when a student solves a problem, regardless of how it is solved, respect is needed for the way they found the solution, even if you know another alternative);
- Participation (everyone participates, which makes it understood that everyone is equal and that there is no hierarchy); Simplification (knowledge is shared with everyone without any restriction).
Final considerations
As we can see, the Coding Dojo, in the formats presented above, is presented with challenges to be done in mini tasks.
Note that we have the participation of everyone in the audience or class to perform a solution equal to all and the code is designed by the computer.
It is with this in mind that the Coding Dojo enables fun because the programmers will encounter new languages, and problems and solve them.
This scenario makes everyone get out of their comfort zone and this makes programmers adapt to new challenges in their daily lives and this affects their work directly with the Coding Dojos.