Skip to content

JavaScript NodeJS Course

enki-hq edited this page Jun 9, 2020 · 8 revisions

NodeJS Course Overview

Table of Contents

Content

Below you can find the ordered content of the topic, in a linear progression

The linear progression of content aims to cover all content, course by course, workout by workout as follows:

  • first course is the only core one, denoted by its manifest
  • the next course is denoted by the first item of the next array in each course manifest
  • each course has its order of workouts designated by the sections field in the same aforementioned manifest

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-nodejs 👶 introduction node-developer-environment.0: 10
2 installing-node-js 👶 introduction node-developer-environment.0: 10
3 the-repl-terminal 👶 introduction node-developer-environment.5: 10
4 executing-programs-with-node 👶 introduction node-developer-environment.5: 10
5 npm-nodes-package-manager 👶 introduction node-developer-environment.2: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 synchronous-file-write-read-in-node-js 👶 introduction
💪 workout
node-standard-library-os.0: 10
2 asynchronous-file-write-read-in-node-js 👶 introduction
💪 workout
node-standard-library-os.0: 10
3 async-file-write-in-node-js 👶 introduction
💪 workout
node-standard-library-os.0: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

3. events

Insights:

no name content aspects standards PQ RQ Quiz done
1 consuming-events 👶 introduction
💪 workout
events-asynchronous-operations.0: 10
events-asynchronous-operations.1: 10
2 listening-to-events-just-once 👶 introduction
💪 workout
3 synchronous-event-delivery 👶 introduction
💪 workout
events-asynchronous-operations.1: 20
4 passing-arguments-to-listeners 👶 introduction
💪 workout
events-asynchronous-operations.2: 20
5 handling-event-errors 👶 introduction
💪 workout
events-asynchronous-operations.1: 20
identify-common-design-patterns.5: 20

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 the-http-module-for-servers 👶 introduction
💪 workout
node-standard-library-os.2: 10
2 http-server-in-node 👶 introduction
💪 workout
3 basic-web-server-with-express 👶 introduction
💪 workout
express-server.0: 10
express-server.1: 10
4 custom-node-repl-server 💪 workout express-server.0: 10
express-server.1: 10
use-modules.3: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-are-node-modules 👶 introduction
💪 workout
use-modules.0: 10
node-developer-environment.2: 10
2 requiring-and-exporting 👶 introduction
💪 workout
use-modules.0: 20
use-modules.1: 20
3 local-modules 👶 introduction
💪 workout
4 exports-vs-module-exports-in-node 👶 introduction
💪 workout
use-modules.0: 10
use-modules.1: 10
5 module-patterns 👶 introduction
💪 workout
use-modules.1: 20
identify-common-design-patterns.6: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-are-streams 👶 introduction
💪 workout
read-and-write-streams.0: 20
node-standard-library-os.0: 20
events-asynchronous-operations.1: 20
2 readable-streams 👶 introduction
💪 workout
🦑 deep
3 piping-readable-streams 👶 introduction
💪 workout
🦑 deep
4 chaining-readable-streams 👶 introduction
💪 workout
🦑 deep
read-and-write-streams.0: 20
node-standard-library-os.0: 20
events-asynchronous-operations.1: 20
5 writable-streams 👶 introduction
💪 workout
🦑 deep
read-and-write-streams.1: 20
node-standard-library-os.0: 20
events-asynchronous-operations.1: 20

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 try-catch-only-for-sync-code 👶 introduction
💪 workout
identify-common-design-patterns.3: 10
2 first-error-callbacks-in-node 👶 introduction
💪 workout
identify-common-design-patterns.5: 10
3 wrapping-errors-in-node-js-using-node-verror 👶 introduction
💪 workout
4 handle-json-parse-error-in-node-js 👶 introduction
💪 workout
identify-common-design-patterns.3: 10
5 uncaughtexception-listener-in-node-js 👶 introduction
💪 workout
identify-common-design-patterns.5: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 operational-vs-programmer-errors 👶 introduction identify-common-design-patterns.8: 10
2 handling-operational-errors 👶 introduction
💪 workout
identify-common-design-patterns.8: 10
identify-common-design-patterns.6: 10
3 handling-programmer-errors 👶 introduction
💪 workout
identify-common-design-patterns.4: 10
identify-common-design-patterns.5: 10
identify-common-design-patterns.6: 10
identify-common-design-patterns.8: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 styling-brackets-1 👶 introduction identify-common-design-patterns.7: 10
2 styling-brackets-2 👶 introduction identify-common-design-patterns.7: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

