Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Learn 2

Toby Ho
January 24, 2017

How to Learn 2

Are you in the process of learning React? AngularJS? Node.js? Gulp? EcmaScript 6? Elm? {Insert your tool, framework or programming language here}? Have you ever gone through a tutorial and still don't feel like you have a good grasp of the concepts? Do you think learning a new technology is a slow and painful process?

If you are in the software profession, learning is an integral part of your job. Frameworks, languages and tools come and go so fast that in five years you are likely going to be working with a different set of tools. Although there are countless blog posts, tutorials and courses on the internet to teach you any topic you can imagine, that still doesn't mean learning is easy. Toby Ho will present principles and techniques that will allow you to learn faster and better - with a firmer grasp of concepts, which better allows you to transfer knowledge to new problem domains.

Toby gave the first version of this talk two years ago at ConnectJS. Since then he became a full time programming teacher, and has learned a lot more about how people learn than he previously did. He will share the current state of his thoughts on this topic to teach others to learn effectively on their own.

Toby Ho

January 24, 2017
Tweet

More Decks by Toby Ho

Other Decks in Education

Transcript

  1. About Me • Toby Ho • Veteran software developer 14

    years • Blogger tobyho.com • Teacher at DigitalCrafts • Organizer of ATL.JS
  2. Why Learning to Code is Hard • No recipe •

    The TMI problem • Elitism in the community
  3. https://www.flickr.com/photos/dylanroscover/3450505729/ Backbone Marionette Ember.js AngularJS Knockout.js Vue React Flux Redux

    GraphQL React Native Relay NativeScript PhoneGap Ionic Famous Meteor Mocha Sass LESS Stylus CoffeeScript EcmaScript 6 TypeScript Om ClojureScript Elm jQuery D3 Browserify Webpack Underscore Lodash Require.js MongoDB CouchDB ElasticSearch PostgreSQL Testem Karma Grunt Gulp Brunch Broccoli Bootstrap Foundation Falcor Node.js Bower npm Express Hapi Sails Loopback Koa Sublime Text WebStorm Vim MEAN Polymer Shadow DOM
  4. How to Stay Motivated 1. The Big Picture 2. The

    Goldilocks Principle 3. The Growth Mindset
  5. Toby’s Career • Masters degrees at Georgia Tech 2003 •

    First job day 1: start learning Hibernate ORM • Second job day 1: start learning struts and servlets • Third job day 1: start learning J2EE and Weblogic • Fourth job day 1: start learning Turbogears and SQLAlchemy
  6. https://www.flickr.com/photos/dylanroscover/3450505729/ Backbone Marionette Ember.js AngularJS Knockout.js Vue React Flux Redux

    GraphQL React Native Relay NativeScript PhoneGap Ionic Famous Meteor Mocha Sass LESS Stylus CoffeeScript EcmaScript 6 TypeScript Om ClojureScript Elm jQuery D3 Browserify Webpack Underscore Lodash Require.js MongoDB CouchDB ElasticSearch PostgreSQL Testem Karma Grunt Gulp Brunch Broccoli Bootstrap Foundation Falcor Node.js Bower npm Express Hapi Sails Loopback Koa Sublime Text WebStorm Vim MEAN Polymer Shadow DOM
  7. The bottom stack gets deep • Functions: higher-order functions, closures,

    functional programming, pure functions, currying, function composition, functional reactive programming, functors, monads • Objects: classes, inheritance, object-oriented programming and design, design patterns(observer, factory, MVC, strategy…) SOLID principles
  8. flow The state in which people are so involved in

    an activity that nothing else seems to matter; the experience itself is so enjoyable that people will do it even at great cost, for the sheer sake of doing it.
  9. What people in flow say • “It was like floating”

    • “carried on by the flow” • “In the zone” • “one with the mountain” • “In the pocket” • “Time stands still” • “Time flies”
  10. When you are in flow • You are really focused.

    • You are really engaged. • You are really having fun! • You are learning at a rapid speed.
  11. Goldilocks Principle • Match the task to your current ability

    to maximize your enjoyment, motivation, and learning • If the task is too easy, make it harder • If the task is too hard, make it easier
  12. Strategies for making it harder • Don’t just read, do

    • If the tutorial provides a lot of hand-holding, remove the hand-holding • Redo the current exercise/project without any outside assistance or reference • Add an additional requirement to the exercise/project • Build it from scratch • Take on a more ambitious exercise/project
  13. Strategies for making it easier • Choose helpful tools •

    Break it up • 80/20 rule • Simple to complex
  14. Frameworks • React - more helpful • AngularJS 2 -

    more helpful • AngularJS 1 - less helpful • Ember.JS - less helpful
  15. Did you know: Each of these skills is orthogonal to

    each other. React Redux JSX Classes Arrow Functions Webpack
  16. 80/20 Rule Examples • “80% of your sales come from

    20% of your clients.” • “80% of Italy's land was owned by 20% of the population.” • “the richest 20% of the world's population controlling 82.7% of the world's income.”
  17. Toby’s suggested order • React + JSX - the ~20%

    that gets you to 80% • Add in ES6 classes - prevalent, and if you know classes from another language say Ruby, this is easy • Add in Redux - because everyone is all about Redux • Add in ES6 arrow functions - easy just syntax sugar • Add in Webpack - this set up gives you modules
  18. 3.

  19. Fixed mindset Growth mindset What if I fail? I love

    a challenge! I might look dumb. I was hoping this would be informative.
  20. Praise Template 1 “Wow, you got eight right. That’s a

    really good score. You must be smart at this.”
  21. Praise Template 1 “Wow, you got eight right. That’s a

    really good score. You must be smart at this.” Ability Praised Group
  22. Praise Template 2 “Wow, you got eight right. That’s a

    really good score. You must have worked really hard.”
  23. Praise Template 2 “Wow, you got eight right. That’s a

    really good score. You must have worked really hard.” Effort Praised Group
  24. When given a choice • Ability praised group chose to

    skip a new challenging problem • Effort praised group (90%) chose to work on the new challenging problem
  25. Enjoyment • Ability praised group: “It’s not fun anymore.” •

    Effort praised group: “The hard ones are the fun ones.”
  26. The Fixed Mindset • Failure is proof you are not

    smart • Choose easier paths assure themselves of their smartness • Avoid challenges • More likely to cheat or lie about their performance • Performance plateaus
  27. The Growth Mindset • Failure is an opportunity to learn

    and get smarter • Embrace challenges, persist longer • Not afraid to make mistakes • Performance continually improves over the long run
  28. Growth Mindset Classrooms • In one year, a kindergarten class

    in Harlem, NY scored in the 95th percentile on the national achievement test – many of those kids could not hold a pencil when they arrived at school. • In one year, 4th grade students in the South Bronx, way behind, became the #1 4th grade class in the state of NY on the state math test. • In a year to a year and a half, Native American students in a school on a reservation went from the bottom of their district to the top, and that district included affluent sections of Seattle. So the Native kids out did the Microsoft kids.”
  29. Summary How to Stay Motivated 1. The Big Picture 2.

    The Goldilocks Principle 3. The Growth Mindset
  30. Resources • How it Feels to Learn JavaScript in 2016

    - Hacker Noon • Why Learning to Code is so Damn Hard - Viking School • Programmers: Please don’t ever say this to beginners • The Power of Yet - Carol Dweck • Flow - The Psychology of Optimal Experience - Mihaly Csikszentmihalyi