NOTE: This issue of Practicing Ruby is one of several content experiments that was published in Volume 6. It intentionally breaks away from the traditional article format that we have developed over the years in the hopes of finding new and interesting ways for you to level up your programming skills.

When I prepare examples for Practicing Ruby articles, I work hard to find a linear path through a codebase so that I can tell a single coherent story. By doing this, I’m trying to help you navigate through complex problem spaces without getting lost along the way. This approach has its strong points, but it comes at the cost of discouraging ad-hoc exploration in a subtle way: if I give you a single path to follow through a codebase, you are less likely to veer off trail and discover something that I neglected to mention. This is a shame, because Practicing Ruby code examples are usually much deeper than the stories I tell about them.

In this experiment, we will discover what happens when I drop you directly into a codebase to explore on your own. In particular, you’ll be working through understanding the implementation of Weiqi, the Go-playing desktop application shown in the following video:

Rather than attempting to rush off to a particular destination that I have planned for you in advance, I’d like you to try forging your own path and see where it takes you. Start with the project’s README and then follow your interests from there.

Once you’ve had a chance to take a look around, consider either coming back here to discuss the things you found interesting, or continuing the conversation over on Github via tickets and pull requests. The code has its good and bad parts (as you’ll soon find out), so there is definitely plenty to discuss.

And most importantly, please let me know whether this particular experiment seemed to work for you or not. You’re welcome to leave a comment below, or if you’d be more comfortable giving feedback in private, you can email me at: gregory@practicingruby.com.