10. express

Insights:

no name content aspects standards PQ RQ Quiz done
1 easy-way-to-deliver-html-pages-with-express 👶 introduction
2 response-object-additional-properties-in-express 👶 introduction express-server.1: 10
express-server.7: 10
express-server.8: 10
3 body-parser-in-express 👶 introduction express-server.4: 10
4 error-handler-in-express 👶 introduction express-server.1: 10
express-server.9: 10
5 using-express-4-0-router 👶 introduction express-server.1: 10
express-server.2: 10
express-server.4: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 session-handling-in-express 👶 introduction express-server.4: 10
http-request-response.12: 10
2 cookie-session-in-express 👶 introduction express-server.1: 10
express-server.4: 10
http-request-response.12: 10
3 gzip-compression-for-express 👶 introduction express-server.4: 10
4 log-with-morgan-in-express 👶 introduction express-server.4: 10
5 vhost-in-express 👶 introduction
🦑 deep
express-server.4: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 split-your-project-into-components 👶 introduction
✨ new
🦑 deep
identify-common-design-patterns.6: 10
2 wrap-common-utilities-in-modules 👶 introduction npm-publish.0: 10
identify-common-design-patterns.6: 10
3 use-vulnerability-checking-tools 👶 introduction
✨ new
🦑 deep
use-open-source-javascript-packages.2: 10
use-open-source-javascript-packages.12: 10
4 process-env-performance 🦑 deep
🔮 obscura
node-standard-library-os.6: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 factories-design-pattern 💪 workout
🦑 deep
identify-common-design-patterns.0: 20
use-modules.0: 20
2 middleware-pipeline-design-pattern 💪 workout identify-common-design-patterns.1: 20
3 process-nexttick-callback-pattern 💪 workout
🦑 deep
🔮 obscura
events-asynchronous-operations.2: 10
async.1: 10
4 use-conventional-property-names-for-error-handling-in-node-js 👶 introduction
💪 workout
🦑 deep
identify-common-design-patterns.2: 10
5 global-objects-and-environment-variables-in-node 👶 introduction
💪 workout
identify-common-design-patterns.2: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

14. tools

Insights:

no name content aspects standards PQ RQ Quiz done
1 automatic-compilation-for-node-with-nodemon 👶 introduction node-developer-environment.5: 20
use-modules.2: 20
2 how-to-debug-node-js 👶 introduction
💪 workout
🦑 deep
node-developer-environment.5: 20
use-modules.2: 20
3 the-built-in-node-debugger 👶 introduction
💪 workout
🦑 deep
node-developer-environment.5: 20
4 bulk-write-in-node-with-cork 👶 introduction
💪 workout
node-standard-library-os.0: 20
read-and-write-streams.1: 20

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

15. quirks

Insights:

no name content aspects standards PQ RQ Quiz done
1 node-and-sudo 👶 introduction
💪 workout
🔮 obscura
🦑 deep
node-standard-library-os.5: 20
2 avoid-command-injection 💪 workout
🦑 deep
🔮 obscura
node-standard-library-os.5: 20
3 node-os-module 👶 introduction
💪 workout
node-standard-library-os.6: 20

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 manage-child-processes-in-node 💪 workout
🦑 deep
2 clustering 💪 workout
🦑 deep
node-standard-library-os.5: 20
3 the-worker-class 💪 workout
🦑 deep
node-standard-library-os.5: 20
4 master-processes-and-worker-processes 💪 workout
🦑 deep
node-standard-library-os.5: 20
5 master-and-worker-process-communication 💪 workout
🦑 deep
node-standard-library-os.5: 20

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Standards

✅ - At least one insight covers this

❌ - Nothing covers this

🛠️ - This standard has no objectives yet

