MongoDB course, thoughts and feedback

I’m afraid I traded my ability to understand SQL for the ability to understand Object-Oriented Programming a long time ago. That’s why I never have been at ease with databases in general and SQL in particular. Given the not-so-recent trend about NoSQL, I thought it was time to give it a try. When I became aware that 10gen - the company behind MongoDB, was making free online courses available at regular intervals, I jumped at the chance and last month, I registered for M101J: MongoDB for Java Developers.

Yesterday, I finished week 5 assignments. Even though it’s not finished yet, it’s time for some feedback, on the both the course and MongoDB.

On the bright side:

  • First, I’d like to thank 10 gen to make those courses available freely. Of course, it’s not without second thoughts, but it would be a better world if other software editors would do the same.
  • Also, the course is very practical and IMHO well adapted to a software engineer’s day-to-day work. I’ve prevoously followed Coursera’s Scala course, and I disliked it because I felt it was too theoritical: homework examples were about algorithms and had no roots in the real world. Compared to Scala’s course, this one is much more pragmatic and relevant to me.

There are some downsides, though:

  • The course is said to be "for Java Developers". Unfortunately, some - if not most - of the courses and their associated homeworks are about the MongoDB shell, which is plain JavaScript. I would have prefered to have two different courses, one for the shell and one for the Java API.
  • Speaking about the Java API, to tell it’s a thin wrapper is an understatement, for it’s only the literal transcription of JavaScript shell commands into the Java language. I know API design is hard, but come on guys: no enumerations, no constants, only Strings! I was expecting more in 2013 than JDBC reinvented, complete with String concatenation…​ Now, here’s what one who has been around a few years can expect if MongoDB becomes widespread:
    1. Productivity will be low, there will be tons of bugs, developers will complain
    2. Some smart people/company will provide a usable wrapper API around the native one (in fact, Spring Data already does)
    3. MongoDB will learn its lessons and provide their own improved API, based on their competitor, but not quite like it
    4. And it will be the whole JDBC to Hibernate vs JPA war all over again!
  • SQL is not what I would call readable, but it’s expected for a technology that began some 40 years ago. I have more expectations for a technology a few years old, but sadly, they are to be unmet. Whereas standard MongoDB queries are not a model of usability from a developer point-of-view, but the palm goes to the so-called aggregation framework. As an illustration, this Gist is the answer to one of this week’s homework (obfuscated of course).

This is my feedback based on my own experiences and those are completely personal. I would recommend anyone even remotely interested in NoSQL to take those courses themselves and make their own mind. The next batch is planned for July 29th.

Nicolas Fränkel

Nicolas Fränkel

Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Also double as a trainer and triples as a book author.

Read More
MongoDB course, thoughts and feedback
Share this