Your SlideShare is downloading. ×
Learning to Learn [MakerSquare 3rd Cohort, 12/2/13]
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Learning to Learn [MakerSquare 3rd Cohort, 12/2/13]

457

Published on

Slides for my 12/2/13 talk at MakerSquare on effective learning strategies and workflows reflecting my experience as a front-end developer, aimed at other developers in particular.

Slides for my 12/2/13 talk at MakerSquare on effective learning strategies and workflows reflecting my experience as a front-end developer, aimed at other developers in particular.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
457
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Who I am:Front end developer at White Lion Interactive (we’re hiring!)Just a guyNot a neuroscientistOr any kind of scientist, reallyI didn’t go to school for computer scienceBut that should give you hope, since if I can do it then you can do itThe only thing that’s special about me is that I’m aggressively autodidactic (auto – self, didact – to teach)
  • But this wasn’t a very catchy title
  • Learning to learn?Perhaps a new concept: you probably some things in this talk already, or even a lot of things, but perhaps you haven’t thought about it in terms of learning about learning itselfSince you’re all here you probably believe in your ability to learn, but stillIf you’re interested in the idea of entity vs incremental theory, look up Carol Dweck’s Self-theories: Their Role in Motivation, Personality, and DevelopmentYou, the autodidact
  • Belief is a foundational step. If you don’t believe, at least, casually, that you can get smarter, or accelerate your learning process, then it just won’t happen.Like not believing you can run a marathon—if you don’t believe it, you’re certainly not going to try (or put in the effort to succeed)On the other hand, you can’t just believe it. You also need the proper learning tools and strategies to allow yourself to actually get the job done.You might believe you can run a marathon, but you won’t be able to do it if you just show up on marathon day without having put in the proper time and trainingLet’s assume you’ve got belief nailed down and move straight on to how to put in the work on learning to learn
  • The knowledge / wisdom dichotomyTonight we’ll be talking mostly about knowledge, as wisdom is something I can’t give you(hint: wisdom is accessible via the imagination)You can read about some more in this article, where I found the second one
  • There’s a lot of stuff to learn. A LOT. You can’tpossibly know it all (nor would you want to)Rough estimates here
  • This is my subjective experience, but if you were interested in pursuing front-end and really knowing everything about it, this is everything you could learn about. I don’t know everything on this list, and it would keep anyone’s life full just trying to stay on top of all of it.Most of these things are even massive generalizations of the amount of knowledge necessary to even scratch the surface of most of these things. Entire careers are based on a lot of these.
  • So we need to figure out a way to collect, consume, and retain knowledge. This is my system, and generally how I believe the process works. YMMV. One thing you’ll notice is TOOLS are our best friend.
  • Mention aggregators vs actual sites with content – sites with content good to go into feedly
  • Good sites should go into your RSS reader; aggregates can be funneled into your organizational/queuing tool
  • Demo Pocket
  • Know your tools inside out; using them will help your productivity.
  • Say you find something cool on the internet. It could be related, or completely unrelated—or it might be related and you just don’t know it’s related, or you think it’s related when it’s actually totally related. How do you figure out whether or not you need to know it?Ultimately, you want to get the biggest bang for your buck in terms of what you’re learning. It’s easy to get distracted—just remember what your goals are. You may occasionally need to reassess those, and that’s fine, too.
  • Like, how about some good open source dashboard analytics?Mentionquantified self?
  • Transcript

    • 1. Learning to Learn (For Developers) by @wayspurrchen
    • 2. or How to Believe in Yourself, Develop Effective Learning Strategies, Find, Categorize, and Prioritize Information, Develop Tool-Based Knowledge Pipelines, Google Effectively, and Ultimately Stay Sane in a Rapidly-Evolving Industry While Maintaining a Healthy Work-Life Balance (and a Bunch of Other Stuff)
    • 3. Learning to learn? • We can always learn how to do new things or do old things better—including the way we learn things • Believing in your ability to learn and get smarter actually makes you better at learning and retaining information (entity vs incremental theory (Self-theories: Their Role in Motivation, Personality, and Development by Carol Dweck)) • Making your learning strategies more effective is like cheat codes to the rest of your life • It’s learning all the way down
    • 4. Your reasons for learning • • • • • For the job you have For the next job you’ll have For your dream app For your dream startup For your dream automated house that has slippers and a martini ready for you when you walk in the door
    • 5. How do you learn to learn?
    • 6. Knowledge / Wisdom Dichotomy Knowledge is… …knowing you should probably look into those “promise” things …knowing that you shouldn’t edit on the live server via FTP …being able to say, “You really probably shouldn’t do that.” Wisdom is… …getting lost in callback hell callbacks to process a batch of asynchronous requests …editing on the live server then accidentally uploading an old version of the website …being able to say, “Seriously, do not do that.” http://www.smashingmagazine.com/2010/09/10/what-is-the-worst-design-orprogramming-mistake-you-ve-ever-made/
    • 7. How much knowledge there is on the Internet • • • • • • • The internet (allegedly) carries ~1,826 petabytes per day [citation needed] Netflix uses 1 PB to store all their movies 1PB = 1024TB 1PB = 1,048,576GB 1PB = 1,533,917 ~700mb movies 1PB = 268,435,456 ~4mb songs 1PB = 1,125,900,000,000,000 1byte characters of text Not all of it is useful. You don’t want to know all of it. How do you prioritize?
    • 8. What you (might) need to know as a (front-end) developer • • • • • • • • • CSS – cascade – inheritance – specification – box model – vendor-specific features X/HTML4/5 Some PHP Browser idiosyncrasies DOM structure General browser performance Networking Caching Some sort of version control system – The CLI/GUI to that VCS • • • • • Some sort of version control system – The CLI/GUI to that VCS Communication skills Professional representation (for clients) UX/UI/UE design knowledge JavaScript – MVC model – Prototypical inheritance – Aspect-oriented programming – A thousand and one(+) libraries • jQuery • AngularJS • Backbone • Modernizr… • • • • • • • • • • • • NodeJS Social media API integration DevTools familiarity Command line/*nix familiarity Testing Automation (grunt, minify, etc.) Documentation Code readability Team-based coding experience Error handling Your (or your company’s) preferred IDE a lot more…
    • 9. (My) Knowledge Workflow Step One Exposure/Seeking Step Two Organizing/Queuing Step Three Retaining/Remembering
    • 10. Knowledge Exposure/Seeking (for finding all that knowledge)
    • 11. Gather your knowledge Aggregators and learning resources • http://www.codecademy.com/ • http://www.coursera.org/ • http://www.feedly.com/ • http://www.khanacademy.org/ • http://ocw.mit.edu/ • http://www.stumbleupon.com/ • http://www.twitter.com/ • http://www.udemy.com/ Newsletters • http://html5weekly.com/ • http://javascriptweekly.com/ • http://nodeweekly.com/ • http://rubyweekly.com/ • http://reddit.com/ – http://www.reddit.com/r/browsers – http://www.reddit.com/r/coding – http://www.reddit.com/r/compsci – http://www.reddit.com/r/cscareerquestions – http://www.reddit.com/r/css – http://www.reddit.com/r/frontend (I run this one!) – http://www.reddit.com/r/html5 – http://www.reddit.com/r/javascript – http://www.reddit.com/r/learnprogramming – http://www.reddit.com/r/jquery – http://www.reddit.com/r/ruby – http://www.reddit.com/r/rails – http://www.reddit.com/r/programming – http://www.reddit.com/r/startups – http://www.reddit.com/r/userexperience – http://www.reddit.com/r/web_design – http://www.reddit.com/r/webdev Useful Sites (front-end) http://www.reddit.com/r/Frontend/wiki/index
    • 12. Knowledge Organizing/Queuing (for stuff you want to actually read later) Pocket is my favorite for this: http://getpocket.com/ (similar: Instapaper, Evernote Web Clipper)
    • 13. Knowledge Retaining/Remembering (for those “I’ve swear I’ve read this somewhere…” moments) And Kippt is my favorite for this: http://kippt.com/ Pocket tries to do Kippt’s job, but Kippt does it way better. (Similar: Evernote?)
    • 14. Know your tools • Know their ins and outs • Understand their strengths and weaknesses • Where possible, connect them (see IFTTT and similar apps) • Supplement your knowledge consumption pipeline with generative and tracking tools: Evernote, Bullet Journal
    • 15. Learn Smart, Learn Hard: Setting Goals and Priorities • Learning effectively also means learning what you need to learn. • What is YOUR ultimate goal? (Think back to your reasons for learning in the first place) • What do you need to know to fulfill your ultimate goal? • What do you not know that you need to know to fulfill your goal? • What can you guess that you need to know to fulfill your goal? • How many steps are in the way?
    • 16. Pyramid of Knowledge • What do you know? • Is it applicable to your goal? • Where on the pyramid can you put it? • What’s the next step (both directions)? • What’s probably in the middle? • What’s the hardest? • What’s the easiest? • Do you need to make a new, simpler pyramid? Awesome Slippers and Martini Robot House Basic programming skill (JavaScript? Ruby? C++? ..Brainfuck?)
    • 17. Pyramid of Knowledge More like: Awesome Slippers and Martini Robot House Basic programming skill (JavaScript? Ruby? C++? ..Brainfuck?) But that’s OK. If it were that easy, it wouldn’t be fun.
    • 18. Too much to learn, too little time: what first? The short answer: “foundational skills”. Similar to the bottom level of the pyramid (or the foundations of a house), foundational skills are what you build the rest of your skills on top of. These are skills that will give you either • A significant boost to the rest of your skills • Or improve your life for the rest of, or for a significant portion of your life Learning effectively is an example of a foundational skill. (These are those “cheat codes” I mentioned.)
    • 19. Foundational Skills Examples of foundational skills: • Your favorite language, inside and out, if you plan to work in that language for a long time • Programming paradigms and best practices • Negotiation and professional presentation • Empathy, listening, and communication skills • Effective learning • Mental and physical well-being (meditation, exercise, good nutrition, etc.) • Self-control and discipline Foundational skills are skills that learning now will have an effect on all of your future productivity or output.
    • 20. Knowledge Evaluation: How do I decide this is actually worth knowing? Ask “connecting” questions: • Is this immediately and obviously useful to me? • If not, could I use it for anything in the future? • Is it possible that this is useful in ways that I can’t currently perceive? • What would I have to learn to understand whether or not this is relevant and useful? • If I follow this down a rabbit hole, does it seem like this will actually get me what I need? • Is it worth my time to follow that rabbit hole or should I approach it a different way? • If this is actually completely irrelevant to what I’m trying to do, is it interesting enough that I want to learn about it anyway? • Should I discard this information or archive it? Remember—knowledge has YAGNI (You Aren’t Gonna Need It), too!
    • 21. Some tips on specific seeking (solving that really specific problem) • Google “stackoverflow <keyword>” everything first • Go broad before narrow • Develop Google fu--keep in mind the kind of the people who have come before you looking to solve the same problems (technical vs. non-technical wording) • Search for the “expert” resources: there’s almost always an exact name for the type of thing you’re looking to learn about
    • 22. Retaining and Relearning There’s also a DRY in knowledge—but it’s DO repeat yourself! • Multiple sources on the same topic often take different approaches and focus on different nuances • Feel like you know something pat? Re-read just in case and strengthen your neural network
    • 23. Learn by Teaching “If you can't explain it simply, you don't understand it well enough.” - Albert Einstein aka “The Mom Test” • If you can describe Twitter’s RESTful API to your (assumedly non-technical) mom, then you probably understand how it works • If she still doesn’t get it, it’s good practice for dealing with non-technical clients, upper management, etc. • Programmers who can explain things quickly and concisely to non-programmers are very valuable
    • 24. Seriously, Know Your Tools! aka the “ARE YOU A WIZARD” Test If you can make your friends say that, you pass the test (bonus points if you impress coworkers). If you use tools often, learn their capacities and limitations, including their keyboard shortcuts.
    • 25. And always keep an eye out for better, more efficient tools.
    • 26. Don’t forget: learning is doing. Ultimately, you can read as much as you want but you’ll never really learn unless you do the work. With that in mind: • Do the work • Commit to completion (and version control!) • It’s OK to not finish something (so long as you figure out why you didn’t finish it) • Break things and embrace mistakes (just not on the live server) • Don’t hurt yourself—it’s a marathon, not a race
    • 27. Thanks! http://twitter.com/wayspurrchen wayspurrchen@gmail.com http://wlion.com/

    ×