In case you weren't aware, the repl.it discord server recently had a code jam, with the objective being to make a database. Over 14 people finished and submitted a design for the jam. However this jam was a bit different compared to our first and second jams. First of all, we have groups of 2, instead of individual people. This could be viewed and a boon or a bane, but we'll go over that in more detail later. The second set differences were the bonus points. In the past, we've always graded on code quality, efficiency, and creativity.

As you can see, we added 3 more, which we'll also go into more detail later.

What is a code jam?

A code jam is a competition between programmers, to create a project based on the criteria, confined to a time limit. In this jam's case, it lasted 48 hours. At first we had them for 24 hours, however after listening to criticism from the community, it became clear more time was necessary. Usually, there will be an example made by the administration team to use as reference. In addition, we include prizes, which mainly include adding an emoji of your choice to the discord server (Which reminds me, I need to ask the winners what they'd like).

What were the results?

Without further delay, here are this code jam's top 3 winners. (I apologize beforehand, I will be using the discord and repl.it names of these people interchangeably)

What we can learn from this

First of all, how did the jam go overall? I think the jam was a large success. People were able to receive great feedback, and learn about logging, unit-testing, and documentation. One of the large issues we had in the jam was finding people partners to code with. Some people already knew others on the server, and were able to create partners with ease. Other people had issues, and weren't able to compete due to it. The reason we decided to do then jam this way, is to create cooperative skills. Most students program by themselves, and getting the chance to work together is very rare. And these skills are important, because working with others is used all the time in jobs, or even contributing to open source projects. Some issues people had while working on the project were logging and unit testing. Logging is actually fairly self explanatory, and python has the logging library pre-installed. I think that lack of logging was really due to lack of motivation, because people didn't realize how much those points were worth. Unit-testing is a bit harder, and I can see where people might have had issues with it. Once again, going to back to python, it has a great unittest library. Logging is important because it allows developers to identify where a program is breaking quickly, which is great when trying to minimize downtime. Unit-testing can be seen in large projects, to confirm that when a developer is about to release a patch, it doesn't break something unexpectedly.

Who am I, the person that wrote this article.

My name is Nathan Zilora, I'm moderator for the repl.it discord server, and repl talk. I've been a part of repl.it for a long time now, and will hopefully oversee it's expansion. I helped organize this code jam, and coordinate its objectives and grading, alongside some help from the other moderators in the repl.it team. You can find my profile here, with all the cool stuff I've worked on over the years. I hoped you enjoyed the jam, or will continue to participate in future events!