Learning Node, Express, and Mongo
On June 16, 2017
I’ve finished my last exam on Wednesday, and I’ve been studying the Node.js Coursera Class since then. A class that I’ve failed to complete multiple times over the last couple of months; due to the pressure imposed on me by the university and the work I had to complete in my free time. So, now seems the perfect time to finish this course, to help me transition into a full-stack developer position as I’ve always planned.
What I’ve learned so far
So far I’m in week 3 of the 4 weeks’ MOOC, and I’ve learned about the following concepts:
- I learned how to create simple Node modules, and import them into other modules, to create a modular Node code.
- I also learned about Express.js and how to set up a basic server using it.
- Then I learned about MongoDB, and I really enjoyed the flexibility of the NoSQL DBs, it’s a lot more flexible and scalable than the SQL DBs that I’ve dealt with in the past. Here’s the code I wrote for that.
- After that I learned about Mongoose, and how to use it to impose a schema and a model on the collections in the MongoDB. Here’s the code I wrote for that.
- Then I connected the Express server written earlier to the Mongoose models, to create a fully functional RESTful APIs. Here’s the code I wrote for that.
Next, I’ll be learning about:
- Basic user authentication.
- Cookies, and Express Sessions.
- Using Passport to authenticate users using their social media accounts.
- HTTPS and secure communication.
- Backend as a service.
- And I’ll finish that course by integrating the AngularJS/ionic app I’ve constructed in the past with the newly created backend.
How soon I’ll finish this
I think if I kept learning with the same pace I’m going now, I might be able to finish this by next Friday. Anyway, I’m more focused on learning the concepts behind everything in that course more than finishing it quickly, as I don’t have an actual CS background, and most of the concepts taught here are new to me. That’s why I think that understanding the meaning behind everything we do in this course is more important than following the instructions in building the app. I find it also important to read the external resources provided after each module, that helps me learn more about the tools and frameworks we are using in a more general sense, instead of just understanding the basics taught for the purpose of completing the restaurant app that we’re building in this course.
After finishing that course, I’ll now have backend knowledge, and I’ll have developed a fully functional restaurant web/hybrid app. So, I might also build a couple of demos one using MEAN, and the other using MERN; to refresh my memory on both Angular and React.
After that I’ll continue working, and freelancing. Also, I’ll continue working on a side project that I’ve been working on in hopes of having a working demo before startup weekend this year.