Books and videos so you can easily learn Node.js programming

programming.png

Have you heard about Node.js, but aren't sure what it is? Maybe you know about this exciting new software development platform, Node.js, but don't know where to start learning it? Maybe someone told you Node.js is JavaScript for server-side environments, which left you extremely confused? Or maybe you've never heard of server-side-JavaScript, and think JavaScript only runs inside web pages? The following resources will help you learn how to develop in JavaScript not inside a web browser, but on the server, using the Node.js platform.

Node.js is an exciting new platform for developing web applications, application servers, any sort of network server or client, and general purpose programming. It is designed for extreme scalability in networked applications through an ingenious combination of server-side JavaScript, asynchronous I/O, and asynchronous programming. Its claimed that the event-driven architecture gives a low memory footprint, high throughput, a better latency profile under load, and a simpler programming model. All this makes it an attractive platform for web application development.

By supporting JavaScript on the server it means software teams can share code and ideas and methodologies between front-end and back-end. By living in the same programming language they'll speak the same language to each other, have an easier time sharing data structures, use many of the same tools, and have a similar mindset.

There is tremendous excitement about Node.js, and it's already widely used in production websites. Which, obviously, may be why you're here. You want to learn about developing software with the Node.js platform. Read on.

Introductory

Node.js Web Development - Third Edition: An excellent introduction to web application development in Node.js. It takes you from zero knowledge (assuming you have basic skills in programming, HTML and JavaScript), and takes you all the way to a pseudo-real-time chat application running between browsers, and writing unit testing. Along the way you learn about user authentication using Passport, application deployment on real servers using Docker, unit testing and a whole bunch of other stuff. The intent is to show you the full lifecycle of Node.js application development, and to give you a solid grasp of every aspect. The focus is on typical web applications, where there are web pages being displayed in a browser, and on using the Express framework.

NOTE: I am the author of this book.




Node.js the Right Way: Practical, Server-Side JavaScript That Scales: This small book takes a different approach than building a web app with express. Instead it looks at asynchronous programming, file handling, socket programming, messaging with ZeroMQ, using CouchDB and REDIS databases.




Node.js in Action: An example-driven tutorial on Node.js software development. It covers not just web application development, but asynchronous programming, data storage, and output templating, and interact with the filesystem to create non-HTTP applications like TCP/IP servers and command-line tools. Some of the authors are core contributors to Node.js.




Web Development with Node and Express: Leveraging the JavaScript Stack: Focusing on Express 4.0 because it "strikes a balance between a robust framework and no framework at all," this book walks you through developing applications with MongoDB, Node and Express. It talks about document databases, debugging techniques, RESTful API's, authentication, authorization, HTTPS, etc.




UDEMY: The Complete Node JS Developer Course: Teaching you to build Node.js apps from scratch by walking you through the implementation of four different applications. The course is comprised of over 18 hours of video spread out over 150 videos. You'll explore popular Node JS 3rd party modules like Express, Sequelize, and others. You'll also learn how to host your code on GitHub and deploy it live on Heroku!
UDEMY: Learn Nodejs by building 10 projects: Take an hands-on in-depth tour of developing Node.js applications, by building applications. You'll receive over 86 lectures and 18.5 hours of content. The projects are:
  • Project 1: Simple Web Server
  • Project 2: Basic Express Website
  • Project 3: User Login System
  • Project 4: Node Blog Systems
  • Project 5: Community Events
  • Project 6: BookStore
  • Project 7: Chat IO
  • Project 8: Doctor Directory
  • Project 9: Portfolio App
  • Project 10: Elearning System
UDEMY: Advanced Node.js Development: This course focuses on application developing using the AJAX model. That's an acronym for Asynchronous Javascript and XML, which relies on the browser page sending an asynchronous request to server-side code, and getting responses in XML. However, this course uses JSON rather than XML so shouldn't this be called AJAJ? User authentication is demonstrated with PassportJS.

The course contains over 40 videos, for nearly three hours of discussion. It expects you to have already learned Node.js.

UDEMY: All about Node.js | From the Ground Up and More: This course takes you from the beginning, showing you how to build a Node.js application and deploy it to the cloud. The applications are:

ChatCAT: A multi-room chat application of a type which would be useful for Chat Servers, Gaming Servers, Collaborative Tools etc. You'll learn about Websockets, Structuring your App in an efficient manner, creating and using development & production configurations, Authentication using Facebook, Setting up an App on Facebook, Managing Sessions, Querying & Using a Hosted MongoDB Database, and more.

PhotoGRID: This app lets users upload images into a gallery with the ability to vote on images they like. Users upload images, they're resized into thumbnails, and stored in Amazon S3 buckets. You'll learn about managing file uploads using NodeJS & AJAX, Resizing Images on the Server, Accessing & Storing files in an S3 Bucket, Querying & Using a Hosted MongoDB Database, Using Amazon's Elastic IP Service & Cloudfront distribution.

The course has been expanded a couple times, and includes a section on ES-2015 features. You'll get a free eBook on ES-2015 features.

UDEMY: NodeJS in Action: This is another advanced course, showing how to integrate a broad range of technology to create a complete application stack. The technologies used in this course include:
  • Elasticsearch: Provides full text search mechanism to your application.
  • MongoDB: Store your data in to db, and make json queries to this document based database
  • PassportJS: You will also learn PassportJS to construct authentication system in your application. You will be able to restrict some endpoints by using internal PassportJS properties
  • ExpressJS: ExpressJS is for developing controllers, communicate this controllers with views, and provide some db interactions by using ORM frameworks like MongooseJS
  • IronCache: You can cache your data to IronCache (Cache as a service).
  • IronMQ: Message queue system.
  • SocketIO: Converting your application into realtime application
