Exercism vs Datacamp: Small things make a big difference

5 min read

Online certifications, training courses, or other learning resources can be a mixed bag. It’s unclear how much employers value them, and it can also feel overwhelming trying to retain all of the information presented. When I was doing datacamp after my day job each day, I often felt like I was trying to get to the finish line as quickly as possible, rather than actually focusing on the process of learning. After three years of doing coding practice/learning on the side, I have been reflecting on why I learned so much more with exercism than datacamp.

Method of learning

Datacamp is quite traditional in how it teaches, and focuses on not being too intimidating to those who may be new to data science or learning. A lesson will usually consist of watching a slide deck, followed by practice challenges where the learner must fill in the blank for different parts of prewritten code. The lessons are “closed”, meaning that a certain input is expected to produce a certain output[1]. As a result, I found myself exploiting a very low barrier to guessing. I wouldn’t have to think too much about the why and became preoccupied solely with the how.

For example, let’s say that the challenge is summarizing a dataframe in pandas. Off the top of my head I wouldn’t remember what the method was, and so would just start rapid firing a few guesses until the appropriate one came up.

print(df.summarize()) # Not valid
print(df.summary()) # Not valid
print(df.describe()) # Valid, maybe what the task wants
print(df.info()) # Valid, also possibly what the task wants

This was a fairly basic example, and while many of the problems in more complex topics were harder than just a single method, the same feeling still applied. If I was making a seaborn graph, I would have the keywords at the top of my mind because the last five problems were all similar. If I switched to a different topic the next week, I would lose all of the knowledge I had gained about seaborn. It was incredibly context specific; easy if you had just seen the powerpoint, but didn’t stick. This is surface level learning.

Blooms taxonomy

Bloom's taxonomy of learning

I would put datacamp at the understand stage of bloom’s taxonomy of learning. I could comprehend the instructions being given and apply them in a very specific situation, and wasn’t relating it to the broader idea. What is a pandas dataframe? Once you understand in more detail the components of the language and the idea of a dataframe as a dict-like container for Series objects, intuitively knowing how to manipulate columns or rows becomes easier.

Exercism and open-ended problems

In contrast, exercism is almost completely open-ended for programs, and is slightly more technical. There are still some lessons that have some pre-written code, but the vast majority of the problems are open-ended. There is a descriptive problem, and then a series of tests that must be passed for whatever solution you can come up with. As the problems are much more general in nature, they are much less context specific, you don’t know whether you should use a dictionary, list, or string methods going in. Guessing is also much more costly, as the tests will just show that you failed, and not provide hints that could give away the answer.

I also really appreciated how their exercises can be solved in the command line, which helped me learn neovim at the same time as doing problems.

Mentoring others is a great way to learn

Teaching others is one of the best ways to learn, and there are always people who are more knowledgeable than you, and whom you can help through your experience. I’ll never forget a lesson when a mentor helped me understand why a set was a great way to detect duplicates in a triangle. Just that one moment was enough to solidify the concept of sets for the long-term. I didn’t need to keep doing more exercises to understand sets, because I had a memorable experience. Reading words on a screen will rarely be memorable (we do it all day every day), however interacting with a new person and hearing their perspective is novel. This is the glue that makes the lesson stick.

Learning should be hard and feel uncomfortable

There have been a few exercism problems that have driven me absolutely up the wall. They will taunt me with how simple they seem, but actually require a lot of deep knowledge to solve them. Although it doesn’t feel great to be stuck on the same exercise (because we don’t get the same dopamine hit from getting another badge or experience points), learning should be difficult. That shows that we are pushing our understanding and grappling with new concepts.

Conclusion

This post isn’t meant to compare datacamp and exercism as organizations, rather to reflect on how a small change in which platform I used resulted in a huge change in the way that I learned. If you are also thinking of using a learning platform (doesn’t have to be datacamp or exercism) hopefully this post helps offer some insight into how much nuance there can be in the learning process.

My datacamp profile can be found here and my exercism profile can be found here.


  1. There are slight variations to how you can do the solution, but relative to an open challenge to solve a general problem, I would still consider the tasks to be quite prescriptive in nature. ↩︎