I started writing small web applications in the late 90s. I came from a traditional relational database background, relying heavily on one of the most popular open source solutions, MySQL. After seeing a lot of online discussion around non-relational databases, and having talked to a number of customers looking for help with MongoDB, I knew that it was time to learn something new and get my feet wet with non-relational databases. Here are some of the steps I took and resources I used to learn MongoDB.
MongoDB, Inc. (formerly 10gen) is the company that founded MongoDB, and its website was the logical place to get started. Try MongoDB is an interactive shell on the web that is “just enough to scratch the surface” of learning. Interactive shells are becoming more popular as software developers and tutorial web sites are looking for an easy way to introduce newbies to their way of doing things with little to no overhead involved.
The MongoDB, Inc. site has valuable documentation on everything from installation to sharding while providing tutorials along the way. There’s even a “de facto standard” getting started guide, in which you can walk through creating a blog using Python and MongoDB. The site also offers a number of use cases to help determine whether a non-relational database will work for your application.
Many people aren’t fans of learning programming out of a book because the text is either too overbearing or doesn’t have quite enough information. Plus, online documentation is often updated at a much quicker pace. However, I found the MongoDB O’Reilly Handbook to have the right balance. It provides an easy point-of-reference for setting up replica sets and instructions for breaking off a shard. Also, who doesn’t like adding an O’Reilly book to their shelf?
MongoDB, Inc. created an online LMS called MongoDB University designed to introduce you to their non-relational database. There is a developer track that leverages Python to show you how to program against a MongoDB backend, and it provides a DBA track with coursework that involves configuring and administering MongoDB. The programming course begins with simple problems such as setting up MongoDB, running a query and modifying a model application to work with that MongoDB instance. You then move deeper into a replica set and learn how to troubleshoot and optimize indexes and queries. Mongo University is broken up into week-increments that include coursework, quizzes and homework; and upon successful completion you can receive a certificate.
Joining a community was a key factor in helping me learn MongoDB. At Rackspace we formed a group called “Dinner and MongoDB” that met after work on Tuesdays and Thursdays. We were enrolled together in the Mongo University courses, and it was beneficial to have a network of people to discuss the coursework and overcome the stumbling blocks with. We created an email distribution list to ask questions as the homework became more difficult. Whether it is online or in person, I strongly advise you to consider joining a community as you embark on your MongoDB journey.
When it comes down to it, theory is nothing if it is never applied. Ultimately, the best way to learn is to get your hands dirty and write simple apps. Even though you may be the only person who ever uses that application, writing it will give you experience with how to integrate MongoDB in future software. Learning by doing truly helped me become fairly proficient at understanding what workloads made sense to incorporate MongoDB on the backend.
While I may not be an expert, I do have a much stronger grasp on MongoDB and non-relational databases. If you are familiar with MongoDB, let me know how you went about learning in the comments below!
Once you’ve mastered MongoDB and need a place to host your database, consider using ObjectRocket by Rackspace. This is the premier MongoDB hosting with three-node replica sets, all SSD drive infrastructure and one-click scaling.