How I Moved from SQL Server to MongoDB
I developed my first database in the year 1995 (just before Windows 95 was released). I used a database that I am willing to bet you have never heard of: [drum roll please] Alpha 5. It seems that they are still around, give it a search. Soon I was asked to switch to Microsoft Access and to make the application client/server. It wasn't long that I upgraded the back-end to SQL Server.
Fast forward to 1998 and I was using SQL Server along with ColdFusion to develop interactive web sites, including my own ventures. I was very comfortable with that stack, until the advent of AJAX.
I remember the days in 2005 of playing with a hidden iframe to help JavaScript update the screen with the results of an operation, invoked by a visible button on the page, running in the hidden iframe. If you don't know what I am talking about, congratulations! You are young and had xhr served on a plate.
But JavaScript was a royal pain until some standardization arrived across browsers and jQuery made life a little more sane.
Yet, I was still using SQL Server.
What got me to switch? Some quirky errors that my hosting company's dba essentially said couldn't really be fixed. I had data that wouldn't display unless I sorted it a particular way, system processes that would fail, and a good number of headaches that made me decide: "I do not want to deal with this any more".
I am old enough to know that there are problems with every technology, but I had embraced JavaScript by now, why not embracing a NoSQL database that worked with JavaScript and JSON syntax?
It didn't take long that I was researching databases. CouchDB had a lot of fans among my peers, but I didn't think it had what I needed. MongoDB did, or at least convinced me that it did as I really did not know if I was going to be able to make the switch.
Switching from a relational database to a document based database is not simple. You have to at least grasp the differences in data models. You also have to make a plan for accomplishing the same things you did before, but this time using a document data model.
Again, it didn't take me long to understand the vast improvement in productivity granted by using a database that spoke the same language as the rest of the stack. But there was a problem: I was hacking my way around and I knew that it would come back to bite me. It was time to get serious. So, in March 2016, I signed up for a class, M101JS, that was supposed to prepare me for certification. I worked hard, began getting up at 5 every morning, and studied away. I got 100% in the class and scheduled to take the certification exam.
I failed my first attempt and was crushed, but not defeated. The class did not come close to preparing me, or maybe I was starting with too little experience. So I hit the books focusing on the documentation. I passed a month later even though I knew that I had missed three questions due to the same error.
In August 2016 I started working at Cisco Systems in a team that used MongoDB for a solution. We did not have a DBA so I signed up for the M102 DBA course in October. At the beginning of December, super busy with a million other tasks, I could not complete the last couple of assignments. I was so bummed because I always finish what I start. I still managed to get an 84% in the class, but I did not feel ready for the DBA Certification Exam.
I signed up for the January 2017 exam even though I was going to be on vacation with my family for three weeks from Christmas to a week before the exam. I got very little time to study and was prepared to take the exam again in February. I did focus for a few days after the kids stopped waking up at 4 am due to jet-lag.
Much to my surprise, in early February I got the news that I had passed the exam. I believe that my experience on the job really helped this time, in particular because we had to setup replication, research the possibility of sharding, and keep our finger on performance.
Now I am one of only two people in California who have dual certification in MongoDB (both Developer and DBA). This doesn't mean that I am a guru. I am sure that there are better prepared people (who never bothered to get certified) at handling real-world situations than I am. Yet, I feel that I got a very solid foundation straight from MongoDB.
Yesterday, I started following the M201 MongoDB Performance course. That's my first step towards the next level. My plan is to also take M034, M202, M310, and M312 to cover new features and to deepen my DBA understanding.
Ultimately, I want to work on big data solutions. MongoDB is the first step in a long journey, a journey that I have to cover quickly because new innovations come at a breathtaking pace. So, any spare moment I have I try to invest it wisely because if you stop you fall behind. Let's hope that I am heading in the right direction... so far the job market has proven me right.
How I Moved from SQL Server to MongoDB
Staff Engineer
7 年Nice write up! I too came from the sql server world. I am a certified c# developer that has moved to nodejs and MongoDB and haven't looked back for one second. Life is better now :)
One clarification, Daniele. There are quite a few more than two dual-certified MongoDB pros in CA ;-) https://university.mongodb.com/certified_professional_finder/#country=US&state=CA&expertise=dual (and those are just the ones that have opted in to the Certified Professional Finder).
Congrats on passing the exam! It's really hard . Now you'll have to lead a BOF at #MDBW on exam prep!
Great writeup, Daniele.
Database Manager/Sr. Infrastructure Engineer
8 年Great journey...keep learning.