Monthly Archives: September 2013

MongoDB for Node.js developers – Course Experience

10Gen – MongoDB company offers free courses. In March 2013, I downloaded and configured MongoDB on my machine.  At that time, I knew 10Gen offers free courses of their product, but didn’t have a chance to get onto it. In August, I started MongoDB for Node.js developer course. The course was 7 weeks duration with estimated 5 hours per week commitment. This week was Final Exam week and I just completed my final exam. I have my own best practices and some regrets that I’d like to share.  For anybody who wants to understand the NoSQL and how it is different from traditional RDBMS, I highly recommend this course. Only thing is that you will need to know basics of Node.js. At least Javascript. There is a MongoDB for Java developer couse, but weekly commitment is double the Node.js course (10 hours per week).

Course

Course material covers the main concept of MongoDB using Node.js driver and Mongo Shell. Someone without Node.js experience will likely having a hard time doing a homework, but most of home works are generally not too difficult to complete. Forum is pretty well maintained and staffs are pretty good at responding. Week 5, 6 focused on aggregation and shard, so not so much Node.js was discussed. I found the week 2 was the most difficult week. Not only so much knowledge, but also length of videos. Somebody in the forum wrote that he spent 15 hours to do the homework. I spent about 10 hours of watching videos and completed the homework. Sometimes, instructor explained the concept and ran his own Mongo shell really fast, so I had to rewind the video several times to understand the concept and do my own Mongo shell run side by side. Even though some homeworks uses Node.js and need to run code in Node.js, I felt more comfortable doing the same thing in the Mongo shell. Maybe because it gives me a result right away without starting Node.js. Also, lecture always uses Mongo shell to explain the concept.

Best Practice & Regrets

One thing I did well was taking a note from the video lecture and run my own command right after the concept is introduced. By doing this way, it took twice longer than just watching video lecture, but it paid back later during the final exam week. I just simply reviewed my notes and sample code from the note instead of searching for MongoDB manual.  I started to take a note from week 4. I didn’t think about this practice because of very well documented MongoDB manual. During the final exam, I felt I really need to refresh my memory in a short period of time and wish I had a note from earlier weeks.

Looking ahead

So now what? Course is over and I know how to use MongoDB including configuring replication environment. This opens up a perfect opportunity for me to experiment MongoDB with Hadoop. Next week or so, I will solidify my understanding of MongoDB and start to explore more options how Enterprise programming uses MongoDB in the real world. I will analyze real world situation when to use MongoDB and focus on why MongoDB is better in that situation.

Summary

NoSQL is a buzz word in a modern web development. MongoDB is one of the well known NoSQL DB and I believe it has its own place in the application development. With many years of RDBMS experience, using MongoDB requires a paradigm shift. No table relationship, no join. Just document itself represents the state of data. The syntax didn’t bother me so much because of JSON experience (I read an article complaining about MongoDB ruining JSON structure), but there are several things that requires strong mental notes :  Schema design, index strategy, and choosing a shard key in replication environment.

It was interesting 7 weeks with MongoDB and hope to identify my own unique usage of MongoDB in the real world project.

Advertisements

Standford Startup Engineering online course – completion & experience

Finally it is over, after 12 weeks of long campaign. The course had few interesting turns, but in the end I learned what I wanted to learn. Most of all, collaboration with friends are very unique experience. Before the course, I thought about taking the course together with others and suggested to my coworkers. When I suggested the idea, 6 other people at work showed interests. We were all motivated and enthusiastic about the course. However, it was very difficult to manage time in summer and some of us couldn’t complete the course. I had a week long camping scheduled during the course and I managed to handle it by working late on a weekend before the camping. At work, we had a weekly meeting to encourage and discuss the idea. The course offers the forum to discuss the issues and idea, but I felt offline meeting was really helped me focus on the course. Also, knowing other coworkers’ progress gave me enough peer pressure to stay on the course.

Certificate

Michael Jo Certificate

Course Content 

The course was extended to 12 weeks from 10 weeks. Up to 3 weeks, all the videos are posted on time, but things got delayed as summer approached. With over 125,000 students, the professor and his team did the best they can do, but I felt it was quite difficult to cover all the topics for all different levels of experience. Topics that I learned were Entrepreneurship, emerging technologies, Node.js, AWS EC2, Heroku, Unix commands, emacs, Git, GitHub, BitCoin, and Bootstrap. Not like what I expected in the beginning – I thought I will have a product at the end of course, the course duration was too short for the actual product development. I think the purpose of this course – my own interpretation – is to open up the door for different possibilities by knowing what’s out there and provide basic knowledge to follow on our own. In the end, the course ran out of time to cover the DB and Coffeescript in more detail.

Summary

I highly recommend this course to anyone who wants to understand how modern web technology is evolving. Especially, someone who is thinking about their own product to sell. This course shows both technical and philosophical aspects of starting up business in the modern web environment. From the Enterprise Java application development/support perspective, I learned the benefit of using Cloud and potential power of server side Javascript.

Lunch & Learn presentation : AWS EC2, Heroku, BitCoin

Upcoming courses

I am at my final week of MongoDB for Node.js developer from MongoDB University. Also, week 5 of Creativity, Innovation, and Change course and Disaster Preparedness from Coursera. My next courses are Data Analysis course and Inspiring Leadership through Emotional Intelligence course starting in the end of October. I felt that I need to understand how to analyze Big Data and also need to learn more about leadership skills.

Most anticipated course, at least for me, is Programming Handheld Systems with Android starting next January. Already 8 coworkers are signed up for this course. Although it is not easy to manage your own time and balance with your family life, it is worth taking advantage of free online courses.

Let another collaborative learning begin!