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

How to Learn 2

A333869fa8934ab32efb4e78e7c1dff1?s=47 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.

A333869fa8934ab32efb4e78e7c1dff1?s=128

Toby Ho

January 24, 2017
Tweet

More Decks by Toby Ho

Other Decks in Education

Transcript

  1. How to Learn 2

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

    years • Blogger tobyho.com • Teacher at DigitalCrafts • Organizer of ATL.JS
  3. ConnectJS 2015 https://www.youtube.com/watch?v=2HcbjChlKjM

  4. 2016 I became a fulltime teacher.

  5. This Talk is for • Teachers • Mentors • Students

    • Learners
  6. Learning to Code is Hard

  7. Why Learning to Code is Hard • No recipe •

    The TMI problem • Elitism in the community
  8. Programming vs Cooking

  9. 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
  10. None
  11. The TMI Problem

  12. None
  13. None
  14. None
  15. Motivation is Everything Motivation is Everything

  16. How to Stay Motivated 1. The Big Picture 2. The

    Goldilocks Principle 3. The Growth Mindset
  17. 1. The Big Picture

  18. None
  19. None
  20. 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
  21. 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
  22. What should I focus on?

  23. Technology Pyramid

  24. None
  25. None
  26. None
  27. None
  28. None
  29. None
  30. Just because you are not using a AngularJS tomorrow doesn’t

    mean it was a waste to learn it
  31. 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
  32. 2. The Goldilocks Principle

  33. None
  34. The Experience Sampling Method

  35. 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.
  36. 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”
  37. 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.
  38. Conditions for Flow • Undistracted • Clear goals and feedback

    • Task should match your current skill
  39. The Flow Channel

  40. Not too hot, not too cold

  41. 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
  42. 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
  43. Strategies for making it easier • Choose helpful tools •

    Break it up • 80/20 rule • Simple to complex
  44. Choose Helpful Tools Strategies for making it easier

  45. Helpful Errors

  46. None
  47. None
  48. Programming Languages

  49. JavaScript is a horrendous first programming language. Try Python.

  50. Frameworks • React - more helpful • AngularJS 2 -

    more helpful • AngularJS 1 - less helpful • Ember.JS - less helpful
  51. </choose_helpful_tools>

  52. Break it up Strategies for making it easier

  53. None
  54. None
  55. None
  56. None
  57. None
  58. None
  59. None
  60. None
  61. None
  62. None
  63. None
  64. None
  65. None
  66. None
  67. None
  68. None
  69. None
  70. None
  71. None
  72. None
  73. None
  74. None
  75. None
  76. None
  77. None
  78. None
  79. None
  80. None
  81. None
  82. None
  83. None
  84. None
  85. None
  86. None
  87. None
  88. Did you know? Working Memory can only hold up to

    ~7 things
  89. Learn piecemeal Solution: Don’t eat the whole thing at once

  90. None
  91. Kevin Wang - founder of Launch School

  92. None
  93. None
  94. None
  95. None
  96. None
  97. None
  98. Snowball effect?

  99. Did you know: Each of these skills is orthogonal to

    each other. React Redux JSX Classes Arrow Functions Webpack
  100. </break_it_up>

  101. Prioritization

  102. Which to learn first?

  103. 80/20 Rule a.k.a the Pareto principle a.k.a the law of

    the vital few
  104. 80/20 Rule for many things, roughly 80% of the effects

    come from 20% of the causes.
  105. 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.”
  106. Which 20%? React Redux JSX Classes Arrow Functions Webpack

  107. 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
  108. React / Redux Quickstart • https://gist.github.com/airportyh/ f0547b7c9fb41f6a0845b686b26d4ccc • https://gist.github.com/airportyh/ 382aab8753ad81a05b3517e8a3462530

  109. </80_20_rule>

  110. Simple to Complex Strategies for making it easier

  111. When breaking it down doesn’t work

  112. Start with a hello world!

  113. None
  114. None
  115. Hello world with Redux

  116. Hello world with Redux

  117. None
  118. Once you have the smallest example of a whole app…

  119. …make a more complex whole app.

  120. </simple_to_complex>

  121. </goldilocks_principle>

  122. 3.

  123. The Power of Yet Carol Dweck

  124. None
  125. How do you react when met with a challenge?

  126. What if I fail? I might look dumb.

  127. I love a challenge! I was hoping I would learn

    something!
  128. Fixed mindset Growth mindset What if I fail? I love

    a challenge! I might look dumb. I was hoping this would be informative.
  129. Fixed mindset: the belief that your intelligence and abilities are

    fixed.
  130. Growth mindset: the belief that your intelligence and abilities increase

    with effort.
  131. The Praise Study

  132. None
  133. Praise Template 1 “Wow, you got eight right. That’s a

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

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

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

    really good score. You must have worked really hard.” Effort Praised Group
  137. 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
  138. Enjoyment • Ability praised group: “It’s not fun anymore.” •

    Effort praised group: “The hard ones are the fun ones.”
  139. Performance • Ability praised group performance plummeted • Effort praised

    group performance improved
  140. Self Report • Ability Praised Group: lied to boost their

    scores
  141. 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
  142. 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
  143. Mindset can be changed

  144. 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.”
  145. Debugging Mindset

  146. </growth_mindset>

  147. Summary How to Stay Motivated 1. The Big Picture 2.

    The Goldilocks Principle 3. The Growth Mindset
  148. 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