❌ Set up and use a Node developer environment

  1. ✅ Install Node.js on your system
  2. ❌ Manage versions of Node.js with a version manager
  3. ✅ Install a package manager for Node.js
  4. ❌ Install a debugger for Node.js
  5. ❌ Install build tools for Node.js
  6. ✅ Use the node interpreter to execute JavaScript

❌ Use events to manage asynchronous operations

  1. ✅ Create an EventEmitter
  2. ✅ Listen for events on an EventEmitter
  3. ✅ Emit events on an EventEmitter
  4. ❌ Emit events in response to input to the process

✅ Use modules to add functionality to your code

  1. ✅ Create a module from a single file with exported functions to reuse code
  2. ✅ Import a module into another file from somewhere else in your project
  3. ✅ Import a module from the npm registry
  4. ✅ Import a module from git

❌ Read and Write Streams

  1. ✅ Use pipe to read from a streaming interface
  2. ✅ Use write to write to a stream
  3. ❌ Use pause and resume effectively to pause and resume streams
  4. ❌ Use stream events to robustly handle a stream's states

✅ Identify and use common design patterns

  1. ✅ Identify and use the factory module design pattern
  2. ✅ Identify and use the middleware pipeline design pattern
  3. ✅ Use conventional property names for common objects
  4. ✅ Use industry conventions to handle synchronous exceptions
  5. ✅ Use industry conventions to handle type errors
  6. ✅ Use industry conventions to catch asynchronous errors
  7. ✅ Identify and use the revealing module pattern
  8. ✅ Use a linter with JavaScript
  9. ✅ Distinguish between operational and programmer error

❌ Use the standard library to interact with your operating system

  1. ✅ Use the standard library to interact with the file system
  2. ❌ Use the standard library to issue network requests and listen for responses
  3. ✅ Use the standard library to listen for network requests and issue responses
  4. ❌ Use the standard library to interact with device ports
  5. ❌ Use the standard library to encrypt and decrypt data
  6. ✅ Use the standard library to manage child processes
  7. ✅ Use the standard library to monitor the running process

❌ Use express to create a web server

  1. ✅ Create an express app, bound to a port
  2. ✅ Use an express app to respond to HTTP requests
  3. ✅ Use the express Router to organize route handlers
  4. ❌ Use the express Router & Request object to receive parameters from the URL
  5. ✅ Use middleware with express to parse requests or preprocess responses
  6. ❌ Use parameters from the Request in a route handler
  7. ❌ Use middleware to log incoming requests and outgoing responses
  8. ✅ Use the Response object API to send a properly formatted HTTP response (status code, headers, etc)
  9. ✅ Use a server-side rendering package to render HTML containing data from the server
  10. ✅ Catch server and request errors and properly respond to the request with information about the error

Aspects

Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.

These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.

For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration

👶 Introduction

If you are being introduced to the topic for the first time

Insights:

  1. what-is-nodejs
  2. installing-node-js
  3. the-repl-terminal
  4. executing-programs-with-node
  5. npm-nodes-package-manager
  6. synchronous-file-write-read-in-node-js
  7. asynchronous-file-write-read-in-node-js
  8. async-file-write-in-node-js
  9. consuming-events
  10. listening-to-events-just-once
  11. synchronous-event-delivery
  12. passing-arguments-to-listeners
  13. handling-event-errors
  14. the-http-module-for-servers
  15. http-server-in-node
  16. basic-web-server-with-express
  17. what-are-node-modules
  18. requiring-and-exporting
  19. local-modules
  20. exports-vs-module-exports-in-node
  21. module-patterns
  22. what-are-streams
  23. readable-streams
  24. piping-readable-streams
  25. chaining-readable-streams
  26. writable-streams
  27. try-catch-only-for-sync-code
  28. first-error-callbacks-in-node
  29. wrapping-errors-in-node-js-using-node-verror
  30. handle-json-parse-error-in-node-js
  31. uncaughtexception-listener-in-node-js
  32. operational-vs-programmer-errors
  33. handling-operational-errors
  34. handling-programmer-errors
  35. styling-brackets-1
  36. styling-brackets-2
  37. easy-way-to-deliver-html-pages-with-express
  38. response-object-additional-properties-in-express
  39. body-parser-in-express
  40. error-handler-in-express
  41. using-express-4-0-router
  42. session-handling-in-express
  43. cookie-session-in-express
  44. gzip-compression-for-express
  45. log-with-morgan-in-express
  46. vhost-in-express
  47. split-your-project-into-components
  48. wrap-common-utilities-in-modules
  49. use-vulnerability-checking-tools
  50. use-conventional-property-names-for-error-handling-in-node-js
  51. global-objects-and-environment-variables-in-node
  52. automatic-compilation-for-node-with-nodemon
  53. how-to-debug-node-js
  54. the-built-in-node-debugger
  55. bulk-write-in-node-with-cork
  56. node-and-sudo
  57. node-os-module

