It has been a long journey getting through this book, 8 weeks actually. I can honestly say I have learned a heck of a lot and know I can be more effective in the future. For the last couple of years I have felt like I have had a giant gaping hole in my knowledge when it came to different types of databases, and this book has really helped me start to fill in that hole.
Impressions of the Book
While the book has strong and weak parts, overall it did a great job at giving just enough information for you to learn each database. The only negative of the book is it isn’t longer, more detailed, and doesn’t have more in-depth examples of data to store, but that is because I like details to be extensive as possible even if they are too much. The book accomplished its goal well and was surprisingly short based on everything I learned.
What I learned
Day 3 of Redis Chapter
I hinted at really liking Day 3 of the Redis chapter, and it making me a better developer. What I was not telling you is that Day 3 was all about using 3 separate databases Redis, CouchDB, and Neo4j to build a single application. It was all built on Node.js so it can give you a real look at the breadth of technology it can be used with.
What was very interesting is how it was used in conjunction with everything, and it was well layed out showing yet another way to use the databases. I’ll be honest it did not go into as much detail as I wish it would have, but it did just enough to drive the point home, which was the point.
Types of NoSQL Databases
I never realized there were so many different types of NoSQL databases. Part of that was because of everyone calls it NoSQL, and the other part of it was because I never looked beyond MongoDB. The greatest thing about reading this book is I am not only aware of the different types of databases, but I am starting to understand when a good scenario is to use them in. It gives me a better leg up for the future when I might run into scenarios to need them since NoSQL is becoming more important.
To the Future
For the immediate future I am going to start off on a project and use MongoDB. I am choosing it because I feel the most comfortable with it, and I am not sure which type of NoSQL store I should use. I do however know for this project NoSQL is the optimal data store over an RDBMS, which is a win in and of itself. I kind of feel like I should use a key value pair store, but I figure since this is a side project for fun if I choose wrong it really doesn’t matter since it will be fun and I will learn.
Believe it or not by the end of the year I will start in on using Neo4j for another project, and I will bring you along for the ride. I have had an idea for an application for a long time to help with my learning Japanese. The problem is how I envision the project and its complexity I have always had trouble with the database schema. After working with Neo4j it hit me that it might be the correct fit for my specific needs, maybe. I will be experimenting with it and using it with Node.js as well.
I find the fact that I am now able to analyze the needs of my project and start the process of choosing a data-store in an informed manner to be a huge win for me. I walked in with no knowledge and a lot of confusion, and have emerged with a better understanding of how to solve some of my problems with a couple of projects. Problems I didn’t know exactly what they were or how to solve them before, I only “felt” the problem.
I do recommend this book to anyone interested in learning more, and about, databases. To be honest it was a bit much to try and do each chapter every week, and try to understand it fully. If you are at least a little bit familiar with NoSQL DB’s you should be fine, but if you were like me and had no understanding at all then take more time. Other than that get the book, learn and become a better developer so you can make even cooler stuff.