Free and Paid Node.js Resources and a Giveaway
Tags: node, webdev, codenewbie, giveaway
Published: 2021-03-08 17:30:03

*Disclosure: I’m an affiliate for some of the resources mentioned in this article. If you buy a product through my links on this page, I may get a small commission for referring you. Thanks!*

Learning Node.js can take time especially with the increasing number of packages. So, I decided to put together free and online resources to help you learn Node.js.

## BOOKS

1.[Node.js Design Patterns](https://www.amazon.com/gp/product/1839214112/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1839214112&linkCode=as2&tag=hulyasbooks-20&linkId=0bfd0e1fb657adaa636e0d0e426fbb4f)

In this book, you will learn how to implement a series of best practices and design patterns to help you create efficient and robust Node.js applications with ease.

The book kicks off by exploring the basics of Node.js, analyzing its asynchronous event-driven architecture and its fundamental design patterns. Then shows you how to build asynchronous control flow patterns with callbacks, promises and async/await. Next, you will dive into Node.js streams, understanding their power and how to use them at their full capacity. Following streams is an analysis of different creational, structural, and behavioral design patterns that take full advantage of JavaScript and Node.js. Lastly, the book dives into more advanced concepts such as Universal JavaScript, scalability and messaging patterns to help you build enterprise-grade distributed applications.

2.[Node Cookbook](https://www.amazon.com/gp/product/1838558756/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1838558756&linkCode=as2&tag=hulyasbooks-20&linkId=1f0797c92d2f2725e007272b76b4f7a5)

By the end of this Node book, you'll be well-versed with core Node.js concepts and have gained the knowledge to start building performant and scalable Node.js applications.

What you will learn
- Understand the Node.js asynchronous programming model
- Create simple Node.js applications using modules and web frameworks
- Develop simple web applications using web frameworks such as Fastify and Express
- Discover tips for testing, optimizing, and securing your web applications
- Create and deploy Node.js microservices
- Debug and diagnose issues in your Node.js applications

3.[Node.js Web Development:5th Edition](https://www.amazon.com/gp/product/1838987576/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1838987576&linkCode=as2&tag=hulyasbooks-20&linkId=afc4ce53f0a8e116b9af4ed8363c37a2)

In this book, you will:

- Install and use Node.js 14 and Express 4.17 for both web development and deployment
- Implement RESTful web services using the Restify framework
- Develop, test, and deploy microservices using Docker, Docker Swarm, and Node.js, on AWS EC2 using Terraform
- Get up to speed with using data storage engines such as MySQL, SQLite3, and MongoDB
- Test your web applications using unit testing with Mocha, and headless browser testing with Puppeteer
- Implement HTTPS using Let's Encrypt and enhance application security with Helmet

4.[Node.js 8 the Right Way](https://www.amazon.com/gp/product/168050195X/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=168050195X&linkCode=as2&tag=hulyasbooks-20&linkId=3666af22c996875274656501316fbaca)

Each hands-on chapter offers progressively more challenging topics and techniques, broadening your skill set and enabling you to think in Node.js.

Write asynchronous, non-blocking code using Node.js's style and patterns. Cluster and load balance services with Node.js core features and third-party tools. Harness the power of databases such as Elasticsearch and Redis. Work with many protocols, create RESTful web services, TCP socket clients and servers, and more. Test your code's functionality with Mocha, and manage its life cycle with npm. Discover how Node.js pairs a server-side event loop with a JavaScript runtime to produce screaming fast, non-blocking concurrency. Through a series of practical programming domains, use the latest available ECMAScript features and harness key Node.js classes and popular modules. Create rich command-line tools and a web-based UI using modern web development techniques.

5.[Web Development with Node and Express: Leveraging the JavaScript Stack](https://www.amazon.com/gp/product/1492053511/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1492053511&linkCode=as2&tag=hulyasbooks-20&linkId=02d90cf7ede6b4b37bed1907e995be25)

Express strikes a balance between a robust framework and no framework at all, allowing you a free hand in your architecture choices. Frontend and backend engineers familiar with JavaScript will also learn best practices for building multipage and hybrid web apps with Express. Pick up this book and discover new ways to look at web development.

- Create a templating system for rendering dynamic data
- Dive into request and response objects, middleware, and URL routing
- Simulate a production environment for testing
- Persist data in document databases with MongoDB and relational databases with PostgreSQL
- Make your resources available to other programs with APIs
- Build secure apps with authentication, authorization, and HTTPS
- Integrate with social media, geolocation, and more
- Implement a plan for launching and maintaining your app
- Learn critical debugging skills

## Github Repos 

1.[awesome-nodejs](https://github.com/sindresorhus/awesome-nodejs)

You can discuss Node.js and ask questions right in this repo. This repository has all you want, just check out the TOC, and time will fly away. 

2.[stream-handbook](https://github.com/substack/stream-handbook)

If you want to learn about streams, you should check out this handbook by Substack. I have also taken his [Frontend Masters](https://frontendmasters.com/) course about Networking and Streams. 

3.[awesome-nodejs-learning](https://github.com/kryz81/awesome-nodejs-learning)

This repo contains resources to learn Node.js. You can find also useful blog post links here.

4.[node best practices](https://github.com/goldbergyoni/nodebestpractices)

This repository is a summary and curation of the top-ranked content on Node.js best practices, as well as content written by collaborators

It is the largest compilation, and it is growing every week - currently, more than 80 best practices, style guides, and architectural tips are presented. New issues and pull requests are created every day to keep this live book updated. Also, you can contribute to the project. 

## Websites

1.[NODESCHOOL](https://nodeschool.io/)

Open source workshops that teach web software skills. Here, you can join a workshop, or create your own workshop.

2.[30 days of Node](https://nodejsera.com/30-days-of-node.html)

Tutorials about Node.js, you can do a 30 Days of Node Challenge and learn all about Node.js. 

3.[Frontend Masters PAID](https://frontendmasters.com/)

Frontend Masters' Node courses are taught by industry leaders like Substack, Kyle Simpson, Scott Moss, and Will Sentance. It's a paid resource, but with my **GIVEAWAY** you can get it for free.

4.[My First Course Node.js Getting Started FREE](https://skl.sh/2Nrrj9g)

I still can't believe I am writing this, but I have published my first online class on Skillshare. I have covered the behind-the-scenes of Node.js and some beginner concepts. It is just a one-hour course. You can check out my slides [here](https://slides.com/hulyakarakaya/deck) and you can take my class for free with this [link](https://skl.sh/2Nrrj9g). It's not the best course I know, but I really spent a lot of time on it, and I just wanted to try, that's why I would appreciate your feedback.

5.[Introduction to Node.js by Linux Foundation FREE] (https://www.edx.org/course/introduction-to-nodejs-2?index=product&queryID=100d4d486b9fc51eb557e394d0bec105&position=2)

In this course, you will learn how to rapidly build command-line tools, mock RESTful JSON APIs, and prototype real-time services. You will also discover and use various ecosystem and Node core libraries, and come away understanding common use cases for Node.js.

## 🏆 GIVEAWAY 🏆

I will give one person 6 months of **[Frontend Masters](https://frontendmasters.com/)** membership. To join the giveaway, all you need is to signup for my [course](https://skl.sh/38zT9Ym) for free and follow me on [Twitter](https://twitter.com/hulyakarkya). I will announce the winner on my Twitter account on Friday.