It involves learning how different tools solve different problems, how different tools work together, and how different web applications are built structurally. It takes time to determine the tool that best completes a specific job. This will help us make an informed decision on what to tool to use. Then we can research for available technologies that best complete the specific job. Before we can decide on a tool, we need to first understand the problem we want to solve.
Sounds ludicrous now, right? Figuring out how to cut wood with a hammer is possible, but why would we want to do it, given there are special tools for the job out there? Learning one tool opposed to four tools is not the only consideration for deciding on a programming language.Īlthough NodeJS, ExpressJS, AngularJS and MongoDB are all excellent tools, in many cases there are other tools that will work better for a specific web development project. If I learn how to use a hammer and not the blueprint’s tools - saw, nails, glue, drill - will building a bookshelf be 4x easier for me? If I focus my time on how to use a hammer, will I create 4x more bookshelves than anyone who uses those four tools? In other words, I frequently get asked questions like this: We can avoid using blueprints because that will mean we’d have to learn how to use a new tool. We can connect the pieces of wood with nails we drive into the wood with the hammer. Instead of cutting the wood with a saw, we can use the opposite side of the hammer to split the pieces of wood into smaller pieces. A drill can come in handy too, depending on the blueprints we’re using. We can use a saw to cut the wood, nails to connect the pieces of wood, a hammer to drive the nails through the wood, glue in some places that aren’t appropriate for nails. Here is a helpful analogy of a practical problem we can use to understand the types of problems we face in web development. We want to find the best tool for the job and evaluate different technologies based on its merits. If we want to make the long-term decision that will benefit the growth of our developer careers, we need to think of programming languages differently. The smart way to becoming a full-stack web developer is by first learning how to figure out the things that we don’t know - procedural knowledge - and how to teach ourselves foreign concepts. Domain specific knowledge alone will make our skill progression a negligible amount easier in the grand scheme of any developer’s career. Learning only a programming language’s syntax - domain specific knowledge - doesn’t mean we’ll become a better full-stack web developer. Learning JavaScript alone is not a fast track to full-stack web development. It seems intuitive that we would be 4x better off as a full-stack JavaScript developer, but this is a common misconception.
If I learn JavaScript and not the “MEAN” stack - MongoDB, ExpressJS, AngularJS, NodeJS - will web development be 4x easier for me? If I focus my time on JavaScript, will I be 4x better than any developer who uses those four technologies?
I frequently get asked questions like this: Yet, the “MEAN” stack can provide simpler solutions to a wider variety of problems. Newcomers will often gravitate towards learning only JavaScript - a single programming language - but it’s often mistaken as a shortcut to becoming a full-stack web developer.
You may have come across Ruby on Rails, NodeJS, AngularJS, JavaScript, and perhaps the “MEAN” stack - MongoDB, ExpressJS, AngularJS, NodeJS - in your research of the different programming technologies.