73
Beginner s Luck A story about learning and teaching Clojure

Beginner's luck - A story about learning and teaching Clojure

Embed Size (px)

DESCRIPTION

Have you wanted to learn Clojure but didn't know where to start? Have you wanted to teach Clojure but aren't sure how to work with students? Beginner's Luck is an interactive presentation where student and teacher share their experiences both learning and teaching Clojure over the past four months. The first part of the presentation will be a dialog where both student and teacher will switch off sharing experiences and coding examples of things that went well and the numerous surprises they encountered along the way.

Citation preview

Page 1: Beginner's luck - A story about learning and teaching Clojure

Beginner s LuckA story about learning and teaching Clojure

Page 2: Beginner's luck - A story about learning and teaching Clojure
Page 3: Beginner's luck - A story about learning and teaching Clojure
Page 4: Beginner's luck - A story about learning and teaching Clojure
Page 5: Beginner's luck - A story about learning and teaching Clojure
Page 6: Beginner's luck - A story about learning and teaching Clojure
Page 7: Beginner's luck - A story about learning and teaching Clojure
Page 8: Beginner's luck - A story about learning and teaching Clojure

All that mentoring is just going to slow you down!

Page 9: Beginner's luck - A story about learning and teaching Clojure

Mentoring

Having an extra pair won’t slow you down

You don’t have much to loose, but could gain a really good developer

The best new developer on your team may be the one you make

Page 10: Beginner's luck - A story about learning and teaching Clojure

Developers

Need to know how to mentor and teach

Even senior devs need to be spun up

Devs who are learning don’t leave

Page 11: Beginner's luck - A story about learning and teaching Clojure

How did I get started?

Page 12: Beginner's luck - A story about learning and teaching Clojure

Den of Clojure

Page 13: Beginner's luck - A story about learning and teaching Clojure
Page 14: Beginner's luck - A story about learning and teaching Clojure

So how do you determine if you are

compatible?

Page 15: Beginner's luck - A story about learning and teaching Clojure

Bloom's TaxonomyAssessing

Evaluate-----------------------------------------------

Synthesis---------------------------------------------------------------------------

Analysis-----------------------------------------------------------------------------------------------------

Application----------------------------------------------------------------------------------------------------------------------------------

Comprehension------------------------------------------------------------------------------------------------------------------------------------------------------------

Knowledge

Page 16: Beginner's luck - A story about learning and teaching Clojure

Knowledge

Page 17: Beginner's luck - A story about learning and teaching Clojure

Knowledge

What are the first 2 pieces when creating a function?

Page 18: Beginner's luck - A story about learning and teaching Clojure

Comprehension

Page 19: Beginner's luck - A story about learning and teaching Clojure

Comprehension

What does this code do?

Page 20: Beginner's luck - A story about learning and teaching Clojure

Application

Knowing is not enough, we must

apply.-Bruce Lee

Page 21: Beginner's luck - A story about learning and teaching Clojure

Application

What would you use to add expressions to a let?

What tools might resolve this problem?

Page 22: Beginner's luck - A story about learning and teaching Clojure

Analysis

Page 23: Beginner's luck - A story about learning and teaching Clojure

Analysis

Compare the following functions?

Page 24: Beginner's luck - A story about learning and teaching Clojure

Synthesis & Evaluation

Page 25: Beginner's luck - A story about learning and teaching Clojure

Synthesis & Evaluation

What could we change to improve the execution time?

Page 26: Beginner's luck - A story about learning and teaching Clojure

How do I build the lesson?

Page 27: Beginner's luck - A story about learning and teaching Clojure

Backwards Design

Establish a goal

What fundamentals get you to the end

Teach the fundamentals in small pieces

Tie things back together

Show how the solution can be generalized to other problems

Page 28: Beginner's luck - A story about learning and teaching Clojure

Prepare

Page 29: Beginner's luck - A story about learning and teaching Clojure

If you don’t have a set goal, focus on the fundamentals

Don’t Fret

Page 30: Beginner's luck - A story about learning and teaching Clojure

Onward to the yaks

Page 31: Beginner's luck - A story about learning and teaching Clojure

