Today I want to tell you about two new features in Cody. One of them, Customized Groups, I’ve been anticipating with excitement for a long time. The other one, Solve Later, took me by surprise and bowled me over with how useful it is.
Groups (that is, named collections of Cody problems) have been around since the beginning. But it was hard to make them and we didn’t get much use out of them. More recently we improved the Groups architecture and added a lot of groups. You may remember this change at the same time we had our Cody Fifth Anniversary celebration. But even then, adding groups was a special admin-only task. I want to thank Grant O. Cook III for volunteering to help us create many of these new groups. He did a terrific job. But Grant was only able to do that work because we gave him special administrative privileges. A typical Cody player still couldn’t create groups.
But that’s all changed. Now anyone can make a personal Cody group. You do it by assembling problems just as though you were building a playlist on Spotify or some other music site. At the top right of every problem is a little link that says “Add to Group”. Click on it and you can start a new group or add the current problem to an existing group.
I made a custom group: All Things Fibonacci. Since so many people like making Fibonacci problems, I thought I’d throw a bunch of them into one group. I was able to arrange them in a specific order, from easy to hard. Working through a list of related problems is fun, because it takes you deep into a certain algorithmic space. You see commonalities and differences in your algorithms depending on the problem statement. If I tell you to calculate the Nth Fibonacci number for N<40, you’ll code it up one way. But you’ll probably use a different approach if I say give me all the Fibonacci numbers less than N for N up to 1e20.
Note that anybody can make customized groups, but to publish it on the public Groups page, you need to have a Cody score of 1000 or better.
This is the feature that surprised me. It’s a natural partner for Customized Groups, because it’s really just a special kind of group. If you see an interesting problem that you don’t have time to solve right now, just add it to your “Solve Later” list. Easy peasy!
Solving a problem on Cody calls for a certain amount of commitment. At first it may look straightforward (“I see what to do”). Then after working at it for a while it doesn’t seem so easy (“Why isn’t this working?”). Then when you finally have a solution (“Aha! I’ve got it!”), maybe a part of the test suite throws you for a loop. You may have to rethink your solution (“It never occurred to me that N could be as big as a million!”).
But now, at any point from the moment you see it to the moment you dance the Cody Victory Dance, you can save the problem on your “Solve Later” list. Then you just have to go back to “My Cody” and look for the list.
Try out the new features! I’ve been having fun using them. And every time I give myself an excuse to spend time on Cody, I think: Wow! There’s a lot of great stuff here! And in the comments, tell us what you think and how we can improve the feature.