Logo

Nodeschool @ IEM Kolkata

Workshop on JS & Web Tools

IEM Kolkata Nodeschool Chapter

Hosted by Koustuv Sinha along with Prof Ee Kian Wong

In association with Nodeschool

Institute of Engineering & Management, Kolkata / 31st Aug, 2015

Wifi Setup

Before starting this workshop, please connect to the following wifi :

SSID : **** / Password : **********

Proxy IP : ***.***.**.* / Port : ****

JavaScript

Whats that?

Script running in browser?

Code to Run webpages?

HTML CSS and something... ?

"World's most misunderstood language" - MDN

Full Stack Development Language

JavaScript is no longer a client side language

Works on server as well with Node.js

Used to build web servers and services

Immense applications!

Why learn JavaScript at all?

Trend?

Powerful functional language

Full Stack Development

Lots of jobs! (Startups & Big Companies)

Easy to learn, hard to master!

Sample JavaScript code


						"use strict"
// turns on JS strict mode to catch more errors

//sample function
function sampleFn() {
	var prompt = "Hello, " + name + "!";
	// Inner functions are put in the local scope by default, as if they were
	// declared with `var`.
	function inner(){
	    alert(prompt);
	}
	setTimeout(inner, 5000);
}

sampleFn();
					

What is Node.js?

JavaScript runtime (Chrome V8)

Can run JavaScript locally

Can develop server side code

Can develop desktop applications

Full blown package manager : npm

Sample Node.js code

Its just simple JavaScript!


						"use strict"
// turns on JS strict mode to catch more errors

// import other nodejs libraries
var asm = require('awesome-module')
var fs = require('fs')

//sample function
function sampleFn() {
	var prompt = "Hello, " + name + "!";
	function inner(){
	    asm(prompt);
	    // read from file system
	    fs.readFileSync('file.txt');
	}
	setTimeout(inner, 5000);
}

sampleFn();
					

Best resources to learn
(for free)

Eloquent JavaScript : Free book online

"JavaScript Garden" tutorial and notes

MDN : A re-introduction to JavaScript

How to Learn JS properly

JavaScript Koans

Essential JavaScript Links


And the list goes on and on ...

Installation Instructions!

Check internet connectivity is on.

Install Node.js from their website, download your respective installation binaries

If internet is not connecting, don't panic! Offline installation is available!

Grab the binaries, install

Also, get the Nodeschool Worshop packages, extract, and run within them :

npm link

Enough talk, lets code!

Open Terminal (Command Prompt.. sheesh!)

Make terminal fullscreen & Type ...

npm install -g javascripting

Run the workshopper module :

javascripting

Nodeschool Workshop Format

For any workshop, after you run the workshop (just type in the name), you will find the following interface :

screen1

Choose which module you want to attempt by arrow keys, and press enter!

You will find a detailed set of description on the terminal. For that, it helps to put your terminal or command prompt in full screen

Windows users, if you find it hard to view the instructions in the command prompt, you can also save them in a text file :

javascripting print > instructions.txt

For every challenge, you need to pass the tests. To run the test on your program file, type

javascripting run program.js

To verify and pass your program, run :

javascripting verify program.js

This format is valid for all Nodeschool workshops

Complete all challenges to be the Master!

Happy Workshopping!

Rejoice / Yell after completing every challenge!

If you are stuck, no shame, feel free to ask!

If you are done, help your peers!

Done already?

Have a Break!

After the break, lets learn the most essential tool for any developer : Git

Git : version control system

Created by Linus Torvalds (yes,creator of Linux)

Saves every version of the file(s)

Facilitates parallel development (in teams)

Social coding & Collaboration : Github

Navigate to your past! (oooh!)

Resources to learn

Pro Git

Try git online

Git Cheat Sheet

Resources to learn

Again, EOTLC (Enough of talk, Lets code!)

Hope internet is working.. :P

Install Git ; Ubuntu users as easy as :

apt-get install git

Make terminal fullscreen & Type ...

npm install -g git-it

Run the workshopper module :

git-it

Happy Workshopping!

Dont forget to rejoice / yell after completing every challenge! :D

Congrats!!!

You ROCK in JavaScript & Git!

If we have time, lets run some more awesome worshops!

Basics of Node.js

npm install -g learnyounode

Learn .pipes()

npm install -g stream-adventure

Learn NPM

npm install -g how-to-npm

Learn Scopes & Closures

npm install -g scope-chains-closures

Eat. Sleep. Code.

Code and Contribute in Open Source!

Some tips ...

Watch Github Trends

Read code!

Clone any project you like

Build it, run it locally and hack it

Got issues? create issues!

Code, and send Pull Requests!

Enhance your profile!

Run after jobs! Nah

Make jobs run after you!!
well not literally, :P

Create projects, be a dev-ninja

Know the Community!

Max Odgen

Max Ogden, JS Guru, Top Node.JS Developer

https://github.com/maxogden

Mathias Buus

Mathias Buus, Top JS Ninja, creator of Nodeschool

https://github.com/mafintosh

Paul Irish

Paul Irish, Lead Developer of Google Chrome, Google

https://github.com/paulirish

Addy Osmani

Addy Osmani, Top UI Developer of Google, creator of Yeoman

https://github.com/addyosmani

Pete Hunt

Pete Hunt, JS Developer & Speaker, Facebook

https://github.com/petehunt

Sindre Sorhus

Sindre Sorhus, Top JS Developer & creator of Awesome Lists

https://github.com/sindresorhus

Brian Ford

Brian Ford, AngularJS Developer, Google

https://github.com/btford

Feross
            Aboukhadijeh

Feross Aboukhadijeh, JS Developer & creator of Webtorrent, Feross/Standard

https://github.com/feross


Indians are catcing up!

Hemanth.HM

Hemanth.HM, Full Stack Developer, Cisco, India

https://github.com/hemanth

And many, many more...

And the stalwarts!

Brendan Eich

Brendan Eich, creator of JavaScript Language!!

https://github.com/BrendanEich

Douglas Crockford

Douglas Crockford, co-creator of JavaScript Language!!

https://github.com/douglascrockford

John Resig

John Resig, creator of Jquery Library

https://github.com/jeresig

And the LEGENDS!

Linus Torvalds

Linus Torvalds, creator of Linux Kernel & Git _/\_

https://github.com/torvalds

Richard Stallman

Richard Stallman, pioneer of Open Source Movement, Creator of GNU, gcc, Emacs _/\_ _/\_

https://stallman.org/index.html

Thanks!

Be in touch : Facebook, Github, LinkedIn

Email : [email protected]

Join IEM JS Developers Group Mailing List

Or whatever, join our very own irc channel #iemjsdevs and hang out!

Credits

Play with more workshops from NodeSchool

Slides created by reveal.js

Super thanks to Prof Ee Kian Wong for setting this up!


Okay.. Thanks to IEM Management to provide wifi! :P

https://github.com/nodeschool/iem-kolkata