# Preface

{% embed url="<https://www.youtube.com/watch?v=_l96hPlqzcI&list=PLYVl5EnzwqsQs0tBLO6ug6WbqAbrpVbNf>" %}
Watch the recording of when this training was initially performed in 2012.
{% endembed %}

## Introduction

[Node.js](http://nodejs.org/) is an exciting platform for building web applications in JavaScript. With its unique I/O model, it excels at the sort of scalable and real-time situations we are increasingly demanding of our servers. The ability to use JavaScript for both the client and server opens up many possibilities for code sharing, expertise reuse, and rapid development. The class is intended for anyone looking to explore the capabilities of the Node.js development platform.

At the end of the class, students will have gained a grasp on node's ecosystem and paradigms, be able to write node modules that they can publish and share, and will have experimented with writing realtime web applications.

### Level Pre-Requisites

* Can write basic JavaScript code (script tags, functions, variables, HTML manipulation)
* Can write HTML and CSS - Understands form submission (client and server relationship)

### Required class materials / software

* Bring a laptop (any operating system that has a command line and a web browser is fine - e.g. Mac OSX, Windows, and Ubuntu)
* Have your system's build dependencies installed, as well as git and node. Need help? [Guide here.](https://app.gitbook.com/node/install)
* Source code editor installed ([Atom](https://atom.io) is what I use)

## Presenter

[Benjamin Lupton](http://balupton.com/) is the founder of [Bevry](http://bevry.me), an open-company and community dedicated to empowering developers everywhere. He has worked in web development since 2005, and specialised in JavaScript since 2009. He has created over 200 open-source JavaScript projects, which have been used in some of the world's biggest web-sites/apps (Basecamp, Spotify, Ustream) and by some of the world's biggest companies (Microsoft, Adobe, GitHub, Atlassian).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.bevry.me/hands-on-with-node.js/preface.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