Pairing

terminal based editor

tmux

ssh reverse tunnels FTW

pair in the repl

Page 32: Beginner's luck - A story about learning and teaching Clojure

Emacs isn't that hard

Page 33: Beginner's luck - A story about learning and teaching Clojure

compatible

level of understanding

environment

Page 34: Beginner's luck - A story about learning and teaching Clojure

goal

plan

rhythm

Page 35: Beginner's luck - A story about learning and teaching Clojure
Page 36: Beginner's luck - A story about learning and teaching Clojure

How do teachers get better at teaching?

Page 37: Beginner's luck - A story about learning and teaching Clojure

customer

Page 38: Beginner's luck - A story about learning and teaching Clojure

Problem set 1

How do you get values in a map?

Page 39: Beginner's luck - A story about learning and teaching Clojure
Page 40: Beginner's luck - A story about learning and teaching Clojure
Page 41: Beginner's luck - A story about learning and teaching Clojure
Page 42: Beginner's luck - A story about learning and teaching Clojure
Page 43: Beginner's luck - A story about learning and teaching Clojure
Page 44: Beginner's luck - A story about learning and teaching Clojure
Page 45: Beginner's luck - A story about learning and teaching Clojure

Recap

“get” a value out of a map

Maps are functions that take keys

Keys are functions that take maps

Page 46: Beginner's luck - A story about learning and teaching Clojure

Problem set 2

How do you represent an anonymous function?

Page 47: Beginner's luck - A story about learning and teaching Clojure
Page 48: Beginner's luck - A story about learning and teaching Clojure
Page 49: Beginner's luck - A story about learning and teaching Clojure
Page 50: Beginner's luck - A story about learning and teaching Clojure

Recap

Longhand notation for anonymous functions

Shorthand notation for anonymous functions

If the anonymous function is simple enough, try just passing the function

Page 51: Beginner's luck - A story about learning and teaching Clojure

Problem set 3

How can you process large datasets?

So large that they may not fit into memory?

Page 52: Beginner's luck - A story about learning and teaching Clojure

A person

Page 53: Beginner's luck - A story about learning and teaching Clojure

Random person

Page 54: Beginner's luck - A story about learning and teaching Clojure

A reasonably sized random person

Page 55: Beginner's luck - A story about learning and teaching Clojure

Are they a mutant?

Page 56: Beginner's luck - A story about learning and teaching Clojure

Are they a mutant?

Page 57: Beginner's luck - A story about learning and teaching Clojure

Are they a mutant?

Page 58: Beginner's luck - A story about learning and teaching Clojure

Random mutant

Page 59: Beginner's luck - A story about learning and teaching Clojure

Random mutant

Page 60: Beginner's luck - A story about learning and teaching Clojure

Flip a coin

Page 61: Beginner's luck - A story about learning and teaching Clojure

Flip a coin

Page 62: Beginner's luck - A story about learning and teaching Clojure

People generator

Page 63: Beginner's luck - A story about learning and teaching Clojure

People generator

Page 64: Beginner's luck - A story about learning and teaching Clojure

People generator

Page 65: Beginner's luck - A story about learning and teaching Clojure

Random people

Page 66: Beginner's luck - A story about learning and teaching Clojure
Page 67: Beginner's luck - A story about learning and teaching Clojure
Page 68: Beginner's luck - A story about learning and teaching Clojure
Page 69: Beginner's luck - A story about learning and teaching Clojure
Page 70: Beginner's luck - A story about learning and teaching Clojure

Recap

Values in a map

Anonymous functions

Infinite lazy sequences

Filters

Page 71: Beginner's luck - A story about learning and teaching Clojure

closing

Teaching is something you can learn

Practice and commitment

Help improve http://clojure-doc.org

Page 72: Beginner's luck - A story about learning and teaching Clojure

Denise Zimmerman

@westzimm

Daniel Glauser

@danielglauser

Page 73: Beginner's luck - A story about learning and teaching Clojure

Resources

• EDx, Project Euler, books

commonality = problem sets

• Tutorials have value when current

• Meetups that were 75% hacking