Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gmac/backboneconf-learning


https://github.com/gmac/backboneconf-learning

Last synced: 29 days ago
JSON representation

Awesome Lists containing this project

README

        

To run presentation:

```
gem install middleman
bundle install
bundle exec middleman
```

# Learning

- Hello
- Vox Media / GA / Epoxy
- Thank you Bocoup; also Peter Lai, and Travis Vander Hoop

# Backbone @ Vox

- Explainer Cards: about 25% of Vox.com traffic.
- Case study in how simple behavior can enhance storytelling.

# LEARNING

- A series of simple truths the we already know.

## Learning is Hard

- Antaginist in the story of learning is the Cycle of Change.
- Sine wave of peaks and valleys representing our successes and struggles.
- What is YOUR peak?
- What struggles do you avoid?

## Growth Mindset

- Learning starts with our attitude toward it.
- See TED Talk by Eduardo Briceno (https://www.youtube.com/watch?v=pN34FNbOKXc).

## Mindsets

- **Fixed Mindset**: engrained level of ability.
- "If winning makes us winners, then losing must make us losers."

- **Growth Mindset**: intelligence is malleable. We grow our own potential.
- "I don't know, YET."

## Yes, Let's!

- We've made a game of this in our classroom.
- Simple strategy for embracing challenge, and setting ongoing short-term goals.

## Mentorship

- From interview panels and hiring officers:
*"What will this individual cost us?"*

Powerful feedback loop...

- **Seniors** distill their own knowledge into new conclusions. They teach themselves.
- **Juniors** are fearless in conquering new material. They shift the team foundation.

# Learning JavaScript

## Why is it so hard?
- For such a small language, why is there a disproportionate level of anger and misery associated?
- Thank you, Angus Croll for explanation.
- JavaScript is TWO languages:
- The simple familiar (tip).
- The abyssal powerhouse (depths).

## Understanding

- My best answer to the challenge of JavaScript:
- When we can't rely on the "familiar" parts, we feel unprepared for the advanced material.

## Core JavaScript

- The solution: embrace more of the language as "core" knowledge.
- Demystifies many library-level programming patterns.

Aspirational Core learning points:

- **First-Class Functions**: functions as objects.
- **Closure & Scope**: who knows what, where.
- **Contextual Invocation**: the meaning of "this".
- **Prototypal Inheritance**: method sharing.

## Require(*);

- NodeJS has made JavaScript an institution.
- The only truly full-stack language.
- However, this is still a microcosm within software development.

## Foreign Language:

- Distilled research from the ACTFL...
- Does this seem relevant to software engineers?
- BONUS: it also forestalls degenerative diseases of the brain!

So:

- Who feels they are a better programmer for knowing multiple languages?
- Valuable lesson to the new generation who can choose to use only JavaScript.

# Learning Backbone

## So, Uh... What do I do with it?

- Common question, even from skilled technicians.
- Docs are functional, not conceptual.

## The Simple Lessons of Backbone

- Deconstructed down into basic concepts.

## Backend / Frontend

- Something of a religious debate.
- BE is fundamentally simpler than FE.
- BE is more streamlined, with more common solutions to finite problems.
- In 2015, FE does not exist on its own.

## Model / View Separation

- The Backbone visual-quickstart guide.
- MV*? ... here it is.
- THE simple lesson of Backbone.

## M/V is Freeform

- Views share models!
- Makes complex view updates quite easy.

## Collection / Model

- How do these work together?
- Their behaviors map directly to REST services.

## API / Modeling

- API data doesn't always match model directly.
- Use "parse" to reconcile differences.
- We want to avoid convoluted models.

## Routers

- There are no simple lessons.
- While you can teach models & views in a couple days, routers take weeks of repeated practice.
- Thanks James!

# Learning the Future

## A Retrospective

- This is NOT about obesity, but about maps.
- This is my story, and I'm sure most of you have something similar (or will soon)...
- HTML image maps.
- Macromedia Director.
- Flash.
- D3 / TopoJSON.
- While tools and data formats have changed, we're still doing the EXACT SAME THING.

## Design Patterns

- There's a famous book about this...
- This quote is 15 years post-"Software Design Patterns".
- The book's original influences can still be seen today.

SO:

- **As technology evolves, we remember software not for it's code, but for its design.**

## Backbone in 2025

- What will we remember, and/or what will still apply?
- Design will stand the test of time, code will not.

## Start Over

- Conway's Game of Life.
- Cited among the most valuable days of class.
- Pair up, code for 1 hour, then start over.
- Letting go.
- Breaking the cycle.
- Starting over.

SO:

- That's not to say that we should start over without cause...
- **But when the time comes for the change:**

## Yes, Let's.