One day a couple of years ago, I was stunned when my son told me, "Dad, my JAR snapshot messed up the configuration." As a curious dad and an experienced Java programmer, my question to him was, "How do you know what a JAR is?"
What I didn't anticipate at that time was how that one question would completely change our discussions over the ensuing months and years. I learned that the game of Minecraft is written in Java, and that my son had been installing mods, which are other JARs, to modify the gameplay. After helping him fix the configuration problem, my son expressed a desire to write a mod and we started exploring how to do that. This marked the beginning of an extremely rewarding and enjoyable journey for the both of us: he taught me about Minecraft, and I taught him basic Java programming concepts. Notes were exchanged over breakfast and dinner, during drives to school or classes while grocery shopping, and pretty much everywhere. After building our first mod during Christmas 2012, we decided to share the knowledge with his Minecraft buddies. That gave rise to the first Minecraft modding workshop in our living room with about 12 lads. Most of the lads had no programming experience, let alone experience with Java. However, there was high Minecraft experience in the group, with some ldds playing for about two years and up to two hours every day. When given the topic of Minecraft, the small group would talk excitedly about different aspects of the game, constantly using hundreds of game-specific terms and phrases as if speaking a different language. My goal was to leverage their passion and introduce them to Java programming.