Review Of M101P

Dec 9, 2017 10:23 · 674 words · 4 minutes read MongoDB Python

I recently completed the 101 class for MongoDB. I work with MongoDB in my day to day work and I wanted to see what the official offerings were from 10gen for improving my skillset.

The course lasts 7 weeks and covers the following topics in modules.

  1. Intro
  2. Crud
  3. Schema Design
  4. Performance
  5. Aggregation Framework
  6. Application Engineering
  7. Exam

Each module takes about a week and is composed of video lectures, small quizzes, and homework assignments.

Context about my experience level with MongoDB

I’m not a DBA or anything, but I regularly need to write simple queries for CRUD operations and occasionally I work with the aggregation framework. I had about 6 months of MongoDB experience when I started taking the class.

TLDR

For having paid nothing but some time, I don’t regret taking the course. The 101 class is really straightforward if you have any amount of MongoDB experience and the time spent for me was probably overkill. If you have experience with MongoDB, reading some parts of the documentation carefully and experimenting with data can get you more information with less time spent watching videos. Particularly the documentation on indexes and the aggregation framework.

If you don’t have any experience with MongoDB and you’re looking for a place to start, this class is right for you.

What I liked

The format of the class is really well done. The modules are comprehensive and although there are a lot of videos for some modules I don’t think I was ever bored watching them. The videos are clear about the topics and the quizzes/homeworks reinforce the lessons.

The exercises and sample data sets are the most valuable aspect. One of the hardest things when doing self teaching is coming up with good problems to work on your own. 10Gen solves this problem for you by providing sets of problems and good sample data to work them. Some modules also lead you into more complex territory with optional problems. With these I found myself reaching for the documentation, which was nice to see. Anything that gets you involved enough to seek out additional resources is a well designed problem.

The module on Performance was particularly well done. I didn’t have any experience with indexes in MongoDB before working through the module. I feel I came away knowing much more than I had, and I was even able to apply the lessons to some problems at work!

What I didn’t like

The first two modules are brutally slow if you have experience with Mongodb in any way. For people with 3-6 months of MongoDB under their belt, the class doesn’t even really begin until week 3.

This is more targeted towards M101P in particular, but some of the code samples only supported Python 2 which sucks. I get that the materials were most likely produced by 10Gen a while ago (some of the videos show their age talking about MongoDB 2.6 and such) but I’d like to see them better maintained. This doesn’t really impact the exercises themselves. Everything is still functional but it’s annoying to spin up a python3.6 venv and then find out that the code to work the exercise only supports 2.7.

What 10Gen could do to improve this class

I would like to see 10Gen put all the videos in a playlist on Youtube and put all the materials in a repository on Github. I’m not sure what’s keeping them from doing this in the first place. They don’t charge anything for the class and there’s no value in cheating since you only get a certificate at the end anyways. They could also run the class sessions in parallel for students who want to take advantage of the forum and social aspect. I feel this would allow for two things:

  1. Self paced learners like me to work through only the parts of the class that interest them
  2. The community could help maintain the exercises and update the materials

Overall I enjoyed my time in M101P and I’m excited to start 121 and 201 in January!