September 20, 2014

How to Learn

Lessons learned about learning

  knowledgable_and_productive = false

  learn = [
    "pick a development track",
    "learn how to learn",
    "listen to smart people",
    "use interactive resources",
    "read books",
    "read code", 
    "write code", 
    "ship code",
    "teach"
  ]

  until knowledgable_and_productive
    learn[2..-1].each do |practice|
      practice
    end
  end

###Pick a Development Track

learn[0] # => Pick a development track

My areas of interest are Ruby, Rails, Git/Hub, Heroku & AWS, Markdown, JavaScript, and UNIX based development and production environments.

###Learn How to Learn

learn[1] # => Learn how to Learn

The podcast Ruby Rogues Episode 131 “How to Learn” is amazing. Its worth a listen even if you are not into Ruby.

###Listen to Smart People

learn[2] # => Listen to smart people
  • Go to meetups
  • Follow smart people on Twitter. You might want to try @kytrinyx and @sandimetz
  • Follow smart people on GitHub and read their blogs and fork their repositories. I am a fan of Matt Swanson. My site is based on his template Lagom.
  • Subscribe to some podcasts. I like Ruby Rogues.

###Use Interactive Resources

learn[3] # => Use interactive resources

My two favorite flavors are Browser Based Learning and Test Driven Development Learning.

  • Browser Based Learning requires no client configuration. Client configuration is newbie kryptonite.

  • TDD Learning secretly teaches you how to write tests while you are learning a new software concept.

Browser Based Learning Picks

  • Code School

  • Code Academy

  • Tutsplus

Try Git

TDD Learning

  • exercism.io

  • Ruby Monk

###Read Books and Online Media

learn[4] # => Read books

Subscribe to Rails Weekly newsletter

Cookbooks Michael Hartl, Learn Rails

D3.Js D3 wiki Scott Murray’s D3 Book

**Git Pro Git

Videos * Railscasts * Watch the free Tutsplus tutorial on Sublime

###Read Code

learn[5] # => Read code

Read good code. Start here

###Write Code

learn[6] # => Write code

Write lots of code. Even if its bad. Especially when its bad. Fork and contribute to repositories. Like mine.

###Ship Code

learn[7] # => Ship code

Writing code is fun but seeing it come alive on the cloud is a blast. The barrier to entry is low and the upside endless. I deploy to Amazon Web Service by way of Heroku.

###Teach

learn[8] # => Teach

Helping others to learn is one of the best ways to learn an new competency. Blog about a new move, help a newbie, or teach a class. Its kind of like rubber ducking with humans.

Example

##Here’s how to pass a block of code through a method

Learn more about this at RubyMonk.com.

family= ["Matt", "Dana", "Lucy", "Bode"]

def meet_us(fam)
  puts "Meet our family of #{fam.length}."
  yield
end

meet_us(family) {family.each {|f| puts f}}