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

How To Learn

Toby Ho
October 19, 2015

How To Learn

Are you in the process of learning React? AngularJS? Node.js? Gulp? EcmaScript 6? ClojureScript? _Insert your tool, framework or programming language here_? Does the prospect of having to learn a "new way" of programming make you uncomfortable? 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?

In the software profession, learning is an integral part of our 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 teaching you any topic you can imagine, that still doesn't mean learning is easy. Groundbreaking technologies break ground by changing the way we think about problems. The bigger the mental shift required, the steeper the learning curve.

In this presentation, I will describe a few techniques that will allow you to both learn faster and get a firmer grasp of concepts - with which you will be able to transfer knowledge more easily to new problem domains. Taken together, these techniques give you a loose framework for learning any new complex piece of technology, whether it be a new framework, library, platform, or programming language - using resources you can readily find on the internet.

Toby Ho

October 19, 2015
Tweet

More Decks by Toby Ho

Other Decks in Programming

Transcript

  1. “How deep down the rabbit hole do I have to

    go? How do I know when I can move on? Answer:
  2. 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
  3. “I can’t get over the idea that the thing I

    am learning now will go out of date in just a few years.” Answer:
  4. 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
  5. • you start somewhere • the more you explore, the

    more you know • if you get stuck, you can explore elsewhere, but… • you can come back to it
  6. 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. 1. Write down 3-5 things that you are most anxious

    or uncomfortable. 2. For each item, ask yourself 1. If this were the only thing I accomplished today, would I be satisfied with my day? 2. Will moving this forward make all the other items unimportant or easier? The Tim Ferriss Method
  8. 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
  9. • touch typing • debugging / troubleshooting • source control

    • using the command line • asking questions online • object oriented programming • functional programming • refactoring • communication • task management
  10. • touch typing • debugging / troubleshooting • source control

    • using the command line • asking questions online • object oriented programming • functional programming • refactoring • communication • task management
  11. “ Experienced devs make just as many mistakes as juniors

    , they just recover from them faster. - Kylie Stradley https://www.youtube.com/watch?v=bSbla50tqZE
  12. 10%

  13. The Fail Something Rule If you make it through the

    whole tutorial/ lesson/course without failing something once, you fail.
  14. "The scientific method is a body of techniques for investigating

    phenomena, acquiring new knowledge, or correcting and integrating previous knowledge." - Wikipedia
  15. 1. Question (Why is the sky blue?) 2. Hypothesis (Maybe

    blue dye?) 3. Prediction (Fly a white cloth to the sky and it will turn blue) 4. Experiment (Actually do the above) 5. Analysis (What happened? Why?) 6. Repeat if necessary (Go back to 1) Scientific Method Recipe
  16. 1. Question (Why is the sky blue?)✔ 2. Hypothesis (Maybe

    blue dye?)✔ 3. Prediction (Fly a white cloth to the sky and it will turn blue)✔ 4. Experiment (Can’t be bothered)✘ 5. Self affirmation(Yeah, I am pretty smart)✔ What Humans Instinctually Do
  17. different explanations of the same concept Different blog posts, different

    books, different talks different tutorials, different video course lessons.
  18. ATL