I completed the Introduction to Meteor.js Development course two weeks ago, after submitting the final assignment – my social website aggregator. I waited with this “final thoughts” post, because the course officially ended just now.
Overall, the course was effective. It already proved useful, as I was able to build the first Kambatz iteration starting from my assignment submission.
I have one major criticism towards Coursera here though. This course is part of a 6-part specialization that they are marketing aggressively, but they are also selling the individual courses from the specialization. This implies that the courses are independent, but this is definitely not the case. The course referred to “other courses in the specialization” quite often throughout. I won’t complain much, as I took the free version, but this wouldn’t be fair towards paying students…
Back the the course itself. If you’re also new to Meteor, and considering whether to take this course, or just go through the official tutorial, here’s my advice:
- If you want to start with Meteor as quickly as possible, just do the tutorial. If you have React background, do the React tutorial. Otherwise, do the Blaze tutorial.
- If you’re not in a rush, and you’re lacking said web development skills, consider taking the entire specialization. If you’re not afraid of picking up new things on the fly, you might be fine with starting with this course, and filling in the gaps as they come up (this is what I did).
The course was great, but the time investment was much greater than going through a tutorial. The tutorial focuses on Meteor stuff, while the course also deals with building an actual web thingie around the Meteor stuff. As far as “actual Meteor stuff” are concerned, both the course and the tutorial cover similar grounds. The tutorial actually covers more core Meteor, like methods and subscriptions – topics that only the follow-up course deals with. The course covers more diverse topics, like using a bunch of packages beyond
accounts (bootstrap, stars-rating, comments, search) that are practically useful for building real web applications.
One particular aspect of this course that I really appreciated is the fact that bugs and errors were not edited out! The instructor would often make code changes “on camera”, and make a mistake or error (most commonly forget a comma, sometimes forget to save one of the files, etc.). Then, when things crash and burn, instead of redoing the scene, the instructor would simply live-debug what’s happening – which is great, because these kind of things are expected in real life, and shouldn’t be hidden and left on the editing floor 🙂 .
Unfortunately, there were some more subtle issues with the examples that were not uncovered and dealt with by the instructor. Here are a couple of example of issues that were raised by students in the course discussion forums:
- It appears that the accounts-password package is vulnerable to user ID and password enumeration, as visible from the responses the instructor got in the video when trying to log in using different usernames and passwords.
- Seems that the gallery rating functionality implemented in week 2 broke by the end of the week, as visible in the videos where sometimes the rating wouldn’t show up. Some students thought this might be because of elements with ID’s that start with numeric characters (when the underlying Mongo ID happens to start with a number). Others pointed to the fact that there are two elements with the same ID as the root cause. I still don’t know what exactly is the root cause, and what should be the proper fix.
As with my point about bugs and errors – I think it is good that there are problems. The “unfortunate” thing here is that these issues remained unresolved, without attention from the course staff. The first issue, concerning the security of a core Meteor package, may be beyond their control. But not addressing the second issue, concerning the core content that they created, is simply unprofessional.