Javascript, the BIG Todo

- - posted in 10000 Hours, Flatiron School

We’re now into week 8 at the Flatiron School and for the last couple of days we were thrown head-first into Javascript. This is my ‘Cliff Note’ version of what we covered and my guide for continuing study over the coming weeks and months. Might be a helpful guide for others as well?

A Few Good Block Posts on Learning Javascript From People Who Know

How to Learn Javascript Properly A Baseline for Front-End Developers …I think we’re seeing the emphasis shift from valuing trivia to valuing tools.

On-line Basic Tutorials

Code School Javascript Path Codecademy Javascript Track

What to Start With? (Advice From a Guest Speaker)

  1. Javascript basics
  2. jQuery (DOM manipulation)
  3. Underscore (How to think about using objects in the browser)
  4. Frameworks: Ember/Backbone

When to use jQuery vs. core Javascript: Use JQuery is for interacting with the DOM. Use core javascript for declaring variables, etc.

The Resource of Choice (“The fine manual”)

Mozillia Developer Network Alas, there is no manual for front-end development, but this comes pretty close. Good front-end devs know to prefix any search engine query with mdn – for example, mdn javascript arrays – in order to avoid the for-profit plague that is w3schools.

Presentation by Paul Irish: Javascript Workflow

Tips for Text Editor Tools: Live Linting, Live Recompilation, Live Reloading Dependency Management Systems In Browser Dev Tools Source URLs Source Maps Navigating Scripts

Templating Tools

Template Chooser

Frameworks

Backbone.js Ember Angular

Lots of talk about which to use…

More Advanced Javascript Tools

Bower is a package manager for the web. It offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack.

Bower is dependent on Node. Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. We can also Manage Rails Assets with Bower

JSHint is a tool that helps to detect errors and potential problems in your JavaScript code. The goal of this project is to help JavaScript developers write complex programs without worrying about typos and language gotchas.

RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.

Underscore JS is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. “It’s the tie to go along with jQuery’s tux, and Backbone.js’s suspenders.” (ha, cute.)

Underscore provides 80-odd functions that support both the usual functional suspects:map, select, invoke — as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on. It delegates to built-in functions, if present, so modern browsers will use the native implementations of forEach, map, reduce, filter, every, some and indexOf.

jQuery’s On + SWIG Templates The on() method attaches one or more event handlers for the selected elements and child elements. SWIG is simple, powerful, and extendable JavaScript Template Engine.