⚠️ There are no exercises tagged with this aspect in node. :warning: There are no games tagged with this aspect in node.

💪 Workout

Theory put into practice/that’s how you achieve X points

Insights:

  1. synchronous-file-write-read-in-node-js
  2. asynchronous-file-write-read-in-node-js
  3. async-file-write-in-node-js
  4. consuming-events
  5. listening-to-events-just-once
  6. synchronous-event-delivery
  7. passing-arguments-to-listeners
  8. handling-event-errors
  9. the-http-module-for-servers
  10. http-server-in-node
  11. basic-web-server-with-express
  12. custom-node-repl-server
  13. what-are-node-modules
  14. requiring-and-exporting
  15. local-modules
  16. exports-vs-module-exports-in-node
  17. module-patterns
  18. what-are-streams
  19. readable-streams
  20. piping-readable-streams
  21. chaining-readable-streams
  22. writable-streams
  23. try-catch-only-for-sync-code
  24. first-error-callbacks-in-node
  25. wrapping-errors-in-node-js-using-node-verror
  26. handle-json-parse-error-in-node-js
  27. uncaughtexception-listener-in-node-js
  28. handling-operational-errors
  29. handling-programmer-errors
  30. factories-design-pattern
  31. middleware-pipeline-design-pattern
  32. process-nexttick-callback-pattern
  33. use-conventional-property-names-for-error-handling-in-node-js
  34. global-objects-and-environment-variables-in-node
  35. how-to-debug-node-js
  36. the-built-in-node-debugger
  37. bulk-write-in-node-with-cork
  38. node-and-sudo
  39. avoid-command-injection
  40. node-os-module
  41. manage-child-processes-in-node
  42. clustering
  43. the-worker-class
  44. master-processes-and-worker-processes
  45. master-and-worker-process-communication

⚠️ There are no exercises tagged with this aspect in node. :warning: There are no games tagged with this aspect in node.

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. readable-streams
  2. piping-readable-streams
  3. chaining-readable-streams
  4. writable-streams
  5. vhost-in-express
  6. split-your-project-into-components
  7. use-vulnerability-checking-tools
  8. process-env-performance
  9. factories-design-pattern
  10. process-nexttick-callback-pattern
  11. use-conventional-property-names-for-error-handling-in-node-js
  12. how-to-debug-node-js
  13. the-built-in-node-debugger
  14. node-and-sudo
  15. avoid-command-injection
  16. manage-child-processes-in-node
  17. clustering
  18. the-worker-class
  19. master-processes-and-worker-processes
  20. master-and-worker-process-communication

⚠️ There are no exercises tagged with this aspect in node. :warning: There are no games tagged with this aspect in node.

✨ New

Recently added/gained traction feature

Insights:

  1. split-your-project-into-components
  2. use-vulnerability-checking-tools

⚠️ There are no exercises tagged with this aspect in node. :warning: There are no games tagged with this aspect in node.

🔮 Obscura

Stories, obscure details that don’t specifically relate to a learning objective

Insights:

  1. process-env-performance
  2. process-nexttick-callback-pattern
  3. node-and-sudo
  4. avoid-command-injection

⚠️ There are no exercises tagged with this aspect in node. :warning: There are no games tagged with this aspect in node.

✅ All content has been tagged with aspects.

Clone this wiki locally