The 2018 HackerRank Developer Survey revealed that Node.js is not only the second most popular framework with employers, but also that there is a large gap between the number of Node.js developers that employers need and the number of developers who actually have the essential skills.
This article breaks down the 8 skills every Node.js developer should focus on. Use this list to make sure you’re keeping your skills fresh, or to see what it takes to level up and become a highly sought after Node.js Web Developer.
Know Node.js and know it well. It’s not enough to just know how to use whatever web application framework you’ve chosen, you should understand how core Node.js works and be very familiar with the Node.js API. The Node.js community has created a new site with guides and information on deep Node.js topics to help you learn more.
Specific Node.js API domains that come up over and over in web application development are Buffers, HTTP and file manipulation. In addition, the Node.js API continues to grow, so you should stay abreast of new features in Node.js, such as async/await.
2. Web application frameworks
One of the most essential dependencies of any Node.js web application will be the web application framework. Although you can write your own with the HTTP module, building on the shoulders of people before you and using their work is highly recommended. There are many to choose from, if you haven’t yet picked a favorite. In a recent survey by Eran Hammer, the results show Express as having more developer share than all other frameworks combined. Hapi.js came in second, developed by Hammer himself, and then many other frameworks followed with small slices of market share.
In this case, Express is not only the most popular, but also gives you the biggest chance of being able to quickly get up to speed in most new codebases. In addition, it’s well maintained and works really well.
Security on the web has always been a big deal, but with all the breaches and issues recently it is positively a necessity now. Familiarize yourself with the OWASP Top 10, an occasionally updated list of the most important security concerns on the internet. This list will help you identify and audit where your application might be falling short with security.
Learn how to provide secure authentication for your web application. Passport is a popular middleware for authenticating users with a variety of schemes.
Learn how to efficiently use encryption in Node.js. Bcrypt is the name of a hashing algorithm and commonly used npm package for encryption.
Even though your code might be secure, there’s always the possibility that one of your dependencies could be insecure. Using the ‘npm audit’ command will help you identify when to upgrade dependencies that have identified and fixed security issues.
4. How to front end
Your Node.js codebase won’t be enough to run your web application. You’ll also need to know how to store dynamic data in a persistence layer like a database. There are way too many database options to list here, but often the best way to interact with them in Node.js is through an Object-Relational Mapping (ORM) tool.
One popular option is Sequelize, which gives you a consistent API to interact with regardless of the type of SQL database you are connecting to. This not only gives you a convenient way to define your table schema and update records, but also gives you the option to easily switch your database engine if needed.
Mongoose is one of the more popular ORMs for MongoDB if you prefer a NoSQL option. The bottom line is that you should know one of these database solutions well.
6. Package management
Node.js package management is one of the most fluid parts of the Node.js community. The npm CLI is the utility that ships with the Node.js binary, but for years it had many glaring issues. Yarn was launched as an alternative that had some big name sponsors attached, and fixed many of the issues that npm failed to deal with. But competition breeds innovation; npm not only fixed those issues but is innovating in the world of package management beyond the features of Yarn. Today, it’s almost a toss up which one you should use, but having experience with a package management solution in Node.js is an essential skill.
7. Cloud platforms
You’re not going to serve your web application from your personal computer, so it’s best to get comfortable with a cloud platform that you can deploy it to. The big names are always good picks, such as AWS or Azure, but sometimes that might require more infrastructure configuration than you want to deal with. Many smaller cloud providers tailor themselves to a comfortable developer experience. Now, Heroku and Netlify are just a few of the many options to deploy your Node.js applications to a cloud platform easily.
8. Source control
Are you using source control with your Node.js applications? If the answer isn’t “No duh” then you need to “git” with the program! Source control is a no brainer for every application, even small ones, but there are definitely different levels of git mastery. Spending some time becoming familiar with git commands beyond “commit” and “checkout” will not only impress your co-workers and friends, but also help you keep your codebase clean and orderly. With GitHub recently making private repositories free, there’s no reason not to start using source control and becoming a master with git.
Ready to get started? Get your Node Web Developer Role IQ.