Why we don’t teach NodeJS in our Full-Stack Development program
We love NodeJS. We even work with it in some of our 4Geeks experiments. Node challenges the way the web is made – making it super fast and unifying it into a single language (which is amazing for the community because developers are able to specialize). Node is super hot in the software development world and it was growing so much last year (2016) that it seemed unstoppable. All that said, I’m sure you are asking yourself, why is it that 4Geeks decided to leave it out from its Full-Stack Development program?
As the geeks we are, the decision was hard to make at the beginning, but once we started listening to the teacher inside of us, everything became clear. Our full-stack development program is not meant to teach “what is cool,” it is meant to teach “whatever makes you the most prepared developer for both current and future market needs.”
Node JS is only used in ~0.3% of the web
According to studies made by W3Techs, Similartech and many other market research firms, Node JS is only used in 0.3% of the web, and it is not growing as fast as it was growing last year. Maybe the hype is gone, or maybe not, but it will definitively become another alternative and it will not replace the current technologies. On the other hand, a language like Python is not only far more used on the web, it is also the most used language for Data Science, Machine Learning and AI. Most of those major libraries are written in Python – making them easier to learn in the future.
The fundamentals come first
If you learn Python/Django, you will be comfortable working with Ruby/Rails or PHP/Laravel, but Node is extremely different from the rest of the back-end technologies. We have to make sure that you understand how to build websites that are similar to the other 99.7% of the web.
Node: If you are wondering why we discarded Ruby on Rails read this article: R.I.P Ruby On Rails, Thanks for everything.
Node has less structure
One of the most amazing things about popular back-end frameworks (like Django and Python) is that they force the student to follow all the best possible practices: To have an organized and clean code, use the MVC pattern, form validation, security, etc. They also have amazing and very mature libraries to integrate with the database, third party API’s, etc. Node’s libraries are newer; they have less documentation, less structure, and a lot more bugs. Just imagine our students having to sort between all of that! It is better to make them work in a polished environment that will have them ready and productive in their future companies/employments!
Recommended reading: Why MIT Chooses Python as the main language to teach how to code.
The student’s brain
Our biggest challenge has always been finding ways to teach more with less, because the program only lasts 16 weeks and the human brain does not like to learn from scratch. Every time we introduce a new and different technology into the student’s brain, its mind becomes overwhelmed and we must give them enough time to practice until they are comfortable enough to start learning new stuff. Bringing Node into the formula without removing other topics will require several additional weeks.
Node growth rate is declining
Node grew like crazy in 2015-2016, but if you keep reading about Node you will see how -throughout the last few months – more articles like this one or this one started showing up. Like it always happens with amazing new technologies, there was a bubble at the beginning that supported most of the Node growth, but that bubble has burst and now is the right time to start analyzing where the heck is Node going to be positioned in the future market.
We love Node! It deserves a spot in some of our Workshops, but it’s not the moment to include it as part of our main Full-Stack Development program.