Felix's Node.js Guide - http://nodeguide.com/ - A terse on-line introduction to Node.js. The examples are just some bones, with no meat, of understanding required to be proficient with the Node platform.

Node Beginner - http://www.nodebeginner.org/ - a one-page website that shows the basic bones of a Node.js web application, and also serves as a sales pitch to buy a bundle of books.

TUTS+ Tutorials on Node.js - http://code.tutsplus.com/categories/nodejs

Ryan Dahl, the originator of Node.js, gave a very good video presentation of the principles and value - http://www.youtube.com/watch?v=jo_B4LTHi3I

Node.js requires an asynchronous coding model, and most programmers need to twist their head sideways to grok the best patterns. These blog posts help: http://blog.shinetech.com/2011/08/26/asynchronous-code-design-with-node-js/ and http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/

The Node.js standard library has very good documentation online - http://nodejs.org/api/index.html

The MEAN stack - MongoDB, Express, AngularJS and Node.js

Where PHP/Python/etc have the LAMP stack, the Node.js community developed the MEAN stack. That stands for: M=MongoDB as a document oriented NoSQL database, E=Express as the application framework that isn't a framework, A=AngularJS for the front end, and N=Node.js on the server. MongoDB, Express, AngularJS, Node.js === MEAN Stack. Cool technologies for agile programming.

MEAN Web Development: Use the MEAN stack to implement applications. Passport is used for authentication, and Mongoose is used on top of MongoDB.




UDEMY: Learn and Understand NodeJS: A comprehensive video course at Udemy, with over 11 hours of video covering the MEAN Stack. Topics covered include:
  • Node.js internals
  • Express app development
  • Node.js/npm modules, and npm usage
  • Asynchronous coding
  • Databases, especially MongoDB
  • A brief overview of AngularJS
Write Modern Web Apps with the MEAN Stack: Mongo, Express, AngularJS, and Node.js (Develop and Design): Complete cradle-to-finished-product development of applications using the MEAN stack. Covers how web application development is changing, how to install and use each of the tools, and finally walks through creating a complete applicaton.




Node.js, MongoDB, and AngularJS Web Development (Developer's Library): Node.js, MongoDB, and AngularJS are one of the triumvirate's of the modern programming toolsets. Node.js we've already talked about, MongoDB is a leading NoSQL document-oriented database, and AngularJS is a leading framework for MVC-based front-end application development. In other words, this book focuses squarely on web applications, using the most modern tools available.




More Advanced

Practical Node.js: Building Real-World Scalable Web Apps: This book assumes you have some familiarity with Node.js, and want to deepen your knowledge. It covers the Express.js and Hapi frameworks, the MongoDB database with Mongoskin and Mongoose, Jade and Handlebars template engines, Stylus and LESS CSS languages, OAuth and Everyauth libraries, and the Socket.IO and Derby libraries, and everything in between. It also covers real world deployment techniques for hosting providers like Heroku and AWS.




Node.js Recipes: A Problem-Solution Approach (Expert's Voice in Web Development): Written in a problem/solution cookbook format, this book shows you "recipes" to solve every-day problems in Node.js programming. It's a great reference for problems you run into, rather than an introductory book.




UDEMY: Build a REST API with node.js, ExpressJS, and MongoDB: This course focuses on helping you know how to build REST API's using Node.js. You will learn about the tools and understanding of building an API server, accessing and manipulating data via this API.

Topics include:

  • Over 19 lectures and 1.5 hours of content!
  • Build a REST API with node
  • Understand expressjs
  • Use a MongoDB Database
  • use this API for web or mobile development
Node Security: Where other books might skip over security vulnerabilities in Node.js applications, in the name of space, it's an important topic. It won't look good if your nifty application is the vector through which Russian hackers grab millions of names and credit card accounts, right? The book teaches you how to secure your Node applications by learning about each of the layers you will be building on top of. It assumes you already know Node.js.




Automate with Grunt: The Build Tool for JavaScript: Grunt is being used everywhere as the build tool for all kinds of applications. For example jQuery and Twitter's Bootstrap use Grunt to build code, run tests, etc. While Grunt comes from the Node.js world, many non-Node.js teams use it as their build tool. This book covers the full gamut of using Grunt from configuring the pre-existing tasks, to writing your own tasks.




Getting Started with Grunt: The JavaScript Task Runner: Grunt is the equivalent to "make" or "ant" for the Node.js platform, making it very important to understand its usage. The book first shows you how to install, configure, and run Grunt, then use 3rd party Grunt tools, and finally how to implement your own Grunt tasks fitting your needs. Along the way you experience an excellent walkthrough of the Node.js ecosystem.




UDEMY: GRUNT js: Automate web development tasks and save your time: Your time is valuable, and it's best to automate everything you can. Grunt is an excellent tool for that purpose, and this 2 hour video course will get you up and running with Grunt. This Grunt.js course is meant for people who are familiar with HTML, CSS and Javascript. No prior knowdlege about Grunt.js/Node.js/npm is needed. Everything is described from the beginning. The focus is on its use in website design